简体   繁体   English

在PowerShell中的Where命令中使用(*)

[英]Using (*) in Where command in PowerShell

I am Using this command to get a Local User in Administrators group, and it works 我正在使用此命令在Administrators组中获取本地用户,并且它可以正常工作

Get-WmiObject -Class Win32_Groupuser -ComputerName $computer |? {$_.groupcomponent -like '*"Administrators"' -and $_.Partcomponent -like '*"User"'}|ft groupcomponent,Partcomponent

But now i want to use variable like this $Group="Administrators" $Account="users" 但现在我想使用像这样的变量$ Group =“Administrators”$ Account =“users”

Get-WmiObject -Class Win32_Groupuser -ComputerName $computer |? {$_.groupcomponent -like *$Group -and $_.Partcomponent -like *$Account}|ft groupcomponent,Partcomponent

but i get nothing back 但我一无所获

If the group name is "Administrators" you do not need to use a wildcard. 如果组名是“Administrators”,则不需要使用通配符。 The asterisk will match one or more characters. 星号将匹配一个或多个字符。 For example: 例如:

"Administrator*" matches Administrator, Administators, "Administrator Groups", etc "Administrator*"与管理员,管理员,“管理员组”等相匹配

"*Administrators" matches Administrators, "Windows Administrators", etc "*Administrators"与管理员,“Windows管理员”等相匹配

"*Administrator*" matches Administrators, "Administrator Groups", "Windows Administrators", etc "*Administrator*"与管理员,“管理员组”,“Windows管理员”等相匹配

For the second command you can use a sub-expression to expand the variable. 对于第二个命令,您可以使用子表达式来扩展变量。

Where-Object { $_.groupcomponent -like "*$($Group)*" }

This is a working example: 这是一个有效的例子:

$Group = '"Administrators"'
Get-WmiObject -Class Win32_Groupuser -ComputerName $computer |? {$_.groupcomponent -like "*$Group"}

The same can be adapted for $_.partcomponent . 同样可以适用于$_.partcomponent

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM