erro no shell de energia: não é possível ligar o parâmetro

3

quando tento executar o comando abaixo PowerShell, recebo um erro.

O comando:

* certificado PS: \ currentuser \ authroot > gci | onde assunto-like " UTN " *

O erro está abaixo:

Where-Object: Não é possível ligar o parâmetro 'FilterScript'. Não é possível converter o valor de "assunto" do tipo "System.String" para digitar "System.Management.Automation.ScriptBlock". Na linha: 1 char: 12 + gci | em que < < < < subject -like " UTN "     + CategoryInfo: InvalidArgument: (:) [onde-objeto], ParameterBindingException     + FullyQualifiedErrorId: CannotConvertArgumentNoMessage, Microsoft.PowerShell.Commands.WhereObjectCommand

Estou usando o Windows PowerShell ISE.
uma solução viável é muito apreciada

    
por mustaque 12.01.2014 / 13:27

3 respostas

8

Parece que você está usando o PowerShell Vs.2, essa versão não tinha suporte para o novo where syntax .

Nas versões 1 e 2 do PowerShell, use:

gci | where {$_.subject -like "UTN"}

Você precisa colocar chaves ao redor da expressão e referir-se a qualquer propriedade com o prefixo $_. .

    
por 12.01.2014 / 13:55
0

Peter Hahndorf já respondeu isso, mas eu queria expandir a mensagem de erro que você recebeu:

Cannot convert the "subject" value of type "System.String" to type System.Management.Automation.ScriptBlock"

Isso está dizendo que não é possível converter um string em scriptBlock , o que implica que where precisa ser seguido por um bloco de script assim: {code here}

Certifique-se de ler as mensagens de erro e tente interpretar o que elas significam.

    
por 14.01.2014 / 02:18
0

Use "-match" para encontrar a UTN que pode estar em qualquer lugar no assunto

gci | ?{$_.subject -match "UTN"}

Se você usar "-like" e nada aparecer, coloque o que você está procurando entre os asteriscos dentro das aspas.

gci | ?{$_.subject -like "*UTN*"}
    
por 14.01.2014 / 03:56