Powershell - 过滤器不接受两个条件
Powershell -Filter not accepting two conditions
我有这个命令
$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}
但我收到无效查询错误。有人可以解释我大概是非常明显的错误吗?
谢谢
WQL "not equal" 运算符是 != 或 <>。
$remoteuserlist = Get-WmiObject Win32_UserAccount -filter {LocalAccount = "True" and Name != "Guest"} –computername $PC -verbose
- 您混合了 WMI 语法和 PowerShell 语法
- 包含过滤器的括号围绕
Get-WmiObject
的其他参数
如果您有一堆旧的 VBScript WMI 查询,您可以使用 Get-WMIObject -Query 参数来重用它们。
$remoteuserlist = Get-WmiObject -query "SELECT * FROM Win32_UserAccount WHERE LocalAccount = 'True' and Name != 'Guest'" –computername $PC -verbose
不是开创性的,但如果您不想重写查询,它会有所帮助。
我有这个命令
$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}
但我收到无效查询错误。有人可以解释我大概是非常明显的错误吗?
谢谢
WQL "not equal" 运算符是 != 或 <>。
$remoteuserlist = Get-WmiObject Win32_UserAccount -filter {LocalAccount = "True" and Name != "Guest"} –computername $PC -verbose
- 您混合了 WMI 语法和 PowerShell 语法
- 包含过滤器的括号围绕
Get-WmiObject
的其他参数
如果您有一堆旧的 VBScript WMI 查询,您可以使用 Get-WMIObject -Query 参数来重用它们。
$remoteuserlist = Get-WmiObject -query "SELECT * FROM Win32_UserAccount WHERE LocalAccount = 'True' and Name != 'Guest'" –computername $PC -verbose
不是开创性的,但如果您不想重写查询,它会有所帮助。