我们正在尝试以编程方式向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/

10-13 03:42