WMI / PowerShell Bug:为什么CreateSite会突然创建*两个*站点?

时间:2008-12-11 20:02:49

标签: iis powershell wmi

我有一个简单的PowerShell脚本,它使用WMI在Vista盒子上创建一个网站。是的,我知道PowerShell有一个用于IIS 7的IIS提供程序,但是这个脚本还必须支持IIS 6.0,以便规则出来。

无论如何,脚本运行得很好,但突然之间(我的意思是字面意思,我对脚本进行了零代码更改)它开始为每次调用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)

上面的脚本 只是创建了一个名为“TestSite”的网站,但现在它还创建了一个名为“SITE_1786339847”的网站(数字会发生变化,但总是类似于此)。我已逐步执行一次执行一行的脚本,并且在调用CreateNewSite方法之前都不会创建任何站点。 WMI只是马车吗?

1 个答案:

答案 0 :(得分:1)

哎呀,回答了我自己的问题。我检查了原始IIS 7.0配置文件,发现了一个与ID为1786339847的站点关联的孤立虚拟目录。当我从配置文件中删除该虚拟目录时,脚本再次开始正常工作。

如果有人遇到类似的事情,请在删除之前从IIS管理器获取坏站点的站点ID,然后打开C:\ Windows \ system32 \ inetsrv \ config \ applicationHost.config。扫描该文件以获取该ID,并查找对其进行的任何孤立引用。 请确保先备份。