Teste para Localhost em Powershell?

8

Eu tenho um script powershell que chama Get-WmiObject com -Credential . No entanto, isso equivale a erros se eu o estiver executando na máquina local:

Get-WmiObject : User credentials cannot be used for local connections

Qual é a maneira correta de adicionar uma lógica if localhost para evitar esse erro? Ou há uma maneira melhor?

    
por Kyle Brandt 09.08.2011 / 22:03

2 respostas

3

Sempre é possível consultar o IP local por meio do WMI e armazená-lo em $ localIP e, em seguida, associá-lo a qualquer endereço que esteja próximo no seu pipeline ou array:

if ($localIP -eq $otherIP) { get-wmiobject without -credential }    
else { existing query }
    
por 09.08.2011 / 22:36
2

Se você empilhá-lo em um bloco try catch com o erroraction stop no primeiro comando, ele interceptará o erro e executará o bloco catch sem credenciais.

Try
{
Get-WmiObject -Credential domain\user -ComputerName localhost -class Win32_BIOS -erroraction Stop
}
Catch
{
Get-WmiObject -ComputerName localhost -class Win32_BIOS
}
    
por 09.08.2011 / 22:58