我创建了一个脚本,以便从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中运行。但我得到的输出是"没有运行"。
答案 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}