如何使用PowerShell从远程计算机获取所有(IIS)网站状态/状态?

Smu*_*mug 3 iis powershell

我试图从远程读取IIS网站的状态.我试过下面的代码.

$Session = New-PSSession -ComputerName $serverName
$block = { 
import-module 'webAdministration'
Get-ChildItem -path IIS:\Sites
}
Invoke-Command -Session $Session -ScriptBlock $block  | Out-File -append $WebreportPath
Run Code Online (Sandbox Code Playgroud)

但是上面的命令只给了我带有https绑定的网站,当涉及到https时它会抛出错误.

The data is invalid. (Exception from HRESULT: 0x8007000D)
+ CategoryInfo          : NotSpecified: (:) [Get-ChildItem], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.PowerShell.Commands.GetChildItemCommand
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用IIS 7升级Windows Server 2008 R2.请指导我.谢谢 !

Smu*_*mug 6

希望这对某人有所帮助.以下是我的发现和答案.

Powershell仅远程发送对象,并使用可用模板呈现它们.所以需要相应地给出一个模板.我用了"格式表".请注意,如果在其外部使用"Format-Table"会导致相同的错误.记得在scriptblock中使用它.

容易出错:

Invoke-Command  -ComputerName $serverName { Import-Module WebAdministration; Get-ChildItem -path IIS:\Sites} | Format-Table | Out-File -append $WebreportPath
Run Code Online (Sandbox Code Playgroud)

正确的代码:

Invoke-Command  -ComputerName $serverName { Import-Module WebAdministration; Get-ChildItem -path IIS:\Sites | Format-Table} | Out-File -append $WebreportPath
Run Code Online (Sandbox Code Playgroud)

我指的是:http: //forums.iis.net/t/1155059.aspx?IIS + provider+and+PowerShell+remoting

祝好运 !