WMI/PowerShell Bug:为什么CreateSite突然创建*两个*站点?
问题描述:
我有一个简单的PowerShell脚本,它使用WMI在Vista盒子上创建一个网站。是的,我知道PowerShell有一个与IIS 7一起工作的IIS提供程序,但是此脚本还必须支持IIS 6.0,因此这些规则已经出来。WMI/PowerShell Bug:为什么CreateSite突然创建*两个*站点?
无论如何,脚本工作得很好,但突然间(我的意思是说,我对脚本进行了零代码更改),它开始为每次调用CreateNewSite方法创建第二个破损站点。以下是脚本。有人有主意吗?
$path = "C:\My Path\WebSite"
$site = "TestSite"
$hostHeader = "demo.blah.com"
$service = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebService"
$bindingClass = [wmiclass]'root\MicrosoftIISv2:ServerBinding'
$bindings = $bindingClass.CreateInstance()
$bindings.IP = ""
$bindings.Port = "80"
$bindings.Hostname = $hostHeader
$result = $service.CreateNewSite($site, $bindings, $path)
上述脚本为只是创建了一个名为“测试网站”的网站,但现在它也创建了一个名为“SITE_1786339847”网站(数量的变化,但它总是相似)。我已经逐步执行了一次执行一行的脚本,并且在调用CreateNewSite方法之前都不创建站点。 WMI只是越野车吗?
答
哎呦,回答了我自己的问题。我检查了原始IIS 7.0配置文件,发现一个孤立的虚拟目录与ID为1786339847的站点关联。当我从配置文件中删除该虚拟目录时,该脚本再次正常工作。
如果有人遇到类似情况,请在删除它之前从IIS管理器中获取坏站点的站点ID,然后打开C:\ Windows \ system32 \ inetsrv \ config \ applicationHost.config。扫描该ID的文件并查找对其的任何孤立引用。 确保您先备份。