Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis WMI/PowerShell错误:为什么CreateSite突然创建了*两个*站点?_Iis_Powershell_Wmi - Fatal编程技术网

Iis WMI/PowerShell错误:为什么CreateSite突然创建了*两个*站点?

Iis WMI/PowerShell错误:为什么CreateSite突然创建了*两个*站点?,iis,powershell,wmi,Iis,Powershell,Wmi,我有一个简单的PowerShell脚本,它使用WMI在Vista框上创建网站。是的,我知道PowerShell有一个IIS提供程序用于处理IIS 7,但此脚本还必须支持IIS 6.0,因此排除了这一点 不管怎么说,这个脚本运行得很好,但是突然之间(我的意思是,我对脚本没有做任何代码更改),它开始为每次调用CreateNewSite方法创建第二个损坏的站点。下面是脚本。有人有什么想法吗 $path = "C:\My Path\WebSite" $site = "TestSite" $hostHea

我有一个简单的PowerShell脚本,它使用WMI在Vista框上创建网站。是的,我知道PowerShell有一个IIS提供程序用于处理IIS 7,但此脚本还必须支持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只是一辆马车吗?

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


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

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

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