O Powershell Get-WMIObject falha com o erro “Namespace inválido”

1

Aqui está a situação: Estou tentando usar o PowerShell para reciclar automaticamente um AppPool (Windows Server 2008 com IIS7). Estou tentando fazer isso com o script do PowerShell encontrado aqui :

$appPoolName = $args[0]
$appPool = get-wmiobject -namespace "root\MicrosoftIISv2" 
                         -class "IIsApplicationPool" 
                  | Where-Object {$_.Name -eq "W3SVC/APPPOOLS/$appPoolName"}
$appPool.Recycle()

No entanto, isso resulta em um erro de 'Espaço de nomes inválido':

Eupesquiseiporaíedescobriquetalvezestivessefaltandooserviçodefunção"Scripts e ferramentas de gerenciamento do IIS" que configurei para o IIS.

Como posso corrigir esse problema ou, como alternativa, posso reciclar um AppPool com o Powershell sem o WMI?

Editar

  • Para esclarecer isso, é o Windows Server 2008 Enterprise sem o Hyper-V (SP2) x64.
  • A execução do comando acima na versão x64 do Powershell resulta no mesmo erro.
  • Executando Add-PSSnaping WebAdministration de 32 bits:

    Add-PSSnapin : The Windows PowerShell snap-in 'WebAdministration' is not installed on this machine.

  • E no ambiente de 64 bits:

    Add-PSSnapin : No snap-ins have been registered for Windows PowerShell version 2.

  • (64bit) Get-PSSnapin -Registered não retorna nada

  • (32 bits) Get-PSSnapin -Registered retorna Windows.ServerBackup, PSVersion 1.0
por Factor Mystic 16.11.2010 / 17:28

2 respostas

3

Tente o link

add-pssnapin WebAdministration
Restart-WebItem 'IIS:\AppPools\DefaultAppPool'
    
por 17.11.2010 / 05:51
0

Qual sistema operacional você está executando? É x64 ou x86? Isso pode ter um impacto no carregamento do snapin. Se x64, tente lodar o snap-in do powershell das versões x64 e x86.

x64 está em C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 e x86 está em C: \ Windows \ SysWow64 \ WindowsPowerShell \ v1.0

Além disso, o que você vê quando executa

Get-PSSnapin -Registered
    
por 07.12.2010 / 12:14