【发布时间】:2020-09-07 01:28:38
【问题描述】:
在版本升级过程中,我们当前的解决方案从一个站点获取所有绑定(两个虚拟 url 除外)并将它们设置在另一个站点上。
我目前正在通过 PowerShell 删除绑定,但速度非常慢。我查看了 SO 中的每个线程,几乎每个解决方案都使用“Remove-WebBinding”。
这是我当前的代码:
Get-Website -Name $siteName | Get-WebBinding | Where-Object { $_.HostHeader -notlike '*dummy*' } | Remove-WebBinding;
我有 272 个(-2 虚拟)绑定要删除,大约需要 3 分钟。
任何想法如何更快地做到这一点?
顺便说一句:逐个添加所有这些绑定也非常慢,但我想如果我能在这里找到答案,类似的解决方案也可以添加。
【问题讨论】:
-
这看起来不正确
Where-Object { $_.HostHeader -notlike '*dummy*' | Remove-WebBinding }- 是错字吗? -
@MathiasR.Jessen -是的,对不起,我会在编辑中修复它
-
使用 WebAdministration cmdlet 注定会很慢,因为每次调用都会一遍又一遍地创建相关的底层对象。切换到 IISAadministration cmdlet 并使用单个
ServerManager对象。这要快得多。 blogs.iis.net/bariscaglar/… -
@LexLi 这就是解决方案,谢谢!我的 sctipt 现在运行 4 秒而不是 4 分钟(它是一个开发环境,它是 prod 环境大小的断裂)。你能写一个我能接受的完整答案吗?
标签: powershell iis iis-10 web-administration hostheaders