我们正在尝试以编程方式向IIS上的站点添加新的SSL证书和新的绑定。我们使用powershell脚本来实现这一点,并且它与服务器上本地管理员的用户可以很好地工作。问题是,我们不能让Web服务器上的本地管理员用户在生产环境中运行此应用程序。这将违反公司政策。
我想知道我的用户必须具备的最低权限才能执行此操作。这两个命令是我现在被阻止的地方。
## Does nothing but no error. Works fine if I use my admin user.
Import-PfxCertificate -FilePath $path cert:\localMachine\WebHosting\ -Password $mypwd -Exportable
## Give me : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
$newbinding = Get-WebBinding -Name $site -IPAddress $ip -Port 443 -Protocol "HTTPS" -HostHeader $hostheader
$newbinding.AddSslCertificate("$thumbprint", "WebHosting")
我很难找到需要什么权限/配置的明确答案。我遇到的问题与Cant add bindings to IIS programatically - redirection.config permissions (with a video!)之前的问题相同。现在它仍然不起作用,但不是相同的错误。
谢谢
最佳答案
如果您说的是要在IIS服务器上远程运行此程序,则针对许多cmdlet进行的PoSH要求将执行命令的用户位于目标主机本地管理组中。无法绕开该要求。
现在,所有这些,为什么您需要一个特定的用户来运行它,而不是使用具有必需特权的计划任务集来执行脚本?
您也可以考虑利用PoSH JEA进行此类工作。它不能免除管理员凭据的需要,但只会临时授予它们。
足够的管理:Windows PowerShell安全控件帮助
保护企业数据
足够的管理(JEA)-现在的最新更新
Windows Management Framework 5.0附带的安全性
可帮助组织通过以下方式实施信息安全的技术
限制IT管理权限。 JEA提供了一种实用,
基于角色的方法来设置和自动化对IT的限制
人员,并降低与为用户提供完整功能相关的风险
行政权利。
JEA使用Windows PowerShell脚本的内置功能
环境。您可以使用PowerShell进行管理的任何事情
通过JEA更安全地进行管理。 JEA提供了标准化的方法
比传统方式更精细地减少管理访问
访问控制模型。
JEA允许特定用户执行指定的管理任务
在指定的服务器上,而没有赋予它们完全的管理员权限。
JEA基于Windows PowerShell限制的运行空间,
Microsoft用来帮助保护管理任务的技术
Microsoft Exchange Online等环境。
https://msdn.microsoft.com/en-us/library/dn896648.aspx
使用JEA
本主题描述了可以连接和使用JEA的各种方法
端点。
要以交互方式使用JEA,您需要:•您的计算机名称
正在连接(可以是本地计算机)•JEA的名称
在该计算机上注册的终结点计算机的凭据
有权访问JEA端点
https://docs.microsoft.com/en-us/powershell/jea/using-jea
关于windows - Powershell脚本添加证书并绑定(bind)到IIS-权限问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50574688/