AD के साथ कार्य करें: विशेषता SIDHistory द्वारा खोजें

मैं आपके ध्यान में सक्रिय निर्देशिका विशेषता sIDHistory के साथ काम करने का मेरा तरीका लाता हूं। अर्थात्, हम इस विशेषता के द्वारा किसी वस्तु की खोज करेंगे।

लेकिन पहले, चलो विशेषता के बारे में बात करते हैं। सक्रिय निर्देशिका में वस्तुओं के पत्राचार बनाने के लिए sIDHistory का उपयोग किया जाता है; यह आवश्यक है, उदाहरण के लिए, जब खातों और समूहों को एक डोमेन / वन से दूसरे में माइग्रेट कर रहा हो।

यह हमें क्या देता है? और यह हमें संसाधनों के अधिकारों को पुन: सौंपने का नहीं, बल्कि उन्हें "जैसा है" छोड़ने का अवसर देता है।
उदाहरण: A.local डोमेन में A-G1 समूह है, उपयोगकर्ता A-U1 इसका सदस्य है।
हमारे पास एक फ़ाइल संसाधन \\ server01 \ share है, जिसके उपयोग के लिए समूह A-G1 को सौंपा गया है

ऐसा हुआ कि हम B.local डोमेन में चले गए, वहां उपयोगकर्ता B-U1 बनाया और उपयोगकर्ता A \ A-U1 से sIDHistory विशेषता पंजीकृत की

अब उपयोगकर्ता B \ B-U1 बिना किसी अतिरिक्त क्रिया के \\ server01 \ share में लॉग इन कर सकते हैं

मान लीजिए कि 5000 उपयोगकर्ता चले गए, उनमें से कुछ का पूरी तरह से नाम बदला जा सकता है, और sIDHistory अंकों का एक गुच्छा जैसा दिखता है जो व्यवस्थापक के लिए स्पष्ट नहीं हैं। यह जानना असंभव है कि डोमेन A में कौन सा उपयोगकर्ता डोमेन B के उपयोगकर्ता से मेल खाता है।

QUEST cmdlets का उपयोग करके एक पॉवरशेल स्क्रिप्ट जो सभी वस्तुओं को निर्दिष्ट विशेषता पर प्रिंट करती है।

# ,     sIDHistory $user="B-U1" #     AD $obj=(Get-qADObject -Identity $user -service "B.local" -includedproperties sIDHistory | select name,dn,sIDHistory) # LDAP  $ldap="LDAP://{0}" -f $obj.dn #  .NET,    SID $indents=([ADSI]$ldap).getex(“sidhistory”) | % { (new-object System.Security.Principal.SecurityIdentifier $_ ,0).value } #   sIDHistory     ,    foreach ($indent in $indents) { get-qadobject -identity $indent -service "A.local" } 


स्क्रिप्ट के लिए शर्तें:


प्रवेश द्वार पर आप CSV और समूहों से अनलोडिंग दोनों प्रस्तुत कर सकते हैं:
users.txt:
नाम
बी-U1


 import-csv -delimiter "`t" -path "users.txt" | % { # ,     sIDHistory $user=$_.name #     AD $obj=(Get-qADObject -Identity $user -service "B.local" -includedproperties sIDHistory | select name,dn,sIDHistory) # LDAP  $ldap="LDAP://{0}" -f $obj.dn #  .NET,    SID $indents=([ADSI]$ldap).getex(“sidhistory”) | % { (new-object System.Security.Principal.SecurityIdentifier $_ ,0).value } #   sIDHistory     ,    foreach ($indent in $indents) { get-qadobject -identity $indent -service "A.local" } } 

Source: https://habr.com/ru/post/In122753/


All Articles