2010-09-07 3 views
1

J'ai plusieurs serveurs qui ont besoin de redémarrer le service IISADMIN. J'ai besoin de faire cela à distance, donc j'ai du code qui demandera des informations d'identification. Cependant, quand j'arrive à l'arrêter et à le redémarrer, cela échoue parce que les services dépendants. J'essaie d'utiliser IISRESET/STOP, mais je n'arrive pas à le faire fonctionner.Comment puis-je arrêter/démarrer IISADMIN avec powershell

Toutes les suggestions seraient grandement appréciées. Si vous avez besoin de voir le code, faites le moi savoir.

Merci!

Répondre

2

Si PowerShell 2.0 est disponible, j'utiliserais ses capacités d'accès à distance. Vous devez également utiliser admin pour utiliser iisreset (au moins sur Vista/WinServer 2008 et plus). Heureusement PowerShell remoting prend soin de cela (vous oblige à être administrateur aussi). :-) Avec PowerShell 2.0 Je voudrais essayer quelque chose comme ceci:

$cred = Get-Credential 
Invoke-Command server1,server2,server3 -ScriptBlock { iisreset.exe /restart } ` 
       -cred $cred 

Si le iisreset.exe ne fonctionne toujours pas essayer de PowerShell Restart-Service à sa place:

Restart-Service w3svc -Force 

Mais d'abord vous devez avoir PowerShell 2.0 sur chaque machine distante et permettre la communication à distance sur chaque machine distante via les commandes:

Set-ExecutionPolicy RemoteSigned 
Enable-PSRemoting -Force 

Si vous ne pouvez pas faire PowerShell 2.0 sur les machines distantes , vous pouvez toujours utiliser psexec.exe.

+0

Est-ce que powershell remoting ne doit pas être exécuté? Lorsque j'essaie de "Invoke-Command ... iisreset", je reçois une vilaine erreur en disant que WinRM ne fonctionne pas. –

Questions connexes