Powershell -Filter不接受两个条件

时间:2015-01-29 00:38:45

标签: powershell wmi user-accounts

我有这个命令

$remoteuserlist = Get-WmiObject Win32_UserAccount `
-filter "LocalAccount =True" –computername $PC -verbose

我正在运行以获取计算机上的本地帐户列表。我还想从我的列表中排除来宾帐户。所以我试过这样的事情

$remoteuserlist = Get-WmiObject Win32_UserAccount `
-filter {LocalAccount =True -and Name -ne "Guest" –computername $PC -verbose}

但是我收到了无效的查询错误。有人可以解释我可能是一个非常明显的错误吗?

由于

3 个答案:

答案 0 :(得分:2)

WQL"不等于" operator is!=或<>。

WQL Operators

答案 1 :(得分:1)

$remoteuserlist = Get-WmiObject Win32_UserAccount -filter {LocalAccount = "True" and Name != "Guest"} –computername $PC -verbose
  1. 您正在混合使用WMI语法和PowerShell语法
  2. 包含过滤器的括号围绕Get-WmiObject
  3. 的其他参数

答案 2 :(得分:0)

如果你有一堆旧的VBScript WMI查询,你可以使用Get-WMIObject -Query参数来重用它们。

$remoteuserlist = Get-WmiObject -query "SELECT * FROM Win32_UserAccount WHERE LocalAccount = 'True' and Name != 'Guest'" –computername $PC -verbose

不是开创性的,但如果您不想重写查询,它会有所帮助。