AdminCount> 0 olan AD kullanıcılarını bulmak için PowerShell Komut Dosyası


17

Yakın zamanda Active Directory'nin "adminSDHolder" özelliğini keşfettim. Etkilenecek tüm kullanıcıları, yani kullanıcı hesaplarını dökümü için bir komut dosyası tanımlamak için hızlı bir yol gerekir.

Yanıtlar:


18

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      

4
İşte aynı şeyi yapmak için daha temiz bir yöntem: get-aduser -filter {admincount -gt 0} -Properties admincount -ResultSetSize $ null
jbsmith 24:11

Ayrıca aynı şeyi yapmak için bir dsquery filtre oluşturabilir
tony roth

2
@tony - Yapabilirsiniz, ancak OP özellikle bir PowerShell betiği istedi.
MDMarra


2

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 .


Sık sık kullanıyorum -LDAPFilter, bahsettiğiniz ve faydalarını açıkladığınız için teşekkür ederim.
jscott

-2
## 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"
}
}

1
Bu OP'nin aradığı izinleri değiştirir . Ayrıca, bu nesneler üzerindeki izinleri değiştirmek çok fazla bir şey yapmaz. Bir sonraki AdminSDHolder işlemi, izinlerini sıfırlayacaktır.
MDMarra

3
Burada ejderhalar olsun.
Tom O'Connor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.