Odpowiedzi:
Możesz użyć tego skryptu PowerShell, aby zwrócić użytkowników, którzy mają konto adminCount większe niż 0, co oznacza, że wpływa na nich funkcja adminSDHolder. Musisz zainstalować moduł AD dla PowerShell, który jest dostarczany z RSAT.
import-module activedirectory
get-aduser -Filter {admincount -gt 0} -Properties adminCount -ResultSetSize $null
Jest to wariant doskonałej odpowiedzi MDMarra.
Import-Module ActiveDirectory
Get-ADUser -LDAPFilter "(admincount>0)" -Properties adminCount
Używa -LDAPFilter zamiast -Filter . Niektóre osoby wolą używać składni filtru LDAP, ponieważ jest on przenośny w wielu różnych typach aplikacji.
Zauważ, że Filter i LDAPFilter mają podobną charakterystykę wydajności, ponieważ filtr jest wykonywany po stronie serwera. Podczas odpytywania dużych katalogów zawsze staraj się filtrować bezpośrednio w ten sposób, zamiast używać tego, Where-Object
co spowodowałoby pobranie wszystkich obiektów przed filtrowaniem. Jest to szczegółowo opisane w artykule TechNet Filtr vs. gdzie-obiekt .
-LDAPFilter
więc dziękuję za wzmiankę o tym i wyjaśnienie korzyści.
## Script name = Set-IheritablePermissionOnAllUsers.ps1
##
## sets the "Allow inheritable permissions from parent to propagate to this
##object"check box
# Contains DN of users
#
#$users = Get-Content C:\C:\Navdeep_DoNotDelete\variables\users.txt
Get-ADgroup -LDAPFilter “(admincount=1)” | select name
$users = Get-ADuser -LDAPFilter “(admincount=1)”
##Get-QADUser -SizeLimit 0 | Select-Object Name,@{n=’IncludeInheritablePermissions’;e={!$_.DirectoryEntry.PSBase.ObjectSecurity.AreAccessRulesProtected}} | Where {!$_.IncludeInheritablePermissions}
ForEach($user in $users)
{
# Binding the users to DS
$ou = [ADSI]("LDAP://" + $user)
$sec = $ou.psbase.objectSecurity
if ($sec.get_AreAccessRulesProtected())
{
$isProtected = $false ## allows inheritance
$preserveInheritance = $true ## preserver inhreited rules
$sec.SetAccessRuleProtection($isProtected, $preserveInheritance)
$ou.psbase.commitchanges()
Write-Host "$user is now inherting permissions";
}
else
{
Write-Host "$User Inheritable Permission already set"
}
}