1

我正在使用此命令在管理员组中获取本地用户,并且它有效

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

但现在我想使用像这样的变量 $Group="Administrators" $Account="users"

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

但我一无所获

 

4

2 回答 2

2

如果组名是“Administrators”,则不需要使用通配符。星号将匹配一个或多个字符。例如:

"Administrator*"匹配管理员、管理员、“管理员组”等

"*Administrators"匹配管理员、“Windows 管理员”等

"*Administrator*"匹配管理员、“管理员组”、“Windows 管理员”等

对于第二个命令,您可以使用子表达式来扩展变量。

Where-Object { $_.groupcomponent -like "*$($Group)*" }
于 2018-04-19T14:48:01.053 回答
1

这是一个工作示例:

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

同样可以适应$_.partcomponent

于 2018-04-19T14:47:59.270 回答