J'ai écrit un script PowerShell pour déployer automatiquement IIS Site Web, mais lorsque je passe des paramètres au script, j'obtiens l'erreur suivante:
Impossible de trouver le lecteur. Le lecteur appelé "IIS" n'existe pas.
Mon script (iss_website_version_update.ps1
) est comme ci-dessous, mais notez qu'il n'est pas encore terminé:
param(
[array]$iishostlist=$(throw "Parameter missing: -name iishostlist"),
[array]$websiteName=$(throw "Parameter missing: -name websiteName")
)
For($i=0;$i -lt $iishostlist.Count; $i++){
For($j=0;$j -lt $websiteName.Count; $j++){
$start = get-date
$tempSession = new-pssession -ComputerName $($iishostlist[$i])
Invoke-Command -Session $tempSession -ScriptBlock {
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -command Import-Module WebAdministration;set-location IIS:\;(Stop-Website $($websiteName[$j]))
}
.......
Veuillez me faire savoir pourquoi la sous-commande set-location IIS:\;
dans la commande Invoke-Command
n'est pas reconnu?
Le lecteur est fourni par le module WebAdministration
, vous devez donc d'abord installer/importer ce module.
La façon dont vous installez le module dépend de votre système réel et de l'utilisation de l'interface graphique ou de PowerShell. Sur un Windows Server 2008 R2 par exemple, vous installeriez le module avec les commandes PowerShell suivantes:
Import-Module ServerManager
Add-WindowsFeature Web-Scripting-Tools
Une fois le module installé, vous pouvez le charger dans votre script comme ceci:
Import-Module WebAdministration
Pour résoudre l'exécution du script (ou PowerShell Shell/exe) en mode Admin.
Sur Windows Server 2008 32 bits, je devais télécharger et installer explicitement "IIS Powershell Snap-in (x86)" à partir du site Web de Microsoft.