我正在尝试通过powershell在IIS中自动更新证书,一切正常,只是脚本不会在不先删除现有证书的情况下覆盖现有证书。我想以优雅的方式做到这一点。这是引起问题的路线,有什么想法吗?
New-Item "IIS:\SslBindings\*!${Port}!${HostName}" -Thumbprint
$NewCertThumbprint -SslFlags 1
这是错误:
New-Item : Cannot create a file when that file already exists
At C:\Scripts\SSL_Check.ps1:20 (the line above) char:13
+ New-Item "IIS:\SslBindings\*!${Port}!${HostName}" -Thumbprint $NewCe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [New-Item], Win32Exception
+ FullyQualifiedErrorId : System.ComponentModel.Win32Exception,Microsoft.PowerShell.Commands.NewItemCommand
(我使用指纹查询作为变量来区分新旧证书)。
答案 0 :(得分:1)
我会先测试,但这样的事情应该基于: iis-7-and-the-webadministration-snapin
这应该强制替换项目:
New-Item -Path "IIS:\Sites" -Name $HostName -Type Site -Bindings @{protocol="https";bindingInformation="*:$Port:";thumbprint=$NewCertThumbprint} -force>
或者,您可以通过使用设置项来修改已经存在的内容来做同样的事情
Set-Item -Path "IIS:\Sites" -Name $HostName -Type Site -Bindings @{protocol="https";bindingInformation="*:$Port:";thumbprint=$NewCertThumbprint} -force>
根据您的原始帖子,您应该能够在其末尾添加力量:
新项目 "IIS:\SslBindings*!${Port}!${HostName}" -Thumbprint $NewCertThumbprint -SslFlags 1 -force