O comando Powershell falha com “Espaço de nomes inválido” apenas quando executado como script, não no console

4

O seguinte script falha na última linha com Get-WmiObject : Invalid namespace :

$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("domain\user", $password )
Write-Host "Entering PS Session..."
Enter-PSSession -Computer hyperVServer -Credential $cred
Start-Sleep -s 5
$server = "servername"

$query = "SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" + $server + "'"
$VM = get-wmiobject -query $query -namespace "root\virtualization" -computername "."

No entanto, quando eu digito isso um por um no console, ele é executado sem problemas.

Eu adicionei o Start-Sleep devido a alguns problemas de tempo ... a sessão leva alguns segundos para ser aberta. Alguma idéia de por que essa linha falharia apenas quando isso estivesse sendo executado como um script?

    
por tnw 08.08.2013 / 16:55

1 resposta

5

Enter-PSSession destina-se apenas ao uso interativo. Se você quiser executar comandos em um sistema remoto em um script (não interativamente), será necessário usar Invoke-Command. Por favor, execute Get-Help Invoke-Command -Full para mais detalhes.

    
por 08.08.2013 / 17:57

Tags