ការប្រើប្រាស់ Get-ADUser ដើម្បីទទួលបានព័ត៌មានផ្សេងៗអំពីអ្នកប្រើប្រាស់ដែន AD ។ របៀបដើម្បីទទួលបានបញ្ជីក្រុម AD ដែលបានជ្រើសរើសដែលបញ្ជីអ្នកប្រើប្រាស់ច្រើនជាសមាជិក

ប្រើដើម្បីបង្កើត កែប្រែ និងលុបវត្ថុថត។ អ្នកប្រើប្រាស់ក៏អាចប្រើពាក្យបញ្ជាផងដែរ។ ldifdeដើម្បីពង្រីកគ្រោងការណ៍ នាំចេញអ្នកប្រើប្រាស់ Active Directory និងព័ត៌មានជាក្រុមទៅកាន់កម្មវិធី ឬសេវាកម្មផ្សេងទៀត ហើយបញ្ចូលសេវាកម្ម ADAM (Active Directory Application Mode) ជាមួយនឹងទិន្នន័យពីសេវាកម្មថតផ្សេងទៀត។

វាក្យសម្ពន្ធ

ldifde [- ខ្ញុំ] [-f ឈ្មោះ​ឯកសារ] [-s server_name] [- គ បន្ទាត់1 បន្ទាត់2] [-v] [-j ផ្លូវ] [-t port_number] [- ឃ DN_base] [-r តម្រង_LDAP] [- ទំ តំបន់] [-l LDAP_attribute_list] [-o LDAP_attribute_list] [-g] [- ម] [-n] [-k] [-ក ] [- ខ ] [-? ]

ជម្រើស

- ខ្ញុំ បញ្ជាក់របៀបនាំចូល។ ប្រសិនបើប៉ារ៉ាម៉ែត្រមិនត្រូវបានកំណត់ របៀបនាំចេញត្រូវបានប្រើតាមលំនាំដើម។ -fឈ្មោះ​ឯកសារ បញ្ជាក់ឈ្មោះឯកសារនាំចូល ឬនាំចេញ។ -sserver_name បញ្ជាក់កុំព្យូទ័រដែលប្រតិបត្តិការនាំចូល ឬនាំចេញគួរតែត្រូវបានអនុវត្ត។ កម្មវិធីលំនាំដើម ldifdeនឹងត្រូវបានប្រតិបត្តិនៅលើកុំព្យូទ័រ ldifdeបានដំឡើង។ - គបន្ទាត់1 បន្ទាត់2 ជំនួសការកើតឡើងទាំងអស់។ បន្ទាត់ 1មាតិកា បន្ទាត់ 2. ជាធម្មតាត្រូវបានប្រើប្រាស់នៅពេលដែលអ្នកកំពុងនាំចូលទិន្នន័យពីដែនមួយទៅដែនមួយទៀត ហើយត្រូវការជំនួសឈ្មោះដែនដែលកំពុងធ្វើការនាំចេញ ( ជួរទី 1) នាំចូលឈ្មោះដែន ( ជួរទី 2). -v បើកដំណើរការរបៀបកត់ត្រាលម្អិត។ -jផ្លូវ បញ្ជាក់ទីតាំងនៃឯកសារកំណត់ហេតុ។ លំនាំដើមគឺជាផ្លូវបច្ចុប្បន្ន។ -tport_number បញ្ជាក់​លេខ​ច្រក Lightweight Directory Access Protocol (LDAP)។ ច្រក LDAP លំនាំដើមគឺ 389 ។ ច្រកកាតាឡុកសកលគឺ 3268 ។ - ឃDN_base បញ្ជាក់ឈ្មោះសម្គាល់មូលដ្ឋានស្វែងរកសម្រាប់ការនាំចេញទិន្នន័យ។ -rតម្រង LDAP បង្កើតតម្រងស្វែងរក LDAP សម្រាប់ការនាំចេញទិន្នន័យ។ ឧទាហរណ៍ តម្រងខាងក្រោមនាំចេញអ្នកប្រើប្រាស់ទាំងអស់ដែលមានឈ្មោះកណ្តាលជាក់លាក់៖ csvde -r (និង(objectClass=អ្នក​ប្រើ)(sn=នាមត្រកូល)) - ទំតំបន់ បញ្ជាក់តំបន់ស្វែងរក។ ប៉ារ៉ាម៉ែត្រវិសាលភាពស្វែងរកគឺ មូលដ្ឋាន, OneLevelនិង មែកធាងរង. -lLDAP_attribute_list បញ្ជាក់បញ្ជីគុណលក្ខណៈដែលបានត្រឡប់មកវិញនៅក្នុងលទ្ធផលនៃសំណើនាំចេញ។ ប្រសិនបើប៉ារ៉ាម៉ែត្រនេះត្រូវបានលុបចោល គុណលក្ខណៈទាំងអស់ត្រូវបានបញ្ជូនមកវិញ។ -oLDAP_attribute_list បញ្ជាក់បញ្ជីគុណលក្ខណៈដែលត្រូវលុបចេញពីលទ្ធផលសំណើនាំចេញ។ ជម្រើសនេះត្រូវបានប្រើជាធម្មតានៅពេលនាំចេញវត្ថុពី Active Directory ហើយបន្ទាប់មកនាំចូលពួកវាទៅក្នុងថតដែលត្រូវគ្នានឹង LDAP ផ្សេងទៀត។ ប្រសិនបើគុណលក្ខណៈណាមួយមិនត្រូវបានគាំទ្រដោយកាតាឡុកផ្សេងទៀតនោះ ពួកវាអាចត្រូវបានដកចេញពីសំណុំលទ្ធផលដោយប្រើជម្រើសនេះ។ -g លុបបំបាត់ការស្វែងរកទំព័រ។ - ម លុបគុណលក្ខណៈដែលមិនអាចសរសេរបាន ដូចជា ObjectGUIDនិង objectSID. -n លុបចោលការនាំចេញតម្លៃគោលពីរ។ -k មិនអើពើនឹងកំហុសក្នុងអំឡុងពេលប្រតិបត្តិការនាំចូល និងបន្តដំណើរការ។ ខាងក្រោមនេះគឺជាបញ្ជីពេញលេញនៃកំហុសដែលមិនអើពើ៖

  • វត្ថុគឺជាសមាជិកនៃក្រុមរួចហើយ។
  • ការរំលោភលើថ្នាក់វត្ថុ (មានន័យថាមិនមានថ្នាក់វត្ថុដែលបានបញ្ជាក់ទេ) ប្រសិនបើវត្ថុដែលបាននាំចូលមិនមានគុណលក្ខណៈផ្សេងទៀត;
  • វត្ថុមានរួចហើយ;
  • ការរំលោភលើការរឹតបន្តឹង;
  • គុណលក្ខណៈ ឬតម្លៃមានរួចហើយ;
  • មិនមានវត្ថុបែបនេះទេ។
-កdistinguished_name_password បញ្ជាក់ការប្រតិបត្តិនៃពាក្យបញ្ជាដោយប្រើការបញ្ជាក់ distinguished_name_user_nameនិង ពាក្យសម្ងាត់ - ខ. - ខឈ្មោះអ្នកប្រើ ពាក្យសម្ងាត់ដែន បញ្ជាក់ពាក្យបញ្ជាដែលត្រូវប្រតិបត្តិដោយប្រើអ្វីដែលបានបញ្ជាក់ ឈ្មោះអ្នកប្រើ ដែន និងពាក្យសម្ងាត់. តាមលំនាំដើម ពាក្យបញ្ជានឹងត្រូវបានប្រតិបត្តិដោយប្រើព័ត៌មានអត្តសញ្ញាណរបស់អ្នកប្រើប្រាស់ដែលបច្ចុប្បន្នកំពុងចូលទៅក្នុងបណ្តាញ។ មិនអាចប្រើជាមួយប៉ារ៉ាម៉ែត្របានទេ។ -ក. -? បង្ហាញម៉ឺនុយពាក្យបញ្ជា។

កំណត់ចំណាំ

  • ជាមួយប៉ារ៉ាម៉ែត្រ - គអ្នកអាចប្រើថេរ #schemaNamingContextនិង #configurationNamingContextជំនួសឱ្យឈ្មោះដាច់ដោយឡែកនៃភាគថាសថតគ្រោងការណ៍ និងភាគថាសថតកំណត់រចនាសម្ព័ន្ធ។
  • នៅពេលបង្កើតឯកសារនាំចូលសម្រាប់ពាក្យបញ្ជា ldifde, ប្រើតម្លៃ ផ្លាស់ប្តូរប្រភេទដើម្បីកំណត់ប្រភេទនៃការផ្លាស់ប្តូរដែលមាននៅក្នុងឯកសារនាំចូល។ តម្លៃ ផ្លាស់ប្តូរប្រភេទត្រូវបានផ្តល់ឱ្យក្នុងតារាងខាងក្រោម។

