IIS Webサイトを自動的に展開するPowerShellスクリプトを作成しましたが、スクリプトにパラメーターを渡すと、次のエラーが表示されます。
ドライブが見つかりません。 「IIS」と呼ばれるドライブは存在しません。
私のスクリプト(iss_website_version_update.ps1
)は以下のとおりですが、まだ終了していないことに注意してください。
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]))
}
.......
サブコマンドset-location IIS:\;
コマンド内Invoke-Command
は認識されませんか?
ドライブはWebAdministration
モジュールによって提供されるため、最初にそのモジュールをインストール/インポートする必要があります。
モジュールのインストール方法は、実際のシステムと、GUIまたはPowerShellのどちらを使用するかによって異なります。たとえば、Windows Server 2008 R2では、次のPowerShellコマンドを使用してモジュールをインストールします。
Import-Module ServerManager
Add-WindowsFeature Web-Scripting-Tools
モジュールがインストールされたら、次のようにスクリプトにロードできます。
Import-Module WebAdministration
管理モードでスクリプト(またはpowershell Shell/exe)の実行を解決するには。
Windows Server 2008 32ビットでは、MicrosoftのWebサイトから「IIS Powershellスナップイン(x86)」を明示的にダウンロードしてインストールする必要がありました。