Получение "Не удается найти диск. Диска под названием" IIS "не существует".
Я написал PowerShell script для автоматического развертывания веб-сайта IIS, но когда я передаю параметры script, я получаю следующую ошибку:
Не удается найти диск. Привод, называемый "IIS", не существует.
Мой script (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
не распознается?
Ответы
Ответ 1
Диск предоставляется модулем WebAdministration
, поэтому вам необходимо сначала установить/импортировать этот модуль.
Способ установки модуля зависит от вашей реальной системы и от того, используете ли вы графический интерфейс или PowerShell. Например, на Windows Server 2008 R2 вы должны установить модуль с помощью следующих команд PowerShell:
Import-Module ServerManager
Add-WindowsFeature Web-Scripting-Tools
После установки модуля вы можете загрузить его в свой скрипт следующим образом:
Import-Module WebAdministration
Ответ 2
Чтобы разрешить запуск сценария (или PowerShell Shell/EXE) в режиме администратора.
Ответ 3
В 32-разрядной версии Windows Server 2008 мне пришлось явно загружать и устанавливать "Ячейку приложений IIS Powershell Snap-in (x86)" с веб-сайта Microsoft.