获取 ADUser 按不为我工作的成员排序
Get ADUser sort by memberof not working for me
我需要提取特定 OU 中属于同一组的所有成员的列表。问题是它只有在我使用 -match 时才有效,但是它也会选择具有相似名称的组。如果我使用 -eq 它什么也检索不到,尽管用户是该特定组的成员。谁能帮我弄清楚我做错了什么?
我一直在使用的 powershell 脚本;
Get-ADUser -Filter * -SearchBase 'OU=NewUsers,DC=LOCAL' -properties memberof | Where-Object {$_.memberof -eq 'APP-KMD'} | Select SamAccountName
您的问题出在比较运算符上,以下是它们之间的一些差异:
人数比较:
- eq(等于)
- ne(不等于)
- gt(大于)
- lt(小于)
- le(小于等于)
- ge(大于等于)
字符串比较:
- -like 和 -notLike(通配符字符串比较,通配符为 * 和 ?),不要与 -contains 运算符混淆。
正则表达式比较
- -match 和-notMatch(正则表达式匹配)
如果您知道组的确切名称,您可能应该使用 -like "GROUPNAME",这样您就只会得到该组的用户。
显然你不能直接匹配,但如果你抓取给定组的匹配项并拉出该组的成员并进行比较,它会给出预期的输出。
$brugere = Get-ADUser -Filter * -SearchBase 'OU=NewUsers,DC=LOCAL' -Properties * | Select-Object SamAccountName
$gruppemedlem = Get-ADGroupMember -Identity app-kmd | select SamAccountName
ForEach ($bruger in $brugere)
{
If ($gruppemedlem.samaccountname -contains $bruger.SamAccountName) {
Write-Host $bruger }
}
请记住,memberOf
属性的值是组的 DN,因此您需要匹配整个 DN,而不仅仅是组的 CN。您可以在子查询中获取组的 DN 并直接在过滤器中使用它,即:
Get-ADUser -LDAPFilter "(memberof=$(Get-ADGroup APP-KMD))" -SearchBase 'OU=NewUsers,DC=LOCAL' | Select SamAccountName
我需要提取特定 OU 中属于同一组的所有成员的列表。问题是它只有在我使用 -match 时才有效,但是它也会选择具有相似名称的组。如果我使用 -eq 它什么也检索不到,尽管用户是该特定组的成员。谁能帮我弄清楚我做错了什么?
我一直在使用的 powershell 脚本;
Get-ADUser -Filter * -SearchBase 'OU=NewUsers,DC=LOCAL' -properties memberof | Where-Object {$_.memberof -eq 'APP-KMD'} | Select SamAccountName
您的问题出在比较运算符上,以下是它们之间的一些差异:
人数比较:
- eq(等于)
- ne(不等于)
- gt(大于)
- lt(小于)
- le(小于等于)
- ge(大于等于)
字符串比较:
- -like 和 -notLike(通配符字符串比较,通配符为 * 和 ?),不要与 -contains 运算符混淆。
正则表达式比较
- -match 和-notMatch(正则表达式匹配)
如果您知道组的确切名称,您可能应该使用 -like "GROUPNAME",这样您就只会得到该组的用户。
显然你不能直接匹配,但如果你抓取给定组的匹配项并拉出该组的成员并进行比较,它会给出预期的输出。
$brugere = Get-ADUser -Filter * -SearchBase 'OU=NewUsers,DC=LOCAL' -Properties * | Select-Object SamAccountName
$gruppemedlem = Get-ADGroupMember -Identity app-kmd | select SamAccountName
ForEach ($bruger in $brugere)
{
If ($gruppemedlem.samaccountname -contains $bruger.SamAccountName) {
Write-Host $bruger }
}
请记住,memberOf
属性的值是组的 DN,因此您需要匹配整个 DN,而不仅仅是组的 CN。您可以在子查询中获取组的 DN 并直接在过滤器中使用它,即:
Get-ADUser -LDAPFilter "(memberof=$(Get-ADGroup APP-KMD))" -SearchBase 'OU=NewUsers,DC=LOCAL' | Select SamAccountName