对Powershell cmdlet的参数使用比较运算符

对Powershell cmdlet的参数使用比较运算符,powershell,parameters,Powershell,Parameters,我正在尝试使用cmdlet 与任何其他Powershell cmdlet一样,我可以传递it参数以根据需要筛选出结果。所以,我可以做一些事情,比如 Get-brokerdesktop -RegistrationState Unregistered 它将返回一个对象,该对象只有未注册作为其注册状态 我该如何让那些未注册的取消注册 我试过了 Get-brokerdesktop -RegistrationState -ne Unregistered 这是无效的语法。实际上,我刚刚注意到链接文档

我正在尝试使用cmdlet

与任何其他Powershell cmdlet一样,我可以传递it参数以根据需要筛选出结果。所以,我可以做一些事情,比如

Get-brokerdesktop  -RegistrationState Unregistered
它将返回一个对象,该对象只有
未注册
作为其
注册状态

我该如何让那些未注册的
取消注册

我试过了

Get-brokerdesktop  -RegistrationState -ne Unregistered

这是无效的语法。

实际上,我刚刚注意到链接文档底部有一个示例

这里的技巧是像这样使用
-Filter

Get-BrokerDesktop -Filter { RegistrationState -ne 'Unregistered' }
或者在这种情况下更好,正如@TheIncorrigible1所建议的

-Filter 'RegistrationState -ne "Unregistered"'

除非参数的类型是scriptblock,否则不要对筛选器使用scriptblock。。它只是被转换成字符串,可能会导致恼人的错误。那么我如何运行它呢?另外:
此cmdlet现在已不推荐使用,请使用Get-BrokerMachine。
@scharette:添加一点背景故事:错误地使用脚本块作为
-Filter
参数与错误地使用脚本块一样不幸,cmdlet发布者在他们自己的文档示例中使用它更是如此。如果您想了解为什么应该避免使用脚本块的详细信息:@mklement0感谢您提供的链接非常有趣,