Powershell string de pesquisa dentro de uma variável (não arquivo de texto)

3

Estou tentando pesquisar uma string chamada "Hostname" de uma variável "$ a", que armazena a saída do comando "systeminfo", mas está com problemas. Estou usando "informações do sistema" para reunir um conjunto maior de dados.

Código:

$a= (get-systeminfo -computername localhost | select-object hostname, OSNAME, osversion, model, type)  
write-output $a 
select-string $a -pattern "hostname"

Erro:

Select-String : Cannot find path 'C:\Users\john001c\@{Hostname=PACCPL-FTN1TM1; OSName=Microsoft Windows 7 Enterprise ; OSVersion=6.1.7601 Service Pack 1 Build 7601; Model=Latitude E
4310; Type=x64-based PC}' because it does not exist.

At line:5 char:14
+ select-string <<<<  $a -pattern "hostname"
    + CategoryInfo          : ObjectNotFound: (C:\Users\john...e=x64-based PC}:String) [Select-String], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SelectStringCommand

Qual é a maneira correta de procurar por uma string dentro de uma variável?

    
por Arun 19.11.2014 / 20:31

1 resposta

3

A sequência de caracteres de seleção possui vários conjuntos de parâmetros. Para pesquisar em um objeto (em vez de um arquivo), seus parâmetros ficariam assim. Observe que o uso do parâmetro -InputObject é necessário para uso em algo que não é um arquivo e não é utilizável como um parâmetro posicional, o parâmetro -InputObject deve ser explicitamente nomeado.

Parameter Set: Object Select-String [-Pattern] -InputObject

Então, tente este intead.

select-string -pattern "hostname" -InputObject $a
    
por 19.11.2014 / 20:59