erro do power shell: não é possível vincular o parâmetro

erro do power shell: não é possível vincular o parâmetro

quando estou tentando executar o comando do PowerShell abaixo, recebo um erro.

O comando :

*Certificado PS:\currentuser\authroot> gci | onde sujeito -como "UTN"*

O erro está abaixo:

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

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

Responder1

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 colchetes ao redor da expressão e referir-se a quaisquer propriedades com o $_.prefixo.

Responder2

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

Não é possível converter o valor "assunto" do tipo "System.String" para o tipo System.Management.Automation.ScriptBlock"

Isso quer dizer que ele não pode converter a stringem a scriptBlock, o que implica que whereprecisa ser seguido por um bloco de script como este:{code here}

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

Responder3

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

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

Se você usar "-like" e nada aparecer, coloque o que procura entre asteriscos e entre aspas.

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

informação relacionada