Antworten:
Mit diesem Powershell-Skript können Sie Benutzer zurückgeben, deren adminCount größer als 0 ist. Dies bedeutet, dass sie von der Funktion adminSDHolder betroffen sind. Sie benötigen das AD-Modul für PowerShell, das mit RSAT geliefert wird.
import-module activedirectory
get-aduser -Filter {admincount -gt 0} -Properties adminCount -ResultSetSize $null
Dies ist eine Variante der hervorragenden Antwort von MDMarra.
Import-Module ActiveDirectory
Get-ADUser -LDAPFilter "(admincount>0)" -Properties adminCount
Dies verwendet -LDAPFilter anstelle von -Filter . Einige Leute bevorzugen die Verwendung der LDAP-Filtersyntax, da diese für viele verschiedene Arten von Anwendungen portierbar ist.
Beachten Sie, dass Filter und LDAPFilter ähnliche Leistungsmerkmale aufweisen, da der Filter auf der Serverseite ausgeführt wird. Versuchen Sie beim Abfragen großer Verzeichnisse immer, direkt auf diese Weise zu filtern, anstatt zu verwenden Where-Object
, dass alle Objekte vor dem Filtern heruntergeladen werden. Dies wird im TechNet-Artikel Filter vs. Where-Object ausführlich beschrieben .
-LDAPFilter
so vielen Dank für die Erwähnung und Klärung der Vorteile.
## 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"
}
}