2009-08-31 15 views

Odpowiedz

14

Jednym z najprostszych sposobów, aby to zrobić, jest wykonanie tylko z wiersza poleceń przy użyciu PsExec. I wysłać nad do maszyn

IISReset/STOP lub/START lub/Restart

więc chcesz zrobić coś takiego

PsExec \\Server2 -u Administrator -p somePassword IISReset /STOP 

Wystarczy być ostrożnym z zarządzania hasłami, jeśli tę drogę lub dowolna trasa, która wiąże się z podszywaniem się pod inny typ konta administratora, aby nikt nie mógł uzyskać zwykłego tekstu hasła administratora.

9

Ponieważ poprosiłeś o PowerShell:

(Get-WmiObject Win32_Service -ComputerName ServerA -Filter "Name='iisadmin'").InvokeMethod("StopService", $null) 

Zgoda na to pytanie powinna zostać przeniesiona do ServerFault.

3
$service = Get-WmiObject -computer 'ServerA' Win32_Service -Filter "Name='IISAdmin'" 
$service 
$service.InvokeMethod('StopService',$Null) 
start-sleep -s 5 
$service.InvokeMethod('StartService',$Null) 
start-sleep -s 5 
$service.State 

$service = Get-WmiObject -computer 'ServerB' Win32_Service -Filter "Name='IISAdmin'" 
$service 
$service.InvokeMethod('StopService',$Null) 
start-sleep -s 5 
$service.InvokeMethod('StartService',$Null) 
start-sleep -s 5 
$service.State 
2

PowerShell 2,0 uruchomić wynikające z cmd wierszu:

invoke-command -computername <yourremoteservername> -scriptblock {iisreset} 
10

Opcja 1:

iisreset remotepcname /restart 

Opcja 2:

(Get-Service -ComputerName remotepc -Name 'IISAdmin').stop() 

Wariant 3:

Invoke-Command -ComputerName remotepc -ScriptBlock {iisreset} 
+0

Doskonała odpowiedź. Dzięki. –

0

Można użyć get-WmiObject cmdlt z różnych nazw dla różnych wersji V6 IIS lub v7, pod dowództwem Montaż rurociągów mogą być wykorzystywane do takich operacji lokalnie lub zdalnie

dla IIS v6

$srv = "Server Name or IP Address" 

$app = "Name of App Pool" 

$x = get-wmiobject -namespace "root\MicrosoftIISv2" -class "IIsApplicationPool" -ComputerName $srv -Authentication PacketPrivacy | where-object {$_.Name -eq "W3SVC/AppPools/$app"} 

$x.Stop() 

$x.Start() 

for IIS v7 

$srv = "Server Name or IP Address" 

$app = "Name of App Pool" 

$x = Get-WMIObject -Namespace "root\webAdministration" -Class "ApplicationPool" -ComputerName $srv -Authentication PacketPrivacy | Where-Object {$_.Name -eq $app} 

$x.Stop() 

$x.Start() 
w IIS

Musisz mieć wystarczające uprawnienia do konta dla tych operacji, chociaż wolę zrobić $ x.Recycle() dla moich stron internetowych.

Powiązane problemy