Ho scritto uno script PowerShell per distribuire automaticamente IIS sito web, ma quando passo parametri allo script ottengo il seguente errore:Ottenere "Impossibile trovare l'unità. L'unità denominata 'IIS' non esiste."
Cannot find the drive. The drive called 'IIS' does not exist.
Il mio script (iss_website_version_update.ps1
) è come sotto, ma nota che non è finito ancora:
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]))
}
.......
Fatemelo sapere il motivo per cui il sub-comando di set-location IIS:\;
nel comando Invoke-Command
non viene riconosciuto?
Avevo installato lo snap-in IIS.E il comando include tre sottocomandi: "Importa-modulo WebAdministration; set-location IIS: \; (Stop-Sito Web $ ($ websiteName [$ j]))" che era diviso con punto e virgola.Ora la domanda è "set-location IIS: \" non può essere riconosciuto. – user3772170
Ciò significa che se U inserisce il seguente comando, U riceverà lo stesso errore: Invoke-Command -ComputerName xx.xx.xx.xx -ScriptBlock {C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe - comando Import-Module WebAdministration; set-location IIS: \; Sito di prova Sito Web Stop} – user3772170
@ user3772170: i comandi vengono eseguiti su un host remoto, pertanto il modulo deve essere installato su quell'host. Inoltre, il tuo codice è già in esecuzione in PowerShell, quindi non c'è bisogno di 'C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -comando' nel blocco di script. Rimuovi quello. –