web-dev-qa-db-fra.com

Comment puis-je arrêter et démarrer des sites Web individuels dans IIS à l'aide de PowerShell?

J'ai plusieurs sites configurés dans IIS7 sur ma machine de développement Windows 7 pour s'exécuter sur le même port et généralement un seul à la fois en fonction de ce sur quoi je travaille. Je voudrais pouvoir démarrer et arrêter mes sites de développement à partir de PowerShell au lieu d'avoir le gestionnaire IIS ouvert. Quelqu'un a-t-il une bonne ressource pour me diriger dans la bonne direction ou un script qui déjà accomplit cela?

49
Joey Green

Juste pour référence rapide future, les commandes sont:

Import-Module WebAdministration
Stop-WebSite 'Default Web Site'
Start-WebSite 'Default Web Site'
87
Keith Hill

Ajout à la réponse de Keith, vous pouvez effectuer cela à distance en utilisant Invoke-Command.

Import-Module WebAdministration
$siteName = "Default Web Site"
$serverName = "name"
$block = {Stop-WebSite $args[0]; Start-WebSite $args[0]};  
$session = New-PSSession -ComputerName $serverName
Invoke-Command -Session $session -ScriptBlock $block -ArgumentList $siteName 
15
Tim

Pour accéder aux modules système, Powershell doit être exécuté comme ceci:

[path]\powershell.exe -NoExit -ImportSystemModules

J'ai trouvé ce qui précède sur ce iis forum .

3
Patrick S.

J'ai constaté que ce qui suit pour arrêter les sites Web individuels sur un serveur distant pour fonctionner:

Invoke-Command -Computername $servername -Scriptblock { 
    (Import-Module WebAdministration); 
    Stop-Website -Name "WebsiteName"; 
    Stop-Website -Name "AnotherWebsiteName"
}

J'ai eu certaines des erreurs ci-dessus jusqu'à ce que Import-Module a été placé dans ()

2
Russ