Назад | Перейти на главную страницу

Powershell Get-WMIObject завершается с ошибкой «Недопустимое пространство имен»

Вот ситуация: я пытаюсь использовать 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?

редактировать

Пытаться 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