2017-03-10 2 views
0

Ich habe ein Skript erstellt, mit dem der Website-Status vom IIS-Manager ausgeführt oder gestoppt wird.Powershell-Skript zum Abrufen des Status der Website, unabhängig davon, ob sie im IIS-Manager ausgeführt wird oder angehalten wurde

Aber ich konnte nicht genau ausgegeben werden.

Frage: Ich muss nur anzeigen Website-Status läuft oder gestoppt in IIS mit Skripten.

$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 } 
} 

Hinweis: "Sample" Service in meinem IIS ausgeführt wird. Aber ich bekomme Ausgabe als "nicht ausgeführt".

+0

Sie fragen _IIS service_ status stattdessen oder _website_ status ab. Überprüfen Sie [hier] (https://gallery.technet.microsoft.com/scriptcenter/Powershell-ScriptFunction-afeab585). –

Antwort

0

Das aktuelle Beispiel zeigt, dass Sie nach einem Dienst namens "Beispiel" suchen, nicht eine Website namens "Beispiel", weshalb es immer angibt, dass es nicht ausgeführt wird.

Aus der lokalen IIS-Host, können Sie es AppCmd mit finden:

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

oder Sie könnten das WebAdministration Modul gehen rein Powershell verwenden (wenn es auf der IIS-Host verfügbar ist):

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

Wenn Sie den Befehl auf Remote-Servern ausführen möchten, müssen Sie Invoke-Command verwenden und eine dieser Zeilen zur ScriptBlock:

hinzufügen
Invoke-Command -ComputerName $server -ScriptBlock {enter one of the above lines of code here} 
Verwandte Themen