【发布时间】:2021-01-09 03:47:57
【问题描述】:
我有一个困扰我的特定场景,希望社区提供一些见解。
我正在尝试通过在其自己的应用程序池标识上运行的 Web 应用程序运行添加 HTTPS 绑定和指向证书 PowerShell 脚本的链接。
PowerShell 脚本需要提升的权限,因此无法成功运行,只能访问绑定部分,而不是 SSL 证书的链接。
我无法调用以使用我的代码运行已保存的脚本文件,因为绑定是动态生成的,并且需要 Web 应用程序替换保存绑定的令牌。
如果下面的脚本是通过当前正在运行它的应用程序池身份用户的 Web 应用程序运行的,我如何才能成功运行它?我尝试使用提升标签包含我的脚本,但它会触发一个新的提升的单独 PowerShell 窗口,这对我不起作用,因为这一切都是在没有用户的情况下自动发生的。
New-WebBinding -name "example.domain" -IPAddress "XXX.XXX.XXX.XXX" -Protocol https -HostHeader [DynamicallyLoadedViaWebApplication] -Port 443 -SslFlags 1
$siteName = 'example.domain'
$Cert = (get-item cert:"\LocalMachine\WebHosting\THUMBPRINTHERE")
$binding = Get-WebBinding -Name $siteName -Protocol "https"
$binding.AddSslCertificate($Cert.GetCertHashString(), "WebHosting")
我尝试通过注册表关闭 UAC,但没有帮助。上面的脚本必须通过具有足够高权限的 web 应用程序运行才能成功完成
更新:
第一个要触发的脚本是通过application pool identity 而不是管理员帐户完成的,这种方法可行吗?我最终可以尝试将application pool user 切换为管理员,但如果可能的话,我想避免这种情况。或者关于如何通过application pool 用户进行绑定的任何其他想法?
【问题讨论】:
-
为什么不能将它作为保存的脚本运行?您可以将生成的标头作为参数传递。
-
@DougMaurer 你有任何链接或示例说明我如何做到这一点吗?
-
这是您需要经常做的事情吗?
标签: powershell application-pool iis-10 windows-server-2019