PowerShell स्क्रिप्ट व्यवस्थापक उपयोगकर्ताओं को ADCount> 0 के साथ खोजने के लिए


17

मैंने हाल ही में सक्रिय निर्देशिका की "adminSDHolder" सुविधा की खोज की है। मुझे उन सभी उपयोगकर्ताओं की पहचान करने के लिए एक त्वरित तरीके की आवश्यकता है जो इससे प्रभावित होंगे, अर्थात् उपयोगकर्ता खातों को डंप करने के लिए एक स्क्रिप्ट।

जवाबों:


18

आप इस पावरस्क्रिप्‍ट स्क्रिप्ट का उपयोग उन उपयोगकर्ताओं को वापस करने के लिए कर सकते हैं, जिनके पास 0 से अधिक का एडमिन है, जिसका अर्थ है कि वे adminSDHolder फीचर से प्रभावित हैं। आपको स्थापित PowerShell के लिए AD मॉड्यूल की आवश्यकता होगी, जो RSAT के साथ आता है।

import-module activedirectory

get-aduser -Filter {admincount -gt 0} -Properties adminCount -ResultSetSize $null      

4
यहाँ एक ही काम करने का एक क्लीनर तरीका है: get-aduser -filter {admincount -gt 0} -प्रदायों admincount -ResultSetSize $ null
jbsmith

यह भी आप एक ही काम करने के लिए एक dsquery फ़िल्टर बना सकते हैं
टोनी रोटी

2
@ टॉनी - आप कर सकते थे, लेकिन ओपी ने विशेष रूप से एक पॉवरशेल स्क्रिप्ट के लिए कहा।
एमडीमैरा


2

यह MDMarra के उत्कृष्ट उत्तर पर एक संस्करण है।

Import-Module ActiveDirectory
Get-ADUser -LDAPFilter "(admincount>0)" -Properties adminCount

यह -Filter के बजाय -LDAPFilter का उपयोग करता है । कुछ लोग LDAP फ़िल्टर सिंटैक्स का उपयोग करना पसंद करते हैं क्योंकि यह कई विभिन्न प्रकार के अनुप्रयोगों में पोर्टेबल है।

ध्यान दें कि फ़िल्टर और LDAPFilter में समान प्रदर्शन विशेषताएँ होती हैं क्योंकि फ़िल्टर को सर्वर की तरफ निष्पादित किया जाता है। बड़ी निर्देशिकाओं को क्वेरी करते समय, हमेशा इस तरह से सीधे फ़िल्टर करने की कोशिश करें, Where-Objectजिसके बजाय उपयोग करने से पहले सभी वस्तुओं को फ़िल्टर करने से पहले डाउनलोड करना होगा। यह TechNet आलेख फ़िल्टर बनाम जहाँ-वस्तु पर विस्तार से वर्णित है ।


मैं बार-बार इसका उपयोग करने के -LDAPFilterलिए धन्यवाद देता हूं और इसका लाभ देने के लिए धन्यवाद देता हूं।
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
यह उन अनुमतियों को बदलता है जो ओपी के लिए नहीं देख रहा था। इसके अलावा, इन ऑब्जेक्ट्स पर अनुमतियाँ बदलने से बहुत कुछ नहीं होगा। अगली बार जब AdminSDHolder प्रक्रिया चलती है, तो यह उनकी अनुमतियों को रीसेट कर देगा।
एमडीएमरा

3
खतरनाक इलाके।
टॉम ओ'कॉनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.