Вот ситуация: я пытаюсь использовать PowerShell для автоматической утилизации пула приложений (Windows Server 2008 с IIS7). Я пытаюсь сделать это с помощью найденного сценария PowerShell Вот:
$appPoolName = $args[0]
$appPool = get-wmiobject -namespace "root\MicrosoftIISv2"
-class "IIsApplicationPool"
| Where-Object {$_.Name -eq "W3SVC/APPPOOLS/$appPoolName"}
$appPool.Recycle()
Однако это приводит к ошибке «Недопустимое пространство имен»:
Я погуглил и обнаружил, что мне, возможно, не хватало службы роли «Сценарии и инструменты управления IIS», которую я с тех пор настроил для IIS.
Как я могу исправить эту проблему или, в качестве альтернативы, могу повторно использовать пул приложений с Powershell без WMI?
редактировать
Чтобы прояснить, это Windows Sever 2008 Enterprise без Hyper-V (SP2) x64.
Выполнение указанной выше команды в версии Powershell для x64 приводит к той же ошибке.
Бег Add-PSSnaping WebAdministration
с 32 бит:
Add-PSSnapin: оснастка Windows PowerShell «WebAdministration» не установлена на этом компьютере.
И в 64-битной среде:
Надстройка PSSnapin: для Windows PowerShell версии 2 не зарегистрированы оснастки.
(64 бит) Get-PSSnapin -Registered
ничего не возвращает
(32 бит) Get-PSSnapin -Registered
возвращает Windows.ServerBackup, PSVersion 1.0
Пытаться http://technet.microsoft.com/en-us/library/ee807823.aspx
add-pssnapin WebAdministration
Restart-WebItem 'IIS:\AppPools\DefaultAppPool'
Какая у вас ОС? Это x64 или x86? Это может повлиять на загрузку оснастки. Если x64, попробуйте загрузить оснастку как из x64, так и из x86 версии powershell.
x64 находится в C: \ Windows \ System32 \ WindowsPowerShell \ v1.0, а x86 находится в C: \ Windows \ SysWow64 \ WindowsPowerShell \ v1.0
Кроме того, что вы видите, когда бежите
Get-PSSnapin -Registered