ខាងក្រោមនេះជាឧទាហរណ៍នៃឯកសារនាំចូល LDAP ក្នុងទម្រង់ LDIF ដែលប្រើតម្លៃ បន្ថែម:
DN៖ CN =selected_user, DC =ឈ្មោះដែន
ការផ្លាស់ប្តូរប្រភេទ៖ បន្ថែម
CN៖ selected_user
ការពិពណ៌នា៖file_description
ថ្នាក់វត្ថុ៖ អ្នក​ប្រើ
ថ្នាក់វត្ថុ៖ selected_user

ឧទាហរណ៍

ដើម្បីទាញយកតែឈ្មោះដាច់ដោយឡែក ឈ្មោះទូទៅ នាមត្រកូល នាមត្រកូល និងលេខទូរស័ព្ទនៃវត្ថុដែលបានត្រឡប់មកវិញ សូមបញ្ចូល៖
-l distinguished_name, CN, ឈ្មោះ, S.N. ទូរស័ព្ទ
ដើម្បី​មិន​រាប់​បញ្ចូល​ឧបករណ៍​សម្គាល់​ពិសេស​ជាសកល (GUID) សម្រាប់​វត្ថុ​មួយ សូម​បញ្ចូល៖
-o when_created, when_changed, object_GUID

ស្គ្រីបសម្រាប់ផ្ទុកអ្នកប្រើប្រាស់ទាំងអស់ចេញពី MS Active Directory (ITGC)

លោក Ivan Piskunov

មួយនៃនីតិវិធីសវនកម្មស្តង់ដារ ITGC សម្រាប់កាតាឡុក ថតសកម្ម គឺដើម្បីទទួលបានការទាញយកអ្នកប្រើប្រាស់ដែនទាំងអស់។ ដោយផ្អែកលើទិន្នន័យដែលទទួលបាន នីតិវិធីធ្វើតេស្តត្រូវបានបង្កើតឡើង ឧទាហរណ៍ សិក្សាបញ្ជីអ្នកគ្រប់គ្រង ឬកំណត់អត្តសញ្ញាណអ្នកប្រើប្រាស់ជាមួយនឹងពាក្យសម្ងាត់ដែលផុតកំណត់។ មធ្យោបាយដ៏មានប្រសិទ្ធភាពបំផុតក្នុងការបង្កើតការបង្ហោះបែបនេះគឺត្រូវប្រើចំណុចប្រទាក់ស្តង់ដារ PowerShell ឧទាហរណ៍ដែលយើងនឹងពិចារណានៅក្នុងអត្ថបទនេះ។

1. ការបង្ហោះរហ័សដោយប្រើស្គ្រីប PowerShell

ខាងក្រោមនេះជាស្គ្រីប PowerShell ជាវិធីសាមញ្ញ និងលឿនបំផុតមួយក្នុងការទទួលបានបញ្ជីអ្នកប្រើប្រាស់ដែន AD ទាំងអស់ក្នុងទម្រង់ CSV ដែលអាចបើកដោយគ្មានបញ្ហានៅក្នុង Excel ។

$objSearcher = New-Object System.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 | ForEach-Object ( $user = $_.Properties New-Object PsObject -Property @( ទីតាំង = $user.description Department = $user.department Login = $user.userprincipalname Phone = $user.telephonenumber Room = $user.physicaldeliveryofficename Full ឈ្មោះ = $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. Advanced PowerShell cmdlet សម្រាប់ការទទួលបាន Active Directory ផ្ទុកឡើងអ្នកប្រើប្រាស់

ម៉ូឌុលថតសកម្មសម្រាប់ឧបករណ៍ Windows PowerShell (ណែនាំនៅក្នុង Windows Server 2008 R2 និងខ្ពស់ជាងនេះ) អនុញ្ញាតឱ្យអ្នកបង្កើត cmdlets ដែលអនុវត្តឧបាយកលផ្សេងៗជាមួយវត្ថុថត AD ។ cmdlet ត្រូវបានប្រើដើម្បីទទួលបានព័ត៌មានអំពីអ្នកប្រើប្រាស់ និងលក្ខណៈសម្បត្តិរបស់ពួកគេ។ Get-ADUser ។

ចាប់ផ្ដើម បើកដំណើរការបង្អួច Powershell ជាមួយនឹងសិទ្ធិអ្នកគ្រប់គ្រង និងនាំចូលម៉ូឌុល Active Directory សម្រាប់សកម្មភាពបន្ថែម៖
នាំចូល-ថតសកម្មម៉ូឌុល

ទៅ រាយបញ្ជីគណនីដែនទាំងអស់។ តោះដំណើរការពាក្យបញ្ជា៖

Get-ADUser -filter *

ទៅ បង្ហាញព័ត៌មានពេញលេញអំពីគុណលក្ខណៈដែលមានទាំងអស់។ អ្នកប្រើ tuser, ដំណើរការពាក្យបញ្ជា

Get-ADUser -identity tuser -properties *


ឧទាហរណ៍ យើងចាប់អារម្មណ៍លើព័ត៌មានអំពី កាលបរិច្ឆេទនៃការផ្លាស់ប្តូរពាក្យសម្ងាត់ និងពេលវេលាដែលវាផុតកំណត់ . លទ្ធផលនៃពាក្យបញ្ជាអាចត្រូវបាននាំចេញទៅជាឯកសារអត្ថបទ៖

Get-ADUser -filter * -properties ពាក្យ​សម្ងាត់​ផុតកំណត់, ពាក្យ​សម្ងាត់​ចុងក្រោយ​កំណត់, ពាក្យ​សម្ងាត់​មិន​ដែល​ផុតកំណត់ | ឈ្មោះ ft, ពាក្យសម្ងាត់ផុតកំណត់, សំណុំលេខសម្ងាត់ចុងក្រោយ, ពាក្យសម្ងាត់មិនផុតកំណត់ > C: tempusers.txt

ឬភ្លាមៗ បង្ហោះទៅ CSV ដែលនៅពេលអនាគតនឹងងាយស្រួលក្នុងការនាំចេញទៅ Excel (លើសពីនេះទៀត ដោយប្រើ sort-object យើងនឹងតម្រៀបតារាងតាមជួរឈរ PasswordLastSet ហើយក៏បន្ថែមលក្ខខណ្ឌមួយផងដែរ - ឈ្មោះអ្នកប្រើប្រាស់ត្រូវតែមានខ្សែអក្សរ "Dmitry")

Get-ADUser -filter * -properties ពាក្យ​សម្ងាត់​ផុតកំណត់, ពាក្យ​សម្ងាត់​ចុងក្រោយ​កំណត់, ពាក្យ​សម្ងាត់​មិន​ដែល​ផុតកំណត់ | កន្លែងណា ($_.name –like “*Dmitry*”) | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | នាំចេញ-csv -path c:tempuser-password-expires-2015.csv

ឧទ្ទិសដល់ការប្រើប្រាស់ PowerShell ដើម្បីគ្រប់គ្រង AD ។ ជាចំណុចចាប់ផ្តើម អ្នកនិពន្ធបានសម្រេចចិត្តយកកិច្ចការរដ្ឋបាល AD ទូទៅចំនួន 10 ហើយមើលពីរបៀបដែលពួកគេអាចធ្វើឱ្យសាមញ្ញដោយប្រើ PowerShell៖

  1. កំណត់ពាក្យសម្ងាត់អ្នកប្រើប្រាស់ឡើងវិញ
  2. បើកដំណើរការ និងបិទគណនី
  3. ដោះសោគណនីអ្នកប្រើប្រាស់
  4. លុបគណនីរបស់អ្នក។
  5. ស្វែងរកក្រុមទទេ
  6. បន្ថែមអ្នកប្រើប្រាស់ទៅក្នុងក្រុម
  7. រាយបញ្ជីសមាជិកក្រុម
  8. ស្វែងរកគណនីកុំព្យូទ័រហួសសម័យ
  9. បិទដំណើរការគណនីកុំព្យូទ័រ
  10. ស្វែងរកកុំព្យូទ័រតាមប្រភេទ

លើសពីនេះ អ្នកនិពន្ធរក្សាប្លុកមួយ (ជាការពិតណាស់ដោយប្រើ PowerShell) យើងសូមណែនាំឱ្យមើល - jdhitsolutions.com/blog ។ ហើយអ្នកអាចទទួលបានព័ត៌មានទាន់សម័យបំផុតពី Twitter របស់គាត់។ twitter.com/jeffhicks.
ដូច្នេះ ខាងក្រោម​នេះ​គឺ​ជា​ការ​បក​ប្រែ​នៃ​អត្ថបទ "Top 10 Active Directory Tasks Solved with PowerShell"។

ការគ្រប់គ្រង Active Directory (AD) ដោយប្រើ Windows PowerShell គឺងាយស្រួលជាងអ្នកគិត ហើយខ្ញុំចង់បង្ហាញវាដល់អ្នក។ អ្នកគ្រាន់តែអាចយកស្គ្រីបខាងក្រោម ហើយប្រើវាដើម្បីដោះស្រាយកិច្ចការគ្រប់គ្រង AD មួយចំនួន។

តម្រូវការ

ដើម្បីប្រើ PowerShell ដើម្បីគ្រប់គ្រង AD អ្នកត្រូវបំពេញតាមតម្រូវការមួយចំនួន។ ខ្ញុំនឹងបង្ហាញពីរបៀបដែល AD cmdlets ដំណើរការដោយប្រើកុំព្យូទ័រ Windows 7 ជាឧទាហរណ៍។
ដើម្បីប្រើ cmdlets អ្នកត្រូវតែមាន Windows Server 2008 R2 domain controller ឬអ្នកអាចទាញយក និងដំឡើង Active Directory Management Gateway Service នៅលើ DCs ចាស់។ សូមអានឯកសារដោយប្រុងប្រយ័ត្នមុនពេលដំឡើង។ តម្រូវឱ្យដំណើរការស៊ីឌីឡើងវិញ។
នៅផ្នែកអតិថិជន សូមទាញយក និងដំឡើង (RSAT) សម្រាប់ Windows 7 ឬ Windows 8 ។ នៅលើ Windows 7 អ្នកនឹងត្រូវបើក ផ្ទាំងបញ្ជាជំពូក កម្មវិធីហើយជ្រើសរើស បើកឬបិទមុខងារវីនដូ. ស្វែងរក ឧបករណ៍គ្រប់គ្រងម៉ាស៊ីនមេពីចម្ងាយនិងពង្រីកផ្នែក ឧបករណ៍គ្រប់គ្រងតួនាទី. ជ្រើសរើសធាតុដែលសមរម្យសម្រាប់ AD DS និង AD LDS Tools ជាពិសេសចំណាំថាធាតុត្រូវតែត្រូវបានជ្រើសរើស ម៉ូឌុលថតសកម្មសម្រាប់ Windows PowerShellដូចដែលបានបង្ហាញក្នុងរូបភាពទី 1. (នៅក្នុង Windows 8 ឧបករណ៍ទាំងអស់ត្រូវបានជ្រើសរើសតាមលំនាំដើម)។ ឥឡូវនេះយើងត្រៀមខ្លួនរួចរាល់ហើយដើម្បីធ្វើការ។

Fig.1 ការបើក AD DS និង AD LDS Tools

ខ្ញុំបានចូលដោយប្រើគណនីមួយដែលមានសិទ្ធិអ្នកគ្រប់គ្រងដែន។ cmdlets ភាគច្រើនដែលខ្ញុំនឹងបង្ហាញនឹងអនុញ្ញាតឱ្យអ្នកបញ្ជាក់អត្តសញ្ញាណជំនួស។ ក្នុងករណីណាក៏ដោយ ខ្ញុំសូមណែនាំឱ្យអានជំនួយ ( ទទួល​ជំនួយ) និងឧទាហរណ៍ដែលខ្ញុំនឹងបង្ហាញខាងក្រោម។
ចាប់ផ្តើមវគ្គ PowerShell ហើយនាំចូលម៉ូឌុល៖

PS C:\> Import-Module ActiveDirectory

ការនាំចូលបង្កើត PSDrive ថ្មី ប៉ុន្តែយើងនឹងមិនប្រើវាទេ។ ទោះយ៉ាងណាក៏ដោយ អ្នកអាចឃើញពាក្យបញ្ជាណាដែលមាននៅក្នុងម៉ូឌុលដែលបាននាំចូល។

PS C:\> get-command -module ActiveDirectory

ភាពស្រស់ស្អាតនៃពាក្យបញ្ជាទាំងនេះគឺថាប្រសិនបើខ្ញុំអាចប្រើពាក្យបញ្ជានៅលើវត្ថុ AD មួយនោះវាអាចត្រូវបានប្រើនៅលើ 10, 100, និងសូម្បីតែ 1000 ។ តោះមើលថាតើ cmdlets ទាំងនេះដំណើរការយ៉ាងដូចម្តេច។

កិច្ចការទី 1: កំណត់ពាក្យសម្ងាត់អ្នកប្រើប្រាស់ឡើងវិញ

ចូរចាប់ផ្តើមជាមួយនឹងកិច្ចការធម្មតា៖ កំណត់ពាក្យសម្ងាត់របស់អ្នកប្រើឡើងវិញ។ អ្នកអាចធ្វើវាបានយ៉ាងងាយស្រួល និងសាមញ្ញដោយប្រើ cmdlet Set-ADAccountPassword. ផ្នែកដ៏លំបាកគឺថាពាក្យសម្ងាត់ថ្មីត្រូវតែមានលក្ខណៈគ្រប់គ្រាន់ជាខ្សែអក្សរដែលបានការពារ៖ បំណែកនៃអត្ថបទដែលត្រូវបានអ៊ិនគ្រីប និងរក្សាទុកក្នុងអង្គចងចាំសម្រាប់រយៈពេលនៃវគ្គ PowerShell ។ ដំបូង​យើង​បង្កើត​អថេរ​ជាមួយ​ពាក្យ​សម្ងាត់​ថ្មី៖
PS C:\> $new=Read-Host "បញ្ចូលពាក្យសម្ងាត់ថ្មី" -AsSecureString

បន្ទាប់មកបញ្ចូលពាក្យសម្ងាត់ថ្មី៖

ឥឡូវនេះយើងអាចទាញយកគណនី (ដោយប្រើ ឈ្មោះគណនី- ជម្រើសល្អបំផុត) ហើយកំណត់ពាក្យសម្ងាត់ថ្មី។ នេះជាឧទាហរណ៍សម្រាប់អ្នកប្រើប្រាស់ Jack Frost៖

PS C:\> Set-ADAccountPassword jfrost -NewPassword $new

ជាអកុសល មានកំហុសជាមួយ cmdlet នេះ៖ - ឆ្លងកាត់, -ចុះបើ, និង - បញ្ជាក់មិន​ដំណើរការ។ ប្រសិនបើអ្នកចូលចិត្តផ្លូវកាត់ សូមសាកល្បងវិធីនេះ៖

PS C:\> Set-ADAccountPassword jfrost -NewPassword (ConvertTo-SecureString -AsPlainText -String "P@ssw0rd1z3" -force)

ជា​លទ្ធផល ខ្ញុំ​ត្រូវ​ការ Jack ដើម្បី​ប្តូរ​លេខ​សម្ងាត់​របស់​គាត់​នៅ​ពេល​ដែល​គាត់​ចូល​បន្ទាប់ ដូច្នេះ​ខ្ញុំ​កែប្រែ​គណនី​ដោយ​ប្រើ Set-ADUser.

PS C:\> Set-ADUser jfrost -ChangePasswordAtLogon $True

លទ្ធផលនៃការដំណើរការ cmdlet មិនត្រូវបានសរសេរទៅកុងសូលទេ។ ប្រសិនបើចាំបាច់ត្រូវធ្វើសូមប្រើ - ពិត. ប៉ុន្តែ​ខ្ញុំ​អាច​ដឹង​ថា​តើ​ប្រតិបត្តិការ​នេះ​បាន​ជោគជ័យ​ឬ​អត់​ដោយ​ទាញ​យក​ឈ្មោះ​អ្នក​ប្រើ​ដោយ​ប្រើ cmdlet Get-ADUserនិងបញ្ជាក់ទ្រព្យសម្បត្តិ ពាក្យសម្ងាត់ផុតកំណត់ដូចដែលបានបង្ហាញក្នុងរូបភាពទី 2 ។


អង្ករ។ 2. លទ្ធផលនៃ Get-ADUser Cmdlet ជាមួយនឹងលក្ខណៈសម្បត្តិ Password Expired

បន្ទាត់ខាងក្រោម៖ ការកំណត់ពាក្យសម្ងាត់របស់អ្នកប្រើឡើងវិញដោយប្រើ PowerShell មិនពិបាកទាល់តែសោះ។ ខ្ញុំ​ទទួល​ស្គាល់​ថា​ការ​កំណត់​ពាក្យ​សម្ងាត់​ឡើង​វិញ​ក៏​ងាយ​ស្រួល​តាម​រយៈ​ការ​ខ្ទាស់ អ្នកប្រើប្រាស់ និងកុំព្យូទ័រសកម្មកុងសូល Microsoft Management Console (MMC) ។ប៉ុន្តែការប្រើ PowerShell គឺសមរម្យ ប្រសិនបើអ្នកត្រូវការផ្ទេរភារកិច្ច មិនចង់ដាក់ពង្រាយ snap-in ដែលបានរៀបរាប់ខាងលើ ឬកំពុងកំណត់ពាក្យសម្ងាត់ឡើងវិញជាផ្នែកនៃដំណើរការ IT ស្វ័យប្រវត្តិដ៏ធំមួយ។

កិច្ចការទី 2៖ ធ្វើឱ្យសកម្ម និងបិទគណនី

ឥឡូវនេះសូមបិទដំណើរការគណនី។ តោះបន្តធ្វើការជាមួយ Jack Frost ។ កូដនេះប្រើប៉ារ៉ាម៉ែត្រ -ចុះបើដែលអ្នកអាចរកបាននៅក្នុង comadlets ផ្សេងទៀតដែលធ្វើការផ្លាស់ប្តូរដើម្បីសាកល្បងពាក្យបញ្ជារបស់ខ្ញុំដោយមិនដំណើរការវា។

PS C:\> Disable-ADAccount jfrost -whatif តើមានអ្វីប្រសិនបើ៖ ប្រតិបត្តិការ "កំណត់" លើគោលដៅ "CN=Jack Frost, OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local"។

ឥឡូវ​សូម​បិទ​វា​ឱ្យ​ពិត​ប្រាកដ៖

PS C:\> បិទគណនី ADAA jfrost

ហើយដល់ពេលបើកគណនី តើ cmdlet មួយណានឹងជួយយើង?

PS C:\> បើកដំណើរការ-ADAccount jfrost

cmdlets ទាំងនេះអាចត្រូវបានប្រើនៅក្នុងកន្សោមបំពង់ ដែលអនុញ្ញាតឱ្យអ្នកធ្វើឱ្យសកម្ម ឬបិទគណនីច្រើនតាមដែលអ្នកចូលចិត្ត។ ឧទាហរណ៍ លេខកូដនេះនឹងធ្វើឱ្យគណនីទាំងអស់អសកម្មនៅក្នុងផ្នែកលក់

PS C:\> get-aduser -filter "department -eq "sales"" | បិទ-គណនី

ជាការពិតណាស់សរសេរតម្រងសម្រាប់ Get-ADUserស្មុគស្មាញណាស់ ប៉ុន្តែនេះជាកន្លែងដែលការប្រើប្រាស់ប៉ារ៉ាម៉ែត្រ -ចុះបើរួមជាមួយ cmdlet បិទ - គណនី ADAមកជួយសង្គ្រោះ។

កិច្ចការទី 3៖ ដោះសោគណនីអ្នកប្រើប្រាស់

ពិចារណាអំពីស្ថានភាពដែល Jack បានចាក់សោគណនីរបស់គាត់ខណៈពេលដែលព្យាយាមបញ្ចូលពាក្យសម្ងាត់ថ្មី។ ជំនួសឱ្យការព្យាយាមស្វែងរកគណនីរបស់គាត់តាមរយៈ GUI នីតិវិធីដោះសោអាចត្រូវបានធ្វើដោយប្រើពាក្យបញ្ជាសាមញ្ញ។

PS C:\> Unlock-ADAAaccount jfrost

cmdlet ក៏គាំទ្រប៉ារ៉ាម៉ែត្រផងដែរ។ -ចុះបើនិង - បញ្ជាក់.

កិច្ចការទី 4: លុបគណនី

វាមិនមានបញ្ហាថាតើអ្នកប្រើប្រាស់ប៉ុន្មានអ្នកដែលអ្នកលុបចេញទេ - វាងាយស្រួលធ្វើដោយប្រើ cmdlet លុប ADUser. ខ្ញុំ​មិន​ចង់​យក Jack Frost ចេញ​ទេ ប៉ុន្តែ​ប្រសិន​បើ​ខ្ញុំ​ចង់ ខ្ញុំ​នឹង​ប្រើ​កូដ​ដូចនេះ៖

PS C:\> Remove-ADUser jfrost -whatif តើមានអ្វីប្រសិនបើ៖ ប្រតិបត្តិការ "យកចេញ" លើគោលដៅ "CN=Jack Frost,OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local"។

ឬខ្ញុំអាចបញ្ចូលអ្នកប្រើប្រាស់ច្រើននាក់ ហើយលុបពួកវាដោយប្រើពាក្យបញ្ជាសាមញ្ញមួយ៖

PS C:\> get-aduser -filter "enabled -eq "false"" -property When Changeed -SearchBase "OU=Employees, DC=Globomantics,DC=Local" | where ($_.WhenChanged -le (Get-Date).AddDays(-180)) | លុប-ADuser -whatif

ពាក្យបញ្ជានេះនឹងស្វែងរក និងលុបគណនីនិយោជិត OU ដែលត្រូវបានបិទ ដែលមិនត្រូវបានកែប្រែរយៈពេល 180 ថ្ងៃ ឬច្រើនជាងនេះ។

កិច្ចការទី 5: ស្វែងរកក្រុមទទេ

ការគ្រប់គ្រងក្រុមគឺជាកិច្ចការគ្មានទីបញ្ចប់ និងគ្មានការដឹងគុណ មានវិធីជាច្រើនដើម្បីស្វែងរកក្រុមទទេ។ កន្សោម​ខ្លះ​អាច​ដំណើរការ​បាន​ល្អ​ជាង​អ្នក​ដទៃ អាស្រ័យ​លើ​ស្ថាប័ន​របស់​អ្នក។ កូដខាងក្រោមនឹងរកឃើញក្រុមទាំងអស់នៅក្នុងដែន រួមទាំងក្រុមដែលភ្ជាប់មកជាមួយផងដែរ។

PS C:\> get-adgroup -filter * | កន្លែងណា (-មិនមែន ($_ | get-adgroupmember)) | ជ្រើសរើសឈ្មោះ

ប្រសិនបើអ្នកមានក្រុមដែលមានសមាជិករាប់រយនាក់ នោះការប្រើពាក្យបញ្ជានេះអាចចំណាយពេលយូរ។ សមាជិក ADGroupពិនិត្យក្រុមនីមួយៗ។ ប្រសិនបើអ្នកអាចកំណត់ ឬប្ដូរតាមបំណង វានឹងកាន់តែប្រសើរ។
នេះជាវិធីសាស្រ្តមួយទៀត៖

PS C:\> get-adgroup -filter "សមាជិក -notlike "*" -AND GroupScope -eq "Universal"" -SearchBase "OU=Groups,OU=Employees,DC=Globomantics, DC=local" | ជ្រើសរើសឈ្មោះ ក្រុម *

ពាក្យបញ្ជានេះស្វែងរកក្រុមសកលទាំងអស់ដែលមិនមានសមាជិកភាពនៅក្នុងក្រុម OU និងបង្ហាញលក្ខណៈសម្បត្តិមួយចំនួន។ លទ្ធផលត្រូវបានបង្ហាញក្នុងរូបភាពទី 3 ។


អង្ករ។ 3. ស្វែងរក និងត្រងក្រុមសកល

កិច្ចការទី ៦៖ បន្ថែមអ្នកប្រើប្រាស់ទៅក្នុងក្រុម

តោះបន្ថែម Jack Frost ទៅក្រុម IT Chicago៖

PS C:\> add-adgroupmember "chicago IT" -សមាជិក jfrost

បាទ វាសាមញ្ញណាស់។ អ្នកក៏អាចបន្ថែមអ្នកប្រើប្រាស់រាប់រយនាក់ទៅក្នុងក្រុមបានយ៉ាងងាយស្រួលផងដែរ ទោះបីជាខ្ញុំយល់ថាវាឆ្គងបន្តិចក៏ដោយ៖

PS C:\> Add-ADGroupMember "បុគ្គលិកឈីកាហ្គោ" -member (get-aduser -filter "city -eq "Chicago")

ខ្ញុំបានប្រើកន្សោមបំពង់តាមវង់ក្រចក ដើម្បីស្វែងរកអ្នកប្រើប្រាស់ទាំងអស់ដែលមានទ្រព្យសម្បត្តិទីក្រុងនៅក្នុងទីក្រុង Chicago ។ កូដនៅក្នុងវង់ក្រចកត្រូវបានប្រតិបត្តិ ហើយវត្ថុលទ្ធផលត្រូវបានបញ្ជូនទៅប៉ារ៉ាម៉ែត្រ -Member ។ វត្ថុអ្នកប្រើប្រាស់នីមួយៗត្រូវបានបន្ថែមទៅក្រុមនិយោជិតទីក្រុងឈីកាហ្គោ។ វាមិនមានបញ្ហាថាតើយើងកំពុងដោះស្រាយជាមួយអ្នកប្រើប្រាស់ 5 ឬ 5000 ទេ ការធ្វើបច្ចុប្បន្នភាពសមាជិកភាពក្រុមចំណាយពេលត្រឹមតែពីរបីវិនាទីប៉ុណ្ណោះ។ កន្សោមនេះក៏អាចត្រូវបានសរសេរដោយប្រើ ForEach-Objectអ្វីដែលអាចងាយស្រួលជាងនេះ៖

PS C:\> Get-ADUser -filter "city -eq "Chicago"" | foreach (បន្ថែម ADGroup សមាជិក "បុគ្គលិកឈីកាហ្គោ" - សមាជិក $_)

កិច្ចការទី ៧៖ រាយបញ្ជីសមាជិកក្រុម

អ្នកប្រហែលជាចង់ដឹងថាអ្នកណានៅក្នុងក្រុមជាក់លាក់។ ជាឧទាហរណ៍ អ្នកគួរតែស្វែងយល់ឱ្យបានទៀងទាត់ថាតើអ្នកណាជាសមាជិកនៃក្រុមគ្រប់គ្រងដែន៖

PS C:\> Get-ADGroupMember "Domain Admins"

រូបភាពទី 4 បង្ហាញលទ្ធផល។


អង្ករ។ 4. សមាជិកនៃក្រុមគ្រប់គ្រងដែន

cmdlet បង្ហាញវត្ថុ AD សម្រាប់សមាជិកក្រុមនីមួយៗ។ អ្វីដែលត្រូវធ្វើជាមួយក្រុមដែលជាប់គាំង? ក្រុមរបស់ខ្ញុំ ឈីកាហ្គោ អ្នកប្រើប្រាស់ទាំងអស់ គឺជាបណ្តុំនៃក្រុមដែលជាប់គាំង។ ដើម្បីទទួលបានបញ្ជីគណនីទាំងអស់ ខ្ញុំគ្រាន់តែត្រូវប្រើប៉ារ៉ាម៉ែត្រប៉ុណ្ណោះ។ - កើតឡើងដដែលៗ.

PS C:\> Get-ADGroupMember "Chicago All Users" -Recursive | ជ្រើសរើសឈ្មោះពិសេស

ប្រសិនបើអ្នកចង់ទៅវិធីផ្សេងទៀត - ស្វែងរកក្រុមណាដែលមានអ្នកប្រើប្រាស់ - ប្រើទ្រព្យសម្បត្តិអ្នកប្រើប្រាស់ សមាជិកនៃ:

PS C:\> get-aduser jfrost -property Memberof | ជ្រើសរើស -ExpandProperty memberOf CN=NewTest,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago Test,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago IT,OU= ក្រុម,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago Sales Users,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local

ខ្ញុំបានប្រើប៉ារ៉ាម៉ែត្រ - ពង្រីកទ្រព្យសម្បត្តិដើម្បីបង្ហាញឈ្មោះ សមាជិកនៃដូចជាបន្ទាត់។

កិច្ចការទី 8: ស្វែងរកគណនីកុំព្យូទ័រហួសសម័យ

ខ្ញុំ​ត្រូវ​បាន​គេ​សួរ​សំណួរ​នេះ​ជា​ច្រើន៖ “ធ្វើ​ដូចម្តេច​ទើប​ខ្ញុំ​រក​ឃើញ​គណនី​កុំព្យូទ័រ​ហួស​សម័យ?” ហើយខ្ញុំតែងតែឆ្លើយថា "អ្វីដែលហួសសម័យសម្រាប់អ្នក?" ក្រុមហ៊ុននានាមាននិយមន័យផ្សេងៗគ្នាអំពីពេលដែលគណនីកុំព្យូទ័រ (ឬគណនីអ្នកប្រើប្រាស់វាមិនមានបញ្ហា) ត្រូវបានចាត់ទុកថាលែងប្រើហើយមិនអាចប្រើប្រាស់បានទៀតទេ។ សម្រាប់ខ្ញុំ ខ្ញុំយកចិត្តទុកដាក់ចំពោះគណនីទាំងនោះដែលពាក្យសម្ងាត់មិនត្រូវបានផ្លាស់ប្តូរក្នុងរយៈពេលជាក់លាក់ណាមួយ។ រយៈពេលនេះសម្រាប់ខ្ញុំគឺ 90 ថ្ងៃ - ប្រសិនបើកុំព្យូទ័រមិនបានផ្លាស់ប្តូរលេខសម្ងាត់រួមជាមួយនឹងដែនក្នុងអំឡុងពេលនេះ ទំនងជាវាគ្មានអ៊ីនធឺណិត និងហួសសម័យ។ Cmdlet បានប្រើ Get-ADComputer:

PS C:\> get-adcomputer -filter "Passwordlastset -lt "1/1/2012" -properties *| ជ្រើសរើសឈ្មោះ ពាក្យសម្ងាត់ចុងក្រោយ

តម្រងដំណើរការល្អជាមួយនឹងតម្លៃរឹង ប៉ុន្តែលេខកូដនេះនឹងធ្វើបច្ចុប្បន្នភាពសម្រាប់គណនីកុំព្យូទ័រទាំងអស់ដែលមិនបានផ្លាស់ប្តូរពាក្យសម្ងាត់របស់ពួកគេចាប់តាំងពីថ្ងៃទី 1 ខែមករា ឆ្នាំ 2012។ លទ្ធផលត្រូវបានបង្ហាញក្នុងរូបភាពទី 5 ។


អង្ករ។ 5. ស្វែងរកគណនីកុំព្យូទ័រហួសសម័យ

ជម្រើសមួយទៀត៖ ឧបមាថាអ្នកយ៉ាងហោចណាស់នៅកម្រិតមុខងាររបស់ដែន Windows 2003 ត្រងតាមលក្ខណសម្បត្តិ LastLogontimeStamp. តម្លៃនេះគឺជាចំនួននៃចន្លោះពេល 100 ណាណូវិនាទី ចាប់តាំងពីថ្ងៃទី 1 ខែមករា ឆ្នាំ 1601 ហើយត្រូវបានរក្សាទុកនៅក្នុង GMT ដូច្នេះការធ្វើការជាមួយតម្លៃនេះគឺពិបាកបន្តិច៖

PS C:\> get-adcomputer -filter "LastlogonTimestamp -gt 0" -properties * | ជ្រើសរើសឈ្មោះ,lastlogontimestamp, @(Name="LastLogon";Expression=(::FromFileTime ($_.Lastlogontimestamp))),passwordlastset | តម្រៀប LastLogonTimeStamp


អង្ករ។ 6. បម្លែងតម្លៃ LastLogonTimeStamp ទៅជាទម្រង់ដែលធ្លាប់ស្គាល់

ដើម្បីបង្កើតតម្រង ខ្ញុំត្រូវបំប្លែងកាលបរិច្ឆេទ ឧទាហរណ៍ ថ្ងៃទី 1 ខែមករា ឆ្នាំ 2012 ទៅជាទម្រង់ត្រឹមត្រូវ។ ការបំប្លែងត្រូវបានអនុវត្តនៅក្នុង FileTime៖

PS C:\> $cutoff=(Get-Date "1/1/2012").ToFileTime() PS C:\> $cutoff 129698676000000000

ឥឡូវនេះខ្ញុំអាចប្រើអថេរនេះនៅក្នុងតម្រងទៅ Get-ADComputer:

PS C:\> Get-ADComputer -Filter "(lastlogontimestamp -lt $cutoff) -or (lastlogontimestamp -notlike "*")" -property * | ជ្រើសរើសឈ្មោះ LastlogonTimestamp,PasswordLastSet

កូដខាងលើរកឃើញកុំព្យូទ័រដូចគ្នាដែលបានបង្ហាញក្នុងរូបភាពទី 5 ។

កិច្ចការទី 9៖ បិទគណនីកុំព្យូទ័រ

ប្រហែលជានៅពេលដែលអ្នករកឃើញគណនីអសកម្ម ឬហួសសម័យ អ្នកនឹងចង់បិទពួកវា។ នេះពិតជាងាយស្រួលធ្វើ។ យើងនឹងប្រើ cmdlet ដូចគ្នាដែលយើងធ្លាប់ធ្វើការជាមួយគណនីអ្នកប្រើប្រាស់។ អ្នកអាចបញ្ជាក់វាដោយប្រើ ឈ្មោះគណនីគណនី។

PS C:\> Disable-ADAccount -Identity "chi-srv01$" -whatif តើមានអ្វីប្រសិនបើ៖ ដំណើរការ "Set" នៅលើគោលដៅ "CN=CHI-SRV01, CN=Computers,DC=GLOBOMANTICS,DC=local"។

ឬប្រើកន្សោមបំពង់៖

PS C:\> get-adcomputer "chi-srv01" | បិទគណនី ADA

ខ្ញុំក៏អាចប្រើលេខកូដរបស់ខ្ញុំដើម្បីស្វែងរកគណនីហួសសម័យ និងបិទដំណើរការពួកវាទាំងអស់៖

PS C:\> get-adcomputer -filter "Passwordlastset -lt "1/1/2012" -properties *| បិទគណនី ADA

កិច្ចការទី 10: ស្វែងរកកុំព្យូទ័រតាមប្រភេទ

ជារឿយៗខ្ញុំក៏ត្រូវបានសួរពីរបៀបស្វែងរកគណនីកុំព្យូទ័រតាមប្រភេទ ដូចជាម៉ាស៊ីនមេ ឬស្ថានីយការងារជាដើម។ នេះទាមទារការច្នៃប្រឌិតមួយចំនួននៅលើផ្នែករបស់អ្នក។ មិនមានអ្វីនៅក្នុង AD ដែលបែងចែកម៉ាស៊ីនមេពីម៉ាស៊ីនភ្ញៀវទេ លើកលែងតែ OS ប៉ុណ្ណោះ។ ប្រសិនបើកុំព្យូទ័ររបស់អ្នកកំពុងដំណើរការ Windows Server 2008 អ្នកនឹងត្រូវធ្វើជំហានបន្ថែមមួយចំនួន។
ដំបូងអ្នកត្រូវទទួលបានបញ្ជីប្រព័ន្ធប្រតិបត្តិការ ហើយបន្ទាប់មកយើងត្រងគណនីដោយប្រព័ន្ធប្រតិបត្តិការដែលមាន។

PS C:\> Get-ADComputer -Filter * -Properties OperatingSystem | ជ្រើសរើសប្រព័ន្ធប្រតិបត្តិការ -unique | តម្រៀបប្រព័ន្ធប្រតិបត្តិការ

លទ្ធផលត្រូវបានបង្ហាញក្នុងរូបភាពទី 7 ។


អង្ករ។ 7. ការទាញយកបញ្ជី OS

ខ្ញុំចង់ស្វែងរកកុំព្យូទ័រទាំងអស់ដែលដំណើរការនូវ server OS៖

PS C:\> Get-ADComputer -Filter "OperatingSystem -like "*Server*"" -properties OperatingSystem,OperatingSystem ServicePack | ជ្រើសរើសឈ្មោះ, Op* | បញ្ជីទម្រង់

លទ្ធផលត្រូវបានបង្ហាញក្នុងរូបភាពទី 8 ។

ដូច AD Get cmdlets ផ្សេងទៀត អ្នកអាចប្ដូរប៉ារ៉ាម៉ែត្រស្វែងរកតាមបំណង និងកំណត់សំណើទៅ OUs ជាក់លាក់ប្រសិនបើចាំបាច់។ កន្សោមទាំងអស់ដែលខ្ញុំបានបង្ហាញអាចត្រូវបានដាក់បញ្ចូលទៅក្នុងកន្សោម PowerShell ធំជាង។ ឧទាហរណ៍ អ្នកអាចតម្រៀប ក្រុម អនុវត្តតម្រង នាំចេញទៅ CSV ឬបង្កើត និងផ្ញើអ៊ីមែលរបាយការណ៍ HTML - ទាំងអស់ពី PowerShell! ក្នុងករណីនេះ អ្នកមិនចាំបាច់សរសេរស្គ្រីបតែមួយទេ។
នេះជាប្រាក់រង្វាន់៖ របាយការណ៍អាយុពាក្យសម្ងាត់របស់អ្នកប្រើ រក្សាទុកក្នុងឯកសារ HTML៖

PS C:\> Get-ADUser -Filter "Enabled -eq "True" -AND PasswordNeverExpires -eq "False"" -Properties PasswordLastSet,PasswordNeverExpires,PasswordExpired | ជ្រើសរើស DistinguishedName,Name,pass*,@(Name="PasswordAge"; Expression=((Get-Date)-$_.PasswordLastSet)) |sort PasswordAge -Descending | ConvertTo-Html -Title "Password Age Report" | Out-File c:\Work\pwage.htm !}

ទោះបីជាកន្សោមនេះអាចមើលទៅគួរឱ្យខ្លាចបន្តិចក៏ដោយ វាងាយស្រួលប្រើជាមួយនឹងចំណេះដឹងតិចតួចបំផុតនៃ PowerShell ។ ហើយមានតែដំបូន្មានចុងក្រោយមួយគត់គឺ៖ របៀបកំណត់ទ្រព្យសម្បត្តិផ្ទាល់ខ្លួនហៅថា អាយុពាក្យសម្ងាត់. តម្លៃតំណាងឱ្យគម្លាតរវាងថ្ងៃនេះ និងលក្ខណសម្បត្តិ PasswordLastSet ។ បន្ទាប់មកខ្ញុំតម្រៀបលទ្ធផលសម្រាប់ទ្រព្យសម្បត្តិថ្មីរបស់ខ្ញុំ។ រូបភាពទី 9 បង្ហាញលទ្ធផលសម្រាប់ដែនសាកល្បងតូចរបស់ខ្ញុំ។

ឡើង៖
ប្រកាសមានអត្ថបទបកប្រែនៅលើវិបផតថល។

នៅក្នុងមតិយោបល់ទៅអត្ថបទមុន យើងបានចងចាំអំពីគណនេយ្យក្នុង Excel ជំនួសឱ្យ 1C ។ អញ្ចឹងតោះពិនិត្យមើលថាតើអ្នកដឹង Excel ប៉ុន្មាន។ ថ្ងៃនេះខ្ញុំនឹងបង្ហាញអ្នកពីរបៀបដើម្បីទទួលបានទិន្នន័យពី Active Directory ហើយធ្វើការជាមួយវាដោយគ្មានម៉ាក្រូ និង PowerShell - តែជាមួយយន្តការស្តង់ដាររបស់ Office ប៉ុណ្ណោះ។ ឧទាហរណ៍ អ្នកអាចទទួលបានការវិភាគយ៉ាងងាយស្រួលលើការប្រើប្រាស់ប្រព័ន្ធប្រតិបត្តិការនៅក្នុងស្ថាប័នរបស់អ្នក ប្រសិនបើអ្នកមិនទាន់មានអ្វីមួយដូចជា Microsoft SCOM ទេ។ ជាការប្រសើរណាស់ ឬគ្រាន់តែកំដៅឡើង ហើយដកចិត្តរបស់អ្នកចេញពីស្គ្រីប។


ជា​ការ​ពិត​ណាស់ អ្នក​អាច​ទទួល​បាន​ទិន្នន័យ​ដូច​ក្នុង​ឧទាហរណ៍​ខាង​ក្រោម​ដោយ​មាន​បន្ទាត់​មួយ​ក្នុង PowerShell។ ប៉ុន្តែដំបូងឡើយ PowerShell គឺគួរឱ្យធុញពេក ហើយទីពីរ Excel អាចធ្វើបច្ចុប្បន្នភាពទិន្នន័យដោយថាមវន្ត - ឯកសារលទ្ធផលអាចត្រូវបានបោះពុម្ពលើអ៊ីនធឺណិត ហើយភ្លេចអំពីការធ្វើបច្ចុប្បន្នភាពពួកគេ។

ដើម្បីធ្វើការជាមួយទិន្នន័យ ខ្ញុំនឹងប្រើយន្តការ Power Query ។ សម្រាប់ Office 2010 និង 2013 អ្នកនឹងត្រូវដំឡើងកម្មវិធីជំនួយ Microsoft Office 2016 មានម៉ូឌុលនេះស្រាប់។ ជាអកុសល ការបោះពុម្ពស្តង់ដារមិនគ្រប់គ្រាន់សម្រាប់យើងទេ យើងនឹងត្រូវការអ្នកជំនាញ។


យន្តការខ្លួនវាត្រូវបានរចនាឡើងដើម្បីទទួល និងដំណើរការទិន្នន័យពីប្រភពផ្សេងៗគ្នា - ពី ODBC និងឯកសារអត្ថបទចាស់ រហូតដល់ Exchange, Oracle និង Facebook ។ ព័ត៌មានលម្អិតបន្ថែមអំពីយន្តការ និងភាសាស្គ្រីបដែលភ្ជាប់មកជាមួយ “M” ត្រូវបានសរសេររួចហើយនៅលើ Habre ប៉ុន្តែខ្ញុំនឹងមើលឧទាហរណ៍មួយចំនួននៃការប្រើប្រាស់ Power Query ដើម្បីទទួលបានទិន្នន័យពី Active Directory។

កក់ក្តៅ៖ តោះមើលពេលដែលអ្នកប្រើប្រាស់របស់យើងបានចូល

សំណើទៅកាន់មូលដ្ឋានទិន្នន័យដែនខ្លួនវាត្រូវបានបង្កើតនៅលើផ្ទាំង "ទិន្នន័យ - សំណើថ្មី - ពីប្រភពផ្សេងទៀត - ពី Active Directory" ផ្ទាំង។



បញ្ជាក់ប្រភពទិន្នន័យ។


អ្នកនឹងត្រូវជ្រើសរើសឈ្មោះដែន និងផ្តល់ព័ត៌មានការតភ្ជាប់ចាំបាច់។ បន្ទាប់មកជ្រើសរើសប្រភេទវត្ថុក្នុងឧទាហរណ៍នេះ - អ្នក​ប្រើ. នៅខាងស្តាំក្នុងបង្អួចមើលជាមុន សំណួរកំពុងដំណើរការរួចហើយ ដោយបង្ហាញការមើលជាមុននៃទិន្នន័យ។



យើងរៀបចំសំណើមួយ ហើយសរសើរការមើលជាមុន។


អ្នកគួរតែរៀបចំសំណើជាមុនដោយចុចប៊ូតុង "កែសម្រួល" ហើយជ្រើសរើសជួរឈរដែលត្រូវការ។ ជាសំខាន់ ជួរឈរទាំងនេះគឺជាថ្នាក់នីមួយៗមានសំណុំនៃគុណលក្ខណៈជាក់លាក់នៃវត្ថុ Active Directory លើកលែងតែជួរឈរសំខាន់ ឈ្មោះបង្ហាញដែលខ្លួនវាជាគុណលក្ខណៈ។ ខ្ញុំនឹងផ្តោតលើថ្នាក់ អ្នក​ប្រើ, មនុស្ស, កំពូលនិង នាយកសន្តិសុខ. ឥឡូវអ្នកត្រូវជ្រើសរើសគុណលក្ខណៈចាំបាច់ពីថ្នាក់នីមួយៗដោយប្រើ "ផ្នែកបន្ថែម" - រូបតំណាងដែលមានព្រួញពីរនៅក្បាលជួរឈរ៖

  • ថ្នាក់ អ្នក​ប្រើពង្រីកដោយជ្រើសរើស LastLogonTimestampនិង ការគ្រប់គ្រងគណនីអ្នកប្រើប្រាស់;
  • មនុស្សតោះជ្រើសរើស លេខទូរស័ព្ទ;
  • កំពូលនៅពេលបង្កើត;
  • និងនៅក្នុង នាយកសន្តិសុខSamAccountName.


យើងពង្រីកសំណើ។


ឥឡូវនេះ ចូរយើងរៀបចំតម្រង៖ ជាពិសេស ដើម្បីកុំឱ្យទទួលបានគណនីដែលត្រូវបានរារាំង គុណលក្ខណៈ userAccountControl ត្រូវតែមានតម្លៃ 512 ឬ 66048។ តម្រងអាចខុសគ្នានៅក្នុងបរិស្ថានរបស់អ្នក។ អ្នកអាចអានបន្ថែមអំពីគុណលក្ខណៈនៅក្នុងឯកសារ Microsoft ។



ការអនុវត្តតម្រង.


ពេលខ្លះ Excel រកឃើញទម្រង់ទិន្នន័យមិនត្រឹមត្រូវ ជាពិសេសតម្លៃនៃគុណលក្ខណៈ LastLogonTimestamp ។ ប្រសិនបើសំណាងអាក្រក់បែបនេះកើតឡើងភ្លាមៗនោះ អ្នកអាចកំណត់ទម្រង់ត្រឹមត្រូវនៅលើផ្ទាំង "បម្លែង" ។

ឥឡូវនេះជួរឈរ userAccountControl គួរតែត្រូវបានលុប - វាមិនចាំបាច់ទាល់តែសោះក្នុងការបង្ហាញ។ ហើយចុច "ទាញយកនិងបិទ" ។


លទ្ធផលគឺចានដែលគ្រាន់តែត្រូវការការបញ្ចប់តិចតួចប៉ុណ្ណោះ។ ឧទាហរណ៍ ប្តូរឈ្មោះជួរឈរទៅជាអ្វីដែលអាចអានបាន។ និងដំឡើងការធ្វើបច្ចុប្បន្នភាពទិន្នន័យដោយស្វ័យប្រវត្តិ។


ការធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិនៅពេលបើកតារាង ឬដោយការអស់ពេលត្រូវបានកំណត់រចនាសម្ព័ន្ធនៅក្នុងផ្ទាំង "ទិន្នន័យ" នៅក្នុង "លក្ខណសម្បត្តិ" ។



រៀបចំ​បច្ចុប្បន្នភាព​ទិន្នន័យ។


បន្ទាប់ពីការដំឡើងការអាប់ដេតត្រូវបានបញ្ចប់ អ្នកអាចផ្តល់តារាងទៅផ្នែកបុគ្គលិក ឬសេវាសន្តិសុខដោយសុវត្ថិភាព - អនុញ្ញាតឱ្យពួកគេដឹងថាអ្នកណាចូលទៅក្នុងប្រព័ន្ធ និងនៅពេលណា។


លេខកូដស្នើសុំជាភាសា "M" ស្ថិតនៅក្រោមការបង្ខូចឈ្មោះ។

អនុញ្ញាតឱ្យ Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Object Categories"], user1 = domain.ru(), #"ជួរឈរពីចម្ងាយ" = Table.RemoveColumns(user1,( "organizationalPerson", "shadowAccount", "posixAccount", "msExchOmaUser", "msExchBaseClass", "msExchIMRecipient", "msExchCertificateInformation", "msExchMultiMediaUser", "msExchMailStorage", "msExchCustomAttributes", "ame"), ការចែកចាយសំបុត្រ #"Expanded element securityPrincipal" = Table.ExpandRecordColumn(#"Removed columns", "securityPrincipal", ("sAMAccountName"), ("sAMAccountName")), #"Expanded element top" = Table.ExpandRecordColumn(#"Expanded element securityPrincipal ", "top", ("whenCreated"), ("whenCreated")), #"Expanded element person" = Table.ExpandRecordColumn(#"Expanded element top", "person", ("telephoneNumber"), ("telephoneNumber ")), #"Expanded element user" = Table.ExpandRecordColumn(#"Expanded element person", "user", ("lastLogonTimestamp", "userAccountControl"), ("lastLogonTimestamp", "userAccountControl")), #"ជួរដេក with filter បានអនុវត្ត" = Table.SelectRows(#"ធាតុអ្នកប្រើប្រាស់ដែលបានពង្រីក", នីមួយៗ (= 512 ឬ = 66048)), #"ប្រភេទដែលបានផ្លាស់ប្តូរ" = Table.TransformColumnTypes(#"ជួរដេកដែលមានតម្រងបានអនុវត្ត",(("lastLogonTimestamp", type datetime))), #"Remoted columns1" = Table.RemoveColumns(#"Changed type",("userAccountControl"))) នៅក្នុង #"Remoted columns1"

ការបង្កើតសៀវភៅអាសយដ្ឋាន ឬអ្វីដែលត្រូវធ្វើនៅពេលដែលវិបផតថលសាជីវកម្មមិនមានភាពរួសរាយរាក់ទាក់ជាមួយ AD

ជម្រើសមួយទៀតសម្រាប់ការប្រើប្រាស់ Excel ក្នុងការភ្ជាប់ជាមួយ Active Directory គឺដើម្បីបង្កើតសៀវភៅអាសយដ្ឋានដោយផ្អែកលើទិន្នន័យ AD ។ វាច្បាស់ណាស់ថាសៀវភៅអាសយដ្ឋាននឹងទាន់សម័យលុះត្រាតែដែនស្ថិតនៅក្នុងលំដាប់។


តោះបង្កើតសំណើសម្រាប់វត្ថុមួយ។ អ្នក​ប្រើ, ពង្រីកថ្នាក់ អ្នក​ប្រើសំបុត្រ, និងថ្នាក់ មនុស្សលេខទូរស័ព្ទ. តោះលុបជួរទាំងអស់លើកលែងតែ ឈ្មោះពិសេស- រចនាសម្ព័ន្ធដែនធ្វើឡើងវិញនូវរចនាសម្ព័ន្ធរបស់សហគ្រាស ដូច្នេះឈ្មោះ អង្គភាពរបស់អង្គការត្រូវគ្នានឹងឈ្មោះរបស់នាយកដ្ឋាន។ ដូចគ្នានេះដែរ ក្រុមសន្តិសុខអាចត្រូវបានប្រើជាមូលដ្ឋានសម្រាប់ឈ្មោះនាយកដ្ឋាន។


ឥឡូវនេះពីបន្ទាត់ CN=ឈ្មោះអ្នកប្រើប្រាស់, OU=នាយកដ្ឋានគណនេយ្យ, OU=Divisions, DC=domain, DC=ruអ្នកត្រូវដកឈ្មោះនាយកដ្ឋានដោយផ្ទាល់។ មធ្យោបាយងាយស្រួលបំផុតដើម្បីធ្វើវាគឺត្រូវប្រើសញ្ញាកំណត់នៅលើផ្ទាំង Transform ។



ការដកស្រង់អត្ថបទ។


ជាសញ្ញាកំណត់ដែលខ្ញុំប្រើ OU =និង ,OU=. ជាគោលការណ៍ សញ្ញាក្បៀសគឺគ្រប់គ្រាន់ហើយ ប៉ុន្តែខ្ញុំកំពុងលេងវាដោយសុវត្ថិភាព។



បញ្ចូលសញ្ញាកំណត់។


ឥឡូវនេះដោយប្រើតម្រងអ្នកអាចកាត់ផ្តាច់មិនចាំបាច់ អូដូចជាអ្នកប្រើប្រាស់ដែលត្រូវបានរារាំង និង សាងសង់ឡើងកំណត់រចនាសម្ព័ន្ធការតម្រៀប និងផ្ទុកទិន្នន័យទៅក្នុងតារាង។



ទិដ្ឋភាពនៃតារាងសង្ខេប។

របាយការណ៍រហ័សអំពីសមាសភាពនៃស្ថានីយការងារ ដោយមិនណែនាំភ្នាក់ងារ ឬការរៀបចំផ្សេងទៀត។

ឥឡូវនេះសូមព្យាយាមបង្កើតតារាងមានប្រយោជន៍ដោយទទួលបានទិន្នន័យនៅលើកុំព្យូទ័រ។ ចូរធ្វើរបាយការណ៍អំពីប្រព័ន្ធប្រតិបត្តិការដែលក្រុមហ៊ុនបានប្រើ៖ សម្រាប់រឿងនេះ យើងនឹងបង្កើតសំណើមួយ ប៉ុន្តែពេលនេះនៅក្នុងកម្មវិធីរុករកយើងនឹងជ្រើសរើស កុំព្យូទ័រ.



យើងធ្វើការស្នើសុំវត្ថុកុំព្យូទ័រ។


ចូរយើងចាកចេញពីថ្នាក់ជួរឈរ កុំព្យូទ័រនិង កំពូលនិងពង្រីកពួកវា៖

  • ថ្នាក់ កុំព្យូទ័រពង្រីកដោយជ្រើសរើស cn, ប្រព័ន្ធ​ប្រតិបត្តិការ, operatingSystemServicePackនិង កំណែប្រព័ន្ធប្រតិបត្តិការ;
  • នៅក្នុងថ្នាក់ កំពូលតោះជ្រើសរើស នៅពេលបង្កើត.


សំណើកម្រិតខ្ពស់។


ប្រសិនបើចង់បាន អ្នកអាចធ្វើរបាយការណ៍បានតែនៅលើប្រព័ន្ធប្រតិបត្តិការម៉ាស៊ីនមេប៉ុណ្ណោះ។ ឧទាហរណ៍ ត្រង​តាម​ប្រព័ន្ធ​ប្រតិបត្តិការ ឬ​គុណលក្ខណៈ operatingSystemVersion ។ ខ្ញុំនឹងមិនធ្វើបែបនេះទេ ប៉ុន្តែខ្ញុំនឹងកែតម្រូវការបង្ហាញពេលវេលាបង្កើត - ខ្ញុំចាប់អារម្មណ៍តែឆ្នាំប៉ុណ្ណោះ។ ដើម្បីធ្វើដូចនេះនៅលើផ្ទាំង "ការបម្លែង" ជ្រើសរើសជួរឈរដែលយើងត្រូវការហើយជ្រើសរើស "ឆ្នាំ" នៅក្នុងម៉ឺនុយ "កាលបរិច្ឆេទ" ។



យើងស្រង់ឆ្នាំពីពេលដែលកុំព្យូទ័រចូលដែន។


ឥឡូវនេះអ្វីដែលនៅសល់គឺត្រូវលុបជួរឈរបង្ហាញឈ្មោះដែលមិនចាំបាច់ ហើយផ្ទុកលទ្ធផល។ ទិន្នន័យរួចរាល់ហើយ។ ឥឡូវនេះអ្នកអាចធ្វើការជាមួយពួកគេដូចជាតារាងធម្មតា។ ដំបូង យើងបង្កើតតារាងជំនួយនៅលើផ្ទាំង "បញ្ចូល" - "តារាង Pivot" ។ ចូរយើងយល់ព្រមចំពោះជម្រើសនៃប្រភពទិន្នន័យ និងកំណត់រចនាសម្ព័ន្ធវាលរបស់វា។



ការកំណត់វាលតារាង Pivot ។


ឥឡូវនេះនៅសល់គឺដើម្បីប្ដូរការរចនាតាមរសជាតិរបស់អ្នក ហើយសរសើរលទ្ធផល៖



តារាងសង្ខេបសម្រាប់កុំព្យូទ័រនៅក្នុង AD ។


ប្រសិនបើចង់បាន អ្នកអាចបន្ថែមតារាងសង្ខេបមួយនៅលើផ្ទាំង បញ្ចូល។ នៅក្នុង "ប្រភេទ" (ឬនៅក្នុង "ជួរដេក" ដើម្បីភ្លក្សរសជាតិ) បន្ថែម ប្រព័ន្ធ​ប្រតិបត្តិការទៅកាន់ទិន្នន័យ - cn. នៅលើផ្ទាំង "ការរចនា" អ្នកអាចជ្រើសរើសប្រភេទគំនូសតាងដែលអ្នកចូលចិត្ត។



គំនូសតាងចំណិត។


ឥឡូវនេះវាអាចមើលឃើញយ៉ាងច្បាស់ថា ទោះបីជាមានការអាប់ដេតបន្តក៏ដោយ ចំនួនសរុបនៃស្ថានីយការងារជាមួយ Windows XP និងម៉ាស៊ីនមេដែលមាន Windows 2003 គឺមានទំហំធំណាស់។ ហើយមានអ្វីដែលត្រូវខិតខំ។


លេខកូដស្នើសុំគឺស្ថិតនៅក្រោម spoiler ។

អនុញ្ញាតឱ្យ Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Object Categories"], computer1 = domain.ru(), #"ជួរឈរពីចម្ងាយ" = Table.RemoveColumns(computer1,( "user", "organizationalPerson", "person")), #"ជួរឈរដែលបានដកចេញផ្សេងទៀត" = Table.SelectColumns(#"ជួរឈរពីចម្ងាយ",("displayName", "computer", "top")), #"ពង្រីកធាតុ computer" = Table.ExpandRecordColumn(#"ជួរឈរពីចម្ងាយផ្សេងទៀត", "កុំព្យូទ័រ", ("cn", "operatingSystem", "operatingSystemServicePack", "operatingSystemVersion"), ("cn", "operatingSystem", "operatingSystemServicePack", " operatingSystemVersion")), #"Extended top" = Table.ExpandRecordColumn(#"កុំព្យូទ័រពង្រីក", "top", ("whenCreated"), ("whenCreated")), #"ឆ្នាំដែលបានស្រង់ចេញ" = Table.TransformColumns( #" ផ្នែកខាងលើនៃធាតុដែលបានពង្រីក",(("whenCreated", Date.Year))), #"ជួរឈរពីចម្ងាយ1" = Table.RemoveColumns(#"ឆ្នាំដែលបានស្រង់ចេញ",("displayName")) នៅក្នុង #"ជួរឈរពីចម្ងាយ1"

បន្ថែមស្លាក