सक्रिय डिरेक्ट्रीमध्ये निष्क्रिय वापरकर्ते शोधा. निवडक AD गटांची यादी कशी मिळवायची ज्याचे सदस्य आहेत

नोकिया 10.08.2019
नोकिया

MS Active Directory (ITGC) वरून सर्व वापरकर्ते अनलोड करण्यासाठी स्क्रिप्ट

इव्हान पिस्कुनोव्ह

मानक ऑडिट प्रक्रियेपैकी एक ITGC कॅटलॉग साठी चालू निर्देशिका सर्व डोमेन वापरकर्त्यांचे डाउनलोड मिळवण्यासाठी आहे. प्राप्त डेटावर आधारित, चाचणी प्रक्रिया नंतर तयार केल्या जातात, उदाहरणार्थ, प्रशासकांच्या सूचीचा अभ्यास करणे किंवा कालबाह्य संकेतशब्दासह वापरकर्त्यांना ओळखणे. असे अपलोड तयार करण्याचा सर्वात प्रभावी मार्ग म्हणजे मानक इंटरफेस वापरणे पॉवरशेल , ज्याची उदाहरणे आपण या लेखात विचारात घेणार आहोत

1. पॉवरशेल स्क्रिप्ट वापरून एक्सप्रेस अपलोड करा

खाली CSV स्वरूपात सर्व AD डोमेन वापरकर्त्यांची सूची मिळविण्याचा सर्वात सोपा आणि जलद मार्ग म्हणून PowerShell स्क्रिप्ट आहे, जी Excel मध्ये कोणत्याही समस्यांशिवाय उघडली जाऊ शकते.

$objSearcher = नवीन-ऑब्जेक्ट सिस्टम.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = "LDAP://ou=Users,ou=Departmets,dc=test,dc=ru" $objSearcher.Filter = "(&(objectCategory=person) (!userAccountControl:1.2.840.113556.1.4.803:=2))" $users = $objSearcher.FindAll() # खात्यांची संख्या $users.Count $users | प्रत्येक वस्तूसाठी ( $user = $_.Properties New-Object PsObject -Property @( स्थान = $user.description विभाग = $user.department लॉगिन = $user.userprincipalname फोन = $user.telephonenumber रूम = $user.physicaldeliveryofficename पूर्ण नाव = $user.cn ) ) | निर्यात-Csv -NoClobber -एनकोडिंग utf8 -पथ C: list_domain_users.csv

स्क्रिप्ट आपल्या सिस्टमवर कार्य करण्यासाठी, आपल्याला ते थोडेसे दुरुस्त करणे आवश्यक आहे, म्हणजे आवश्यक पॅरामीटर्स प्रविष्ट करा, म्हणजे. या उदाहरणाप्रमाणे हे पॅरामीटर्स आहेत वापरकर्ते विभागात विभाग डोमेन मध्ये Test.ru. आणि फाइल कोठे सेव्ह केली आहे ते देखील सूचित करा list_domain_users.csv

अनलोड केल्यानंतर, जर तुम्ही ते लगेच उघडले list_domain_users.csv , अवाचनीय दिसेल, तथापि, मानक साधनांचा वापर करून आम्ही ते आम्हाला आवश्यक असलेल्या फॉरमॅटमध्ये सहजपणे आणू शकतो. Excel मध्ये उघडा list_domain_users.csv , पहिला स्तंभ निवडा, नंतर “डेटा” टॅबवर जा आणि “स्तंभांद्वारे मजकूर” वर क्लिक करा. "सीमांकित" निवडा आणि "पुढील" क्लिक करा. तयार!

!लक्षात घेणे आवश्यक आहेकी ही स्क्रिप्ट 1000 पेक्षा जास्त वापरकर्ते प्रदर्शित करणार नाही. हे एका लहान कंपनीसाठी अगदी योग्य आहे, परंतु ज्यांच्या डोमेनमध्ये मोठ्या संख्येने वापरकर्ते आहेत त्यांच्यासाठी त्यांनी खाली वर्णन केलेल्या पद्धतींचा अवलंब करावा.

2. सक्रिय निर्देशिका वापरकर्ता अपलोड मिळविण्यासाठी प्रगत PowerShell cmdlet

Windows PowerShell टूलसाठी सक्रिय निर्देशिका मॉड्यूल (Windows Server 2008 R2 आणि उच्च मध्ये सादर केलेले) तुम्हाला cmdlets तयार करण्यास अनुमती देते जे AD निर्देशिका ऑब्जेक्ट्ससह विविध हाताळणी करतात. cmdlet वापरकर्ते आणि त्यांच्या गुणधर्मांबद्दल माहिती मिळवण्यासाठी वापरला जातो मिळवा-ADUser.

सुरू करण्यासाठी पॉवरशेल विंडो लाँच करा प्रशासक अधिकारांसह आणि पुढील कारवाईसाठी सक्रिय निर्देशिका मॉड्यूल आयात करा:
आयात-मॉड्यूल सक्रिय निर्देशिका

ला सर्व डोमेन खाती सूचीबद्ध करा चला कमांड चालवू:

Get-ADUser -filter*

ला सर्व उपलब्ध गुणधर्मांबद्दल संपूर्ण माहिती प्रदर्शित करा user tuser, कमांड चालवा

Get-ADUser -identity tuser -गुणधर्म *


उदाहरणार्थ, आम्हाला याबद्दल माहितीमध्ये स्वारस्य आहे पासवर्ड बदलण्याची तारीख आणि तो कालबाह्य होण्याची वेळ . आदेशाचा परिणाम मजकूर फाइलवर निर्यात केला जाऊ शकतो:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft नाव, पासवर्ड एक्सपायर्ड, पासवर्ड लास्टसेट, पासवर्ड नेव्हर एक्स्पायर्स > C:tempusers.txt

किंवा लगेच CSV वर अपलोड करा , जे भविष्यात एक्सेलमध्ये निर्यात करणे सोयीचे असेल (याव्यतिरिक्त, सॉर्ट-ऑब्जेक्ट वापरून आम्ही पासवर्डलास्टसेट स्तंभानुसार टेबलची क्रमवारी लावू, आणि कुठे अट देखील जोडू - वापरकर्ता नावामध्ये "दिमित्री" ही स्ट्रिंग असणे आवश्यक आहे)

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | जेथे ($_.नाव – “*दिमित्री*”) | sort-object PasswordLastSet | सिलेक्ट-ऑब्जेक्टचे नाव, पासवर्ड एक्सपायर्ड, पासवर्डलास्टसेट, पासवर्डनेव्हर एक्सपायर | Export-csv -path c:tempuser-password-expires-2015.csv

शुभ दुपार, प्रिय वाचकांनो आणि सदस्यांनो, आम्ही पॉवरशेल आणि ॲक्टिव्ह डिरेक्ट्रीच्या क्षमतांचा अभ्यास करत आहोत. तुम्हाला आठवत असेल, तिची सर्व वापरकर्ता आणि संगणक खाती NTDS.dit डेटाबेसमध्ये स्थित आहेत, सर्वकाही उत्कृष्ट आणि केंद्रीकृत आहे. जेव्हा एखाद्या कंपनीमध्ये एकापेक्षा जास्त सिस्टम प्रशासक असतात, तेव्हा अशी परिस्थिती उद्भवू शकते जिथे कचरा आणि अनावश्यक क्रेडेन्शियल जमा होतात. आपण सर्व मानव आहोत आणि आपण काही गोष्टी विसरू शकतो आणि काही क्षणी आपले लक्ष विचलित होऊ शकते, ज्यामुळे महत्वाची माहिती देखील विसरली जाऊ शकते. आणि आम्ही या निष्कर्षावर पोहोचतो की निष्क्रिय वापरकर्ते (काढलेले किंवा विसरलेले) कोणत्याही परिस्थितीत, एका चांगल्या सिस्टम प्रशासकाने त्यांना ओळखले पाहिजे, त्यांना अक्षम केले पाहिजे आणि नंतर त्यांना हटवावे, जे आम्ही करू.

ADUC स्नॅप-इन द्वारे

मागील वेळी मी तुम्हाला ॲक्टिव्ह डिरेक्टरी वापरकर्ते आणि संगणक स्नॅप-इन वापरण्याचे उदाहरण दिले होते, ज्याद्वारे आम्ही स्थानिक नेटवर्कवर गहाळ संगणक शोधले जे एका महिन्यापासून दिसले नाहीत. आता आपण वापरकर्ता खात्यांसह तेच करू. माझ्याकडे Windows Server 2012 R2 वर AD आहे, ADUC उघडा, हे करण्यासाठी WIN+R दाबा आणि dsa.msc प्रविष्ट करा.

उघडलेल्या विनंती फॉर्ममध्ये, प्रविष्ट करा:

  • विनंती नाव > माझ्यासाठी हे गमावलेले वापरकर्ते आहेत
  • आवश्यक असल्यास वर्णन
  • रूटची विनंती करा > येथे तुम्ही संपूर्ण डोमेन सोडू शकता किंवा इच्छित OU वर निर्दिष्ट करू शकता

नंतर विनंती बटणावर क्लिक करा.

वापरकर्त्यांच्या टॅबवर आम्ही आयटम पाहतो "शेवटच्या लॉगिनपासून दिवसांची संख्या" उदाहरणार्थ, मी ते 60 दिवसांवर सेट केले आहे.

परिणामी, तुम्हाला निष्क्रिय कर्मचारी खात्यांची आवश्यकता असलेली यादी प्राप्त होईल.

पॉवरशेल स्नॅप-इन द्वारे

हीच गोष्ट पॉवरशेलद्वारे करता येते. मी तुम्हाला ताबडतोब कोड देईन ज्याचे कार्य निष्क्रिय वापरकर्त्यांचा शोध घेणे आहे, यासाठी मी 45 दिवसांचा कालावधी निवडला आहे, वापरकर्ता डेटा अक्षम करणे आणि विशेष नियुक्त केलेल्या OU वर जाणे.

$date_with_offset= (मिळवा-तारीख).Adddays(-45)
$users = मिळवा-ADUser -गुणधर्म LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | LastLogonDate क्रमवारी लावा
foreach ($users मधील $user) (set-aduser $user -enabled $false; move-adobject -identity $user -targetpath "ou=Fired,ou=Moscow L. user,ou=Location,dc=msk,dc= contoso,dc=com")
Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | LastLogonDate | क्रमवारी लावा FT नाव, LastLogonDate -AutoSize | आउट-फाइल c:\Script\users.txt

  • पहिल्या ओळीत तुम्ही एक व्हेरिएबल घोषित करता ज्यामध्ये तुम्ही शोध संज्ञा सेट करता
  • व्हेरिएबल तयार करा आणि शेवटच्या लॉगिन वेळेवर आधारित निवड करा
  • हलणारे वापरकर्ते

  • फाइलवर अहवाल तयार करणे

वापरकर्त्यासह कार्य करण्याबद्दल अधिक उपयुक्त गोष्टी. खालील आदेश वापरण्यापूर्वी, तुम्हाला कमांडद्वारे सक्रिय निर्देशिका मॉड्यूल लोड करणे आवश्यक आहे

Get-Help Get-ADUser

आज आम्ही सक्रिय डिरेक्ट्रीमधून सर्व वापरकर्त्यांची यादी वेगळ्या फाईलमध्ये डाउनलोड करण्याचा प्रयत्न करू. या प्रकरणातील आमचा मुख्य सहाय्यक पॉवरशेल असेल. गोष्ट अशी आहे की मायक्रोसॉफ्टने सुरुवातीला पॉवरशेल कमांड कन्सोलची योजना विंडोज सर्व्हर घटक व्यवस्थापित करण्यासाठी मुख्य साधन म्हणून केली. आणि आज, जेव्हा आपल्याकडे आधीपासूनच आवृत्ती 2.0 आहे, मोठ्या प्रमाणात, हे असे आहे.

अगदी अलीकडच्या काळात, AD शी संवाद साधण्यासाठी, प्रशासकांना त्यांच्या विल्हेवाट एकतर dsquery उपयुक्तता किंवा विविध प्रकारच्या स्क्रिप्ट किंवा उपयुक्तता असणे आवश्यक होते. आज, Windows Server 2008 R2 सह प्रारंभ करून, आम्ही PowerShell द्वारे AD सह कार्य करू शकतो. पॉवरशेल 2.0 च्या आगमनाने, सक्रिय निर्देशिकाशी संवाद साधण्यासाठी एक विशेष मॉड्यूल वापरला जातो. विंडोज पॉवरशेलसाठी सक्रिय निर्देशिका मॉड्यूल, ज्यामध्ये cmdlets ची आवश्यक यादी आहे. आमच्या कार्यांसाठी आम्ही कमांड वापरू मिळवा-ADUser.

त्यामुळे, आम्ही पॉवरशेल कन्सोल कोणत्या ऑपरेटिंग सिस्टीम अंतर्गत चालवणार आहोत यावर अवलंबून, आम्हाला "तयारीचे चरण" करावे लागतील.

1) जर आम्ही विंडोज सर्व्हर अंतर्गत काम करत आहोत आवृत्ती 2012 पर्यंत, नंतर आपल्याला कमांड चालवावी लागेल:

  • आयात-मॉड्यूल सक्रिय निर्देशिका - AD मध्ये मॉड्यूल आयात करण्याची आज्ञा

2012 आणि त्यानंतरच्या ऑपरेटिंग सिस्टम आवृत्त्यांसाठी, हे मॉड्यूल आधीच डीफॉल्टनुसार सक्षम केलेले आहे.

2) आम्ही कोणत्याही क्लायंट Windows वरून काम करत असल्यास, त्यावर RSAT रिमोट ॲडमिनिस्ट्रेशन पॅकेज स्थापित केले पाहिजे, Windows PowerShell घटकासाठी सक्रिय निर्देशिका मॉड्यूलसह.

हे लक्षात घेण्यासारखे आहे की अपलोड केल्या जाणाऱ्या डेटाचे प्रमाण 1000 वापरकर्त्यांपर्यंत असताना Get-ADUser cmdlet कार्यान्वित करण्याची शिफारस केली जाते.

पॉवरशेल वापरून AD वापरकर्त्यांना वेगळ्या फाईलमध्ये निर्यात करणे

प्रथम, Get-ADUser कमांडसाठी मदत कॉल करूया. परिणामी, तुम्हाला पुढील प्रशासनासाठी सर्व आवश्यक आदेश प्राप्त होतील.

  • Get-ADUser मदत करा - मदत कॉल करण्यासाठी आदेश

पॉवरशेल विंडोमध्ये सर्व गुणधर्म असलेल्या सर्व वापरकर्त्यांची यादी मिळविण्यासाठी, तुम्हाला खालील कमांड चालवावी लागेल:

  • Get-ADUser -filter* - एडी वापरकर्त्यांची यादी निर्यात करा

हे अपलोड पूर्णपणे माहितीपूर्ण नाही आणि विंडोमध्ये सर्व आवश्यक माहिती बसत नाही. म्हणून, शोध संकुचित करण्याचा प्रयत्न करूया आणि user1 नावाच्या विशिष्ट वापरकर्त्याचे गुणधर्म प्रदर्शित करूया:

  • Get-ADUser -identity user1 -गुणधर्म * - विशिष्ट वापरकर्त्याचे गुणधर्म निर्यात करा

आता सर्व वापरकर्त्यांची यादी त्यांच्या गुणधर्मांसह बाह्य वर निर्यात करण्याचा प्रयत्न करूया txt किंवा csvफाइल:

  • Get-ADUser -filter * -properties * | Export-csv -path c:\users.csv -एनकोडिंग युनिकोड - वापरकर्त्यांना वेगळ्या फाईलमध्ये निर्यात करा

मी किल्लीकडे विशेष लक्ष देऊ इच्छितो - युनिकोड एन्कोडिंग. रशियन सिरिलिक वर्णमाला, AD मधून निर्यात केल्यानंतर, अपलोड केलेल्या फाइलमध्ये योग्यरित्या प्रदर्शित केले जाऊ शकते याची खात्री करण्यासाठी हे कार्य करते. उदाहरणार्थ, मायक्रोसॉफ्ट एक्सेलद्वारे आपण रशियन अक्षरांऐवजी प्रश्नचिन्ह पाहू.

फाइल पाहताना, डेटा एका ओळीत निर्यात केला जातो आणि त्यामुळे वाचता येत नाही. हे बदलण्यासाठी आम्हाला पुढील गोष्टी करण्याची आवश्यकता आहे:

0

माझ्याकडे खालील कार्यरत स्क्रिप्ट आहे जी CSV फाईलमधील वापरकर्त्यांची मोठी यादी AD गटाचे सदस्य आहे की नाही हे तपासते आणि परिणाम results.csv वर लिहिते.

स्क्रिप्टचे रूपांतर कसे करायचे याची खात्री नाही त्यामुळे मी $group = "InfraLite" ला $group = DC .\List_Of_AD_Groups.CSV मध्ये बदलू शकेन.

त्यामुळे स्क्रिप्ट फक्त एका AD गटासाठी सामने परत करत नाही, तर List_of_AD_groups.csv मध्ये समाविष्ट असलेल्या 80 AD गटांसाठी सामने परत करते. नवीन CSV स्तंभामध्ये प्रत्येक AD गटासाठी होय/नाही लिहिणे (किंवा हे शक्य नसल्यास, परिणामांसह प्रत्येक गटासाठी स्वतंत्र CSV फाइल तयार करणे हेच करेल.

मी $group मधील मूल्य आणि निर्यात फाइल नाव बदलून आणि स्क्रिप्ट 80 वेळा पुन्हा चालवून हे व्यक्तिचलितपणे करू शकतो, परंतु हे करण्यासाठी PS सह त्वरित असणे आवश्यक आहे

उदाहरणार्थ results.csv?:

NAME AD_GROUP1 AD_GROUP2 AD_GROUP80 इ. इ. user1 होय नाही होय user2 नाही होय user3 नाही होय नाही echo "UserName`InfraLite" >> results.csv $users = GC .\user_list.csv $group = "InfraLite" $members = Get-ADGroupMember -Identity $group -Recursive | निवडा -विस्तार मालमत्ता SAMAccountName foreach ($users मध्ये $user) ( जर ($members -contains $user) ( echo "$user $group`tYes" >> results.csv ) इतर ( echo "$user`tNo" >> परिणाम .csv ) )

  • 2 उत्तरे
  • वर्गीकरण:

    क्रियाकलाप

0

तुमच्या समस्येचे क्षुल्लक उपाय म्हणजे तुमचा विद्यमान कोड दुसऱ्या लूपमध्ये गुंडाळा आणि प्रत्येक गटासाठी आउटपुट फाइल तयार करा:

$groups = Get-Content "C:\groups.txt" foreach ($groups मध्ये $groups) ( $members = Get-ADGroupMember ... ... )

समूह मॅपिंग टेम्पलेट तयार करणे, प्रत्येक वापरकर्त्यासाठी ते क्लोन करणे आणि वापरकर्त्याच्या गट सदस्यत्वांसह एक प्रत तयार करणे हा अधिक सुंदर दृष्टीकोन असेल. यासारखे काहीतरी कार्य केले पाहिजे:

$template = @() Get-Content "C:\groups.txt" | प्रत्येक-ऑब्जेक्टसाठी ( $template[$_] = $false ) $groups = @() Get-ADGroup -फिल्टर * | प्रत्येक-ऑब्जेक्टसाठी ( $groups[$_.DistinguishedName] = $_.Name ) Get-ADUser -Filter * -Properties MemberOf | ForEach-Object ( $groupmap = $template.Clone() $_.MemberOf | ForEach-Object ( $groups[$_] ) | where-Object ( $groupmap.ContainsKey($_) ) | प्रत्येक-ऑब्जेक्ट ( $groupmap) साठी [$_] = $true ) नवीन-ऑब्जेक्ट -Type PSObject -Property $groupmap ) | निर्यात-Csv "C:\user_group_mapping.csv" -प्रकार नाही

0

मी काही काळ याच्याशी खेळत आहे आणि मला वाटते की तुम्ही नंतर काय आहात हे मला तुमच्यापर्यंत पोहोचवण्याचा मार्ग सापडला आहे.

मला वाटते की अंगार योग्य मार्गावर होता, पण नंतर जे घडले ते करणे मला जमले नाही. त्यांनी नमूद केले की लेखनाच्या वेळी त्यांना एडी वातावरणात प्रवेश नव्हता.

मी काय घेऊन आलो ते येथे आहे:

$UserArray = Get-Content "C:\Temp\Users.txt" $GroupArray = Get-Content "C:\Temp\Groups.txt" $OutputFile = "C:\Temp\Something.csv" # हॅशटेबल सेट अप करत आहे नंतर वापरण्यासाठी $UserHash = नवीन-ऑब्जेक्ट -TypeName System.Collections.Hashtable # वापरकर्ते जोडण्यासाठी बाह्य लूप आणि UserHash $UserArray मध्ये सदस्यत्व | ForEach-Object( $UserInfo = Get-ADUser $_ -Properties MemberOf # LPAP सिंटॅक्सला फक्त $Memberships = $UserInfo.MemberOf | ForEach-Object( ($_.Split(",")) गटाच्या SAMAccountName वर स्ट्रिप करते .replace("CN=","") ) #Hash $UserHash.Add($_,$Memberships) मध्ये User=Membership जोडी जोडणे ) #Outer loop प्रति वापरकर्ता एक ऑब्जेक्ट तयार करण्यासाठी $Results = $UserArray | ForEach-Object( # प्रथम एक साधा ऑब्जेक्ट तयार करा $User = New-Object -TypeName PSCustomObject -Property @( Name = $_ ) # $GroupArray $GroupArray | ForEach-Object ( #Checking वापरकर्त्याच्या सदस्यत्व सूचीमध्ये गट दिसतो का ते पाहण्यासाठी $UserHash $UserIsMember = $UserHash.($User.Name) - $_ #ऑब्जेक्टमध्ये मालमत्ता जोडणे आणि $User मूल्य समाविष्ट आहे | Add-Member -MemberType NoteProperty -Name $ _ -मूल्य $UserIsMember ) #वस्तू व्हेरिएबलवर परत करणे $User परत करा ) #ऑब्जेक्ट्सचे CSV मध्ये रूपांतर करा, नंतर आउटपुट करा $Results |

सर्वकाही अर्थपूर्ण होईल अशी आशा करूया. मी शक्य तितकी टिप्पणी केली. तुम्ही ज्या मशीनवर हे चालवत आहात त्यावर RSAT इंस्टॉल केलेले नसल्यास ADSI मध्ये रूपांतरित करणे खूप सोपे होईल. तुम्हाला त्याची गरज असल्यास, मला कळवा आणि मी काही झटपट बदल करेन.

हे गुपित नाही की पॉवरशेलच्या पहिल्या आवृत्तीपासून, मायक्रोसॉफ्ट हे मुख्य विंडोज प्रशासन साधन बनवण्याचा प्रयत्न करत आहे. आणि अनेक प्रकारे ते कार्य करते! आज, साधी उदाहरणे वापरून, आम्ही पॉवरशेल क्षमता दाखवू ज्याचा उपयोग सक्रिय निर्देशिका वापरकर्त्यांबद्दल आणि त्यांच्या गुणधर्मांबद्दल विविध माहिती मिळवण्यासाठी केला जाऊ शकतो.

नोंद. पूर्वी, AD वापरकर्ता खात्यांच्या गुणधर्मांबद्दल माहिती मिळविण्यासाठी, तुम्हाला विविध साधने वापरावी लागतील: ADUC कन्सोल (यासह), एक उपयुक्तता इ. साधनाची निवड सहसा हातातील कार्य आणि प्रशासकाच्या प्रोग्रामिंग क्षमतेवर आधारित असते.

PowerShell 2.0 ने Active Directory - (Windows Server 2008 R2 मध्ये सादर केलेले) सह कार्य करण्यासाठी एक विशेष मॉड्यूल सादर केले आहे, ज्याचे cmdlets तुम्हाला AD निर्देशिका ऑब्जेक्ट्ससह विविध हाताळणी करण्यास परवानगी देतात. cmdlet चा वापर Active Directory डोमेन वापरकर्ते आणि त्यांच्या गुणधर्मांबद्दल माहिती मिळवण्यासाठी केला जातो मिळवा-ADUser. AD मध्ये विद्यमान वापरकर्ता खात्याच्या कोणत्याही विशेषताचे मूल्य मिळविण्यासाठी तुम्ही Get-ADUser cmdlet वापरू शकता. याव्यतिरिक्त, तुम्ही विविध निवड निकष निर्दिष्ट करू शकता आणि डोमेन वापरकर्त्यांच्या सूची आणि त्यांच्या गुणधर्मांची निर्मिती करू शकता.

या उदाहरणात, वापरकर्त्याचा पासवर्ड शेवटचा केव्हा बदलला होता आणि तो कधी कालबाह्य होतो याबद्दल माहिती पुनर्प्राप्त करण्यासाठी PowerShell Get-ADUser cmdlet कसे वापरायचे ते आम्ही तुम्हाला दाखवू.

प्रशासक अधिकारांसह Powershll विंडो लाँच करा आणि कमांडसह सक्रिय निर्देशिका मॉड्यूल आयात करा:

आयात-मॉड्यूल सक्रिय निर्देशिका

सल्ला. Windows Server 2012 आणि उच्च मध्ये, तुम्ही हा आयटम वगळू शकता, कारण PowerShell Active Directory मॉड्यूल डीफॉल्टनुसार सक्षम केलेले असते.

क्लायंट ऑपरेटिंग सिस्टीममध्ये (उदाहरणार्थ Windows 10), Get-AdUser कमांडरने कार्य करण्यासाठी, तुम्हाला RSAT ची योग्य आवृत्ती स्थापित करणे आणि नियंत्रण पॅनेलमधील घटक सक्षम करणे आवश्यक आहे. विंडोज पॉवरशेलसाठी सक्रिय निर्देशिका मॉड्यूल(रिमोट सर्व्हर ॲडमिनिस्ट्रेशन टूल्स -> रोल ॲडमिनिस्ट्रेशन टूल्स -> AD DS आणि AD LDS टूल्स -> AD DS टूल्स).

सर्व Get-ADUser cmdlet वितर्कांची संपूर्ण यादी खालीलप्रमाणे मिळू शकते:

Get-ADUser मदत करा

सर्व डोमेन खात्यांची सूची प्रदर्शित करण्यासाठी, कमांड चालवा:

Get-ADUser -filter*

परत केलेल्या सूचीचे स्वरूप वापरण्यास फार सोयीचे नाही, वापरकर्ता खात्याच्या १२० पेक्षा जास्त गुणधर्मांपैकी फक्त काही मूलभूत १० गुणधर्म आणि गुणधर्म प्रदर्शित केले जातात (DN, SamAccountName, Name, UPN, इ.) याव्यतिरिक्त, आम्ही पाहतो की तेथे आहे. शेवटचा पासवर्ड बदलण्याच्या वेळेबद्दल कोणतीही माहिती नाही.

वापरकर्ता ट्यूझरच्या सर्व उपलब्ध गुणधर्मांबद्दल संपूर्ण माहिती प्रदर्शित करण्यासाठी, कमांड चालवा:

Get-ADUser -identity tuser -गुणधर्म *

म्हणून, आम्ही वापरकर्ता खात्याशी संबंधित AD वापरकर्ता विशेषता आणि त्यांची मूल्ये यांची संपूर्ण यादी पाहतो. पुढे, आम्ही Get-ADUser cmdlet चे आउटपुट फॉरमॅट करण्यासाठी पुढे जाऊ जेणेकरून आम्हाला आवश्यक फील्ड प्रदर्शित होतील. आम्हाला गुणधर्मांमध्ये स्वारस्य आहे:

  • पासवर्ड कालबाह्य झाला
  • पासवर्ड लास्टसेट
  • पासवर्ड कधीही कालबाह्य होत नाही

चला कमांड चालवू:

Get-ADUser ट्यूसर -गुणधर्म पासवर्ड कालबाह्य, पासवर्डलास्टसेट, पासवर्डनेव्हर एक्सपायर

आता वापरकर्त्याच्या डेटामध्ये पासवर्ड बदलण्याची तारीख आणि तो कधी संपेल याची माहिती असते. चला माहिती अधिक सोयीस्कर सारणी स्वरूपात सादर करूया:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft नाव, पासवर्ड कालबाह्य झाला, पासवर्ड लास्टसेट, पासवर्ड कधीही कालबाह्य होत नाही

विशिष्ट OU वरून वापरकर्ता डेटा प्रदर्शित करण्यासाठी, पॅरामीटर वापरा सर्चबेस:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -filter * -गुणधर्म पासवर्ड कालबाह्य, पासवर्डलास्टसेट, पासवर्डनेव्हर एक्सपायर | ft नाव, पासवर्ड कालबाह्य झाला, पासवर्ड लास्टसेट, पासवर्ड कधीही कालबाह्य होत नाही

आदेशाचा परिणाम मजकूर फाइलवर निर्यात केला जाऊ शकतो:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft नाव, पासवर्ड एक्सपायर्ड, पासवर्ड लास्टसेट, पासवर्ड नेव्हर एक्स्पायर्स > C:\temp\users.txt

किंवा CSV मध्ये, जे भविष्यात Excel वर सहज निर्यात केले जाईल (अतिरिक्त वापरून सॉर्ट-ऑब्जेक्ट PasswordLastSet स्तंभानुसार टेबलची क्रमवारी लावू आणि एक अट देखील जोडू कुठे- वापरकर्तानावामध्ये "दिमित्री" स्ट्रिंग असणे आवश्यक आहे):

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | जेथे ($_.नाव – “*दिमित्री*”) | sort-object PasswordLastSet | सिलेक्ट-ऑब्जेक्टचे नाव, पासवर्ड एक्सपायर्ड, पासवर्डलास्टसेट, पासवर्डनेव्हर एक्सपायर | Export-csv -path c:\temp\user-password-expires-2015.csv

अशा प्रकारे, आपण कोणत्याही आवश्यक सक्रिय निर्देशिका वापरकर्ता गुणधर्मांसह एक टेबल तयार करू शकता.

विशिष्ट वैशिष्ट्यावर आधारित AD वापरकर्ता खात्यांची सूची प्राप्त करण्यासाठी, –फिल्टर पॅरामीटर वापरा. या पॅरामीटरसाठी युक्तिवाद म्हणून, तुम्ही विशिष्ट सक्रिय निर्देशिका वापरकर्ता विशेषतांचे मूल्य निर्दिष्ट करू शकता, ज्यामुळे फिल्टर निकषांशी जुळणाऱ्या वापरकर्त्यांना Get-ADUser cmdlet लागू केले जाईल.

AD वापरकर्त्यांचे आउटपुट ज्यांचे नाव रोमनने सुरू होते:

Get-ADUser -filter (नाव - "रोमन*" सारखे)

Get-ADUser -फिल्टर (SamAccountName -like "*") | मापन-वस्तू

AD मधील सर्व सक्रिय (ब्लॉक केलेले नाही) खात्यांची यादी:

Get-ADUser -Filter (सक्षम -eq "True") | निवडा-ऑब्जेक्ट SamAccountName,नाव,आडनाव,Givenname | स्वरूप-सारणी

कालबाह्य पासवर्ड असलेल्या खात्यांची यादी:

Get-ADUser -filter (सक्षम -eq $True) -गुणधर्म पासवर्ड कालबाह्य | जिथे($_.पासवर्ड कालबाह्य)

ईमेल पत्त्यांसह सक्रिय खात्यांची सूची:

Get-ADUser -Filter ((mail -ne "null") -आणि (Enabled -eq "true")) -गुणधर्म आडनाव,GivenName,mail | निवडा-वस्तूचे नाव, आडनाव, दिलेले नाव, मेल | स्वरूप-सारणी

कार्य: मजकूर फाईलमध्ये संग्रहित केलेल्या खात्यांच्या सूचीसाठी (प्रत्येक ओळीत एक खाते), तुम्हाला वापरकर्त्याचा फोन नंबर AD मध्ये मिळवावा लागेल आणि माहिती csv फाईलमध्ये अपलोड करावी लागेल (Exel मध्ये सहज आयात केली जाऊ शकते).

आयात-Csv c:\ps\usernsme_list.csv | प्रत्येकासाठी ( Get-ADUser -identity $_.user -गुणधर्म नाव, टेलिफोन नंबर | नाव निवडा, टेलिफोन नंबर | निर्यात-CSV c:\ps\export_ad_list.csv -जोडा -एनकोडिंग UTF8 )

खालील उदाहरण तुम्हाला csv फाइल म्हणून एंटरप्राइझ ॲड्रेस बुक डाउनलोड करण्याची परवानगी देते, जी नंतर Outlook किंवा Mozilla Thunderbird मध्ये इंपोर्ट केली जाऊ शकते:

Get-ADUser -Filter ((mail -ne "null") -आणि (सक्षम -eq "true")) -गुणधर्म आडनाव,GivenName,mail | निवडा-वस्तूचे नाव, आडनाव, दिलेले नाव, मेल | निर्यात-Csv -NoTypeInformation -एनकोडिंग utf8 -delimiter "," $env:temp\mail_list.csv

ज्या वापरकर्त्यांनी गेल्या ९० दिवसांत त्यांचा पासवर्ड बदलला नाही:

$90_Days = (Get-date).adddays(-90) Get-ADUser -filter (पासवर्डलास्टसेट -le $90_days))

$user = Get-ADUser winadmin -गुणधर्म थंबनेलफोटो $user.thumbnailPhoto | सेट-सामग्री winadmin.jpg -एनकोडिंग बाइट

वापरकर्ता खाते संबंधित गटांची सूची

Get-AdUser winadmin -Properties memberof | सदस्याचा -विस्तार मालमत्ता सदस्य निवडा



आम्ही वाचण्याची शिफारस करतो

वर