Yanıtlar:
AdminCount değeri 0'dan büyük olan kullanıcıları döndürmek için bu powershell komut dosyasını kullanabilirsiniz; bu, adminSDHolder özelliğinden etkilendikleri anlamına gelir. RSAT ile birlikte gelen PowerShell için AD Modülünün yüklü olması gerekir.
import-module activedirectory
get-aduser -Filter {admincount -gt 0} -Properties adminCount -ResultSetSize $null
Bu, MDMarra'nın mükemmel cevabının bir çeşididir.
Import-Module ActiveDirectory
Get-ADUser -LDAPFilter "(admincount>0)" -Properties adminCount
Bu, -Filter yerine -LDAPFilter kullanır . Bazı insanlar LDAP filtre sözdizimini kullanmayı tercih eder, çünkü birçok farklı uygulama türünde taşınabilir.
Filtre sunucu tarafında yürütüldüğünden, Filtre ve LDAPFilter'in benzer performans özelliklerine sahip olduğunu unutmayın. Büyük dizinleri sorgularken, filtrelemeden Where-Object
önce tüm nesnelerin indirilmesine neden olacak kullanmak yerine her zaman doğrudan bu şekilde filtreleme yapmaya çalışın . Bu, Filtre - Where-Object adlı TechNet makalesinde ayrıntılı olarak açıklanmaktadır .
-LDAPFilter
, bahsettiğiniz ve faydalarını açıkladığınız için teşekkür ederim.
## 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"
}
}