Powershell 查找不是特定GG组成员的计算机

Powershell 查找不是特定GG组成员的计算机,powershell,active-directory,active-directory-group,Powershell,Active Directory,Active Directory Group,我使用脚本导出不在active directory中特定GG组中的用户,但我希望对计算机也这样做 这是一个适用于用户的示例: $groups = 'GG_LCS_UsersType4', 'GG_LCS_UsersType3', 'GG_LCS_UsersType2', 'GG_LCS_SpecialUsers' $whereFilter = $groups | Foreach-Object { $g = (Get-ADGroup -server $domain $_).Disting

我使用脚本导出不在active directory中特定GG组中的用户,但我希望对计算机也这样做

这是一个适用于用户的示例:

$groups = 'GG_LCS_UsersType4', 'GG_LCS_UsersType3', 'GG_LCS_UsersType2', 'GG_LCS_SpecialUsers'
$whereFilter = $groups | Foreach-Object { 
    $g = (Get-ADGroup -server $domain $_).DistinguishedName
    "{0} '{1}'" -f '$_.memberOf -notcontains',$g 
}
$whereFilter = [scriptblock]::Create($whereFilter -join " -and ")
$users = (Get-ADUser -server $Domain -filter {objectclass -eq "user"} -properties memberof).where($whereFilter)
$users | Select-Object SamAccountName,Enabled |
    Export-Csv "${Domain}_Users_withoutGG.csv" -NoTypeInformation -Encoding UTF8 -Append
我试着用电脑做同样的事情,但这不起作用:

$groups = 'GG_LCS_ComputersType2', 'GG_LCS_ComputersType3', 'GG_LCS_ComputersType4'
$whereFilter = $groups | Foreach-Object { 
    $g = (Get-ADGroup -server $domain $_).DistinguishedName
    "{0} '{1}'" -f '$_.memberOf -notcontains',$g 
}
$whereFilter = [scriptblock]::Create($whereFilter -join " -and ")
$users = (Get-ADComputer -server $Domain -filter {objectclass -eq "computer"} -properties memberof).where($whereFilter)
$users | Select-Object SamAccountName,Enabled |
    Export-Csv "${Domain}_Computers_withoutGG.csv" -NoTypeInformation -Encoding UTF8 -Append

你能帮我吗?谢谢

尝试添加-SearchBase

$AD = Get-ADComputer  -Filter *  -Properties $properties -SearchBase "DC=subdomain,DC=domain,DC=com" -Server $server
$AD | Select-Object * | Export-Csv -NoTypeInformation $filePath -Encoding UTF8

视情况而定。什么东西没有按您预期的方式工作(即,您预期的结果是什么,您实际得到的结果是什么)?我在我的电脑上尝试了这个方法,根据我的解释,它按预期工作。我唯一要更改的是在末尾选择SamAccountName。计算机对象的SamAccountName将包含$。对于计算机,我会切换到
选择对象名称,启用