Powershell脚本,用于获取网站的状态,无论它是在IIS管理器中运行还是停止

时间:2017-03-10 10:11:24

标签: powershell

我创建了一个脚本,以便从IIS管理器中运行或停止网站状态。

但是我没有得到准确的输出。

问题:我需要使用脚本在IIS中显示正在运行或停止的网站状态。

$serverList = 'SSCCL35'
foreach ($server in $serverList) {
$iis = Get-WmiObject Win32_Service -Filter "Name = 'sample'" -ComputerName $server
if ($iis.State -eq 'Running') { Write-Host "IIS is running on $server" }
Else { Write-Host "IIS is NOT running on $server" -ForegroundColor Red }
}

注意:"样品"服务正在我的IIS中运行。但我得到的输出是"没有运行"。

1 个答案:

答案 0 :(得分:1)

当前示例显示您正在寻找名为“sample”的服务,而不是名为“sample”的网站,这就是为什么它总是声明它没有运行。

从本地IIS主机,您可以使用AppCmd找到它:

Invoke-Expression "$env:SystemRoot\system32\inetsrv\AppCmd.exe list site 'sample'"

或者您可以使用WebAdministration模块转换为纯Powershell(如果它在IIS主机上可用):

Import-Module WebAdministration; Get-WebsiteState -Name "sample"

如果要在远程服务器上运行该命令,则需要使用Invoke-Command并将其中一行添加到ScriptBlock

Invoke-Command -ComputerName $server -ScriptBlock {enter one of the above lines of code here}