无法从 PowerShell 查询 IIS
Unable to query IIS from PowerShell
我正在尝试使用 PowerShell 访问和更改 IIS 中的网站设置,但我很早就遇到了拦截器。
当我使用下面的命令时,它returns只有空白属性,表明这台机器上的 IIS 上没有活动的网站:
New-Object Microsoft.Web.Administration.ServerManager
结果看起来像这样...
ApplicationDefaults :
ApplicationPoolDefaults :
ApplicationPools :
SiteDefaults :
Sites :
VirtualDirectoryDefaults :
WorkerProcesses :
...并且没有返回任何错误,这让我认为命令本身正在运行,但由于某种原因,PowerShell 无法 "see" 网站。
当我检查 IIS 管理器时,我可以看到 "Sites" 文件夹中列出了两个网站。
不确定这是否有影响,但我为此使用了 Windows Server 2008 R2 计算机。
我想我已经解决了问题。
奇怪的是,这似乎是我加载程序集的方式造成的。它似乎没有正确/根本没有加载程序集(即使没有错误告诉我这一点):
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
但是,当我使用下面的命令加载程序集时,问题就消失了:
[System.Reflection.Assembly]::LoadFrom("C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll") | Out-Null
不幸的是,我还是 PowerShell 的新手,所以我不知道为什么这会造成差异。
我正在尝试使用 PowerShell 访问和更改 IIS 中的网站设置,但我很早就遇到了拦截器。
当我使用下面的命令时,它returns只有空白属性,表明这台机器上的 IIS 上没有活动的网站:
New-Object Microsoft.Web.Administration.ServerManager
结果看起来像这样...
ApplicationDefaults :
ApplicationPoolDefaults :
ApplicationPools :
SiteDefaults :
Sites :
VirtualDirectoryDefaults :
WorkerProcesses :
...并且没有返回任何错误,这让我认为命令本身正在运行,但由于某种原因,PowerShell 无法 "see" 网站。
当我检查 IIS 管理器时,我可以看到 "Sites" 文件夹中列出了两个网站。
不确定这是否有影响,但我为此使用了 Windows Server 2008 R2 计算机。
我想我已经解决了问题。
奇怪的是,这似乎是我加载程序集的方式造成的。它似乎没有正确/根本没有加载程序集(即使没有错误告诉我这一点):
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
但是,当我使用下面的命令加载程序集时,问题就消失了:
[System.Reflection.Assembly]::LoadFrom("C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll") | Out-Null
不幸的是,我还是 PowerShell 的新手,所以我不知道为什么这会造成差异。