1

我有一个简单的 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 只是错误吗?

4

1 回答 1

1

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

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

于 2008-12-11T20:47:03.087 回答