ยกเลิกการโหลดรายชื่อผู้ใช้จาก ad PowerShell วิธีรับรายการกลุ่มโฆษณาที่เลือกซึ่งมีผู้ใช้จำนวนมากเป็นสมาชิก

สวัสดีตอนบ่าย ผู้อ่านที่รักและสมาชิก เรายังคงสำรวจความสามารถของ Powershell และ Active Directory ต่อไป คุณจำทุกอย่างเกี่ยวกับเธอได้อย่างไร? บัญชีผู้ใช้และคอมพิวเตอร์อยู่ในฐานข้อมูล NTDS.dit ทุกอย่างยอดเยี่ยมและรวมศูนย์ เมื่อบริษัทมีผู้ดูแลระบบมากกว่าหนึ่งคน สถานการณ์อาจเกิดขึ้นเมื่อขยะและข้อมูลประจำตัวที่ไม่จำเป็นสะสม เราทุกคนเป็นมนุษย์และสามารถลืมบางสิ่งบางอย่างได้ และในบางช่วงเวลาเราก็อาจถูกฟุ้งซ่านซึ่งจะนำไปสู่การลืมด้วย ข้อมูลสำคัญ. และเราก็ได้ข้อสรุปว่า Actvie Directory ไม่สะสม ผู้ใช้ที่ใช้งานอยู่(ถูกไล่ออกหรือถูกลืม) ทั้งสองวิธีก็ดี ผู้ดูแลระบบต้องระบุ ปิดการใช้งาน และลบออกหากต้องการ ซึ่งเป็นสิ่งที่เราจะทำ

ผ่านสแน็ปอิน ADUC

ครั้งล่าสุดฉันได้ยกตัวอย่างการใช้งานให้คุณแล้ว สแน็ปอินที่ใช้งานอยู่ ผู้ใช้ไดเรกทอรีและคอมพิวเตอร์ ซึ่งเราค้นหาคอมพิวเตอร์ที่หายไปในเครือข่ายท้องถิ่นซึ่งไม่ปรากฏเป็นเวลาหนึ่งเดือน ตอนนี้เราจะทำเช่นเดียวกันกับบัญชีผู้ใช้ ฉันมีโฆษณาอยู่ วินโดวส์เซิร์ฟเวอร์ 2012 R2 เปิด ADUC โดยกด WIN+R แล้วป้อน dsa.msc

ในแบบฟอร์มคำขอที่เปิดขึ้น ให้ป้อน:

  • ชื่อคำขอ > สำหรับฉัน เหล่านี้คือผู้ใช้ที่สูญหาย
  • คำอธิบายหากจำเป็น
  • ร้องขอการรูท > คุณสามารถออกจากโดเมนทั้งหมดหรือระบุบน OU ที่ต้องการได้ที่นี่

จากนั้นคลิกปุ่มร้องขอ

บนแท็บผู้ใช้ เราเห็นรายการ "จำนวนวันนับตั้งแต่เข้าสู่ระบบครั้งล่าสุด" ตัวอย่างเช่น ฉันตั้งค่าเป็น 60 วัน

ด้วยเหตุนี้ คุณจะได้รับรายการที่คุณต้องการสำหรับบัญชีพนักงานที่ไม่ได้ใช้งาน

ผ่านสแน็ปอิน PowerShell

สิ่งเดียวกันนี้สามารถทำได้ผ่าน Powershell ฉันจะให้รหัสแก่คุณทันทีซึ่งมีหน้าที่ การค้นหาอยู่ระหว่างดำเนินการ ผู้ใช้ที่ไม่ได้ใช้งานสำหรับสิ่งนี้ ฉันเลือกระยะเวลา 45 วัน โดยปิดใช้งานข้อมูลผู้ใช้และย้ายไปยัง OU ที่กำหนดเป็นพิเศษ

$date_with_offset= (รับวันที่).AddDays(-45)
$users = Get-ADUser -คุณสมบัติ LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | เรียงลำดับ LastLogonDate
foreach ($user ใน $users) (set-aduser $user -enabled $false; move-adobject -identity $user -targetpath "ou=Fired,ou=Moscow L. users,ou=Location,dc=msk,dc= contoso,dc=com")
รับ-ADUser - คุณสมบัติ LastLogonDate - ตัวกรอง (LastLogonDate -lt $date_with_offset ) | เรียงลำดับ LastLogonDate | ชื่อ FT, LastLogonDate - ขนาดอัตโนมัติ | ออกไฟล์ c:\Script\users.txt

  • ในบรรทัดแรก คุณจะประกาศตัวแปรที่คุณตั้งค่าคำค้นหา
  • สร้างตัวแปรและเลือกตามเวลาเข้าสู่ระบบครั้งล่าสุด
  • การย้ายผู้ใช้

  • การทำรายงานเป็นไฟล์

สิ่งที่มีประโยชน์เพิ่มเติมเกี่ยวกับการทำงานกับผู้ใช้ ก่อนที่จะใช้คำสั่งด้านล่าง คุณต้องดาวน์โหลดก่อน โมดูลที่ใช้งานอยู่ไดเร็กทอรีผ่านคำสั่ง

รับความช่วยเหลือรับ ADUser

สคริปต์สำหรับการยกเลิกการโหลดผู้ใช้ทั้งหมดจาก MS Active Directory (ITGC)

อีวาน พิสคูนอฟ

หนึ่งใน ขั้นตอนมาตรฐานดำเนินการตรวจสอบ ไอทีจีซี สำหรับแค็ตตาล็อก ไดเรกทอรีที่ใช้งานอยู่ คือการรับการดาวน์โหลดของผู้ใช้โดเมนทั้งหมด จากข้อมูลที่ได้รับ ขั้นตอนการทดสอบจะถูกสร้างขึ้น เช่น ศึกษารายชื่อผู้ดูแลระบบหรือระบุผู้ใช้ด้วยรหัสผ่านที่หมดอายุ วิธีที่มีประสิทธิภาพที่สุดในการสร้างการอัปโหลดคือการใช้ อินเตอร์เฟซมาตรฐาน พาวเวอร์เชลล์ ตัวอย่างที่เราจะพิจารณาในบทความนี้

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 เข้าสู่ระบบ = $user.userprincipalname โทรศัพท์ = $user.telephonenumber Room = $user.physicaldeliveryofficename เต็ม ชื่อ = $user.cn ) ) | ส่งออก-Csv -NoClobber -เข้ารหัส utf8 -Path C: list_domain_users.csv

เพื่อให้สคริปต์ทำงานบนระบบของคุณ คุณต้องแก้ไขเล็กน้อย กล่าวคือ ป้อนพารามิเตอร์ที่จำเป็น เช่น เป็นยังไงบ้าง ในตัวอย่างนี้นี่คือพารามิเตอร์ ผู้ใช้ ในแผนก หน่วยงาน ในโดเมน Test.ru และยังระบุเส้นทางไปยังตำแหน่งที่บันทึกไฟล์ด้วย list_domain_users.csv

หลังจากขนถ่ายแล้วหากเปิดทันที list_domain_users.csv จะดูอ่านไม่ออก แต่การใช้มาตรฐานหมายความว่าเราสามารถนำมาเป็นรูปแบบที่เราต้องการได้อย่างง่ายดาย เปิดใน Excel list_domain_users.csv เลือกคอลัมน์แรก จากนั้นไปที่แท็บ "ข้อมูล" แล้วคลิก "ข้อความตามคอลัมน์" เลือก "คั่น" และคลิก "ถัดไป" พร้อม!

!จำเป็นต้องทราบ, อะไร สคริปต์นี้จะไม่แสดงผู้ใช้มากกว่า 1,000 ราย สำหรับ บริษัทขนาดเล็กค่อนข้างเหมาะสม แต่สำหรับผู้ที่มีผู้ใช้จำนวนมากในโดเมน พวกเขาควรใช้วิธีการที่อธิบายไว้ด้านล่าง

2. PowerShell cmdlet ขั้นสูงสำหรับการรับการอัปโหลด ผู้ใช้ที่ใช้งานอยู่ไดเรกทอรี

เครื่องมือ Active Directory Module สำหรับ Windows PowerShell (เปิดตัวใน Windows Server 2008 R2 และสูงกว่า) ช่วยให้คุณสร้าง cmdlets ที่ดำเนินการจัดการต่างๆ กับวัตถุไดเรกทอรี AD cmdlet ใช้เพื่อรับข้อมูลเกี่ยวกับผู้ใช้และคุณสมบัติของพวกเขา รับ-ADUser.

เริ่ม เปิดหน้าต่าง Powershell ด้วยสิทธิ์ของผู้ดูแลระบบและนำเข้าโมดูล Active Directory เพื่อดำเนินการต่อไป:
นำเข้าโมดูล activedirectory

ถึง แสดงรายการบัญชีโดเมนทั้งหมด และมารันคำสั่งกัน:

รับ ADUser - ตัวกรอง *

ถึง ถอน เต็มไปด้วยข้อมูลเกี่ยวกับคุณลักษณะที่มีอยู่ทั้งหมด ผู้ใช้ tuser ให้รันคำสั่ง

รับ ADUser -identity tuser -properties *


เช่น เรามีความสนใจในข้อมูลเกี่ยวกับ วันที่เปลี่ยนรหัสผ่านและเวลาที่รหัสผ่านหมดอายุ . ผลลัพธ์ของคำสั่งสามารถส่งออกไปยังไฟล์ข้อความ:

รับ ADUser -filter * - คุณสมบัติรหัสผ่านหมดอายุ, PasswordLastSet, รหัสผ่านNeverExpires | ชื่อ ft, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:tempusers.txt

หรือทันที อัปโหลดเป็น CSV ซึ่งจะสะดวกในการส่งออกไปยัง Excel ในอนาคต (นอกจากนี้การใช้ sort-object เราจะเรียงลำดับตารางตามคอลัมน์ PasswordLastSet และยังเพิ่ม สภาพไหน– ชื่อผู้ใช้ต้องมีสตริง “Dmitry”)

รับ ADUser -filter * - คุณสมบัติรหัสผ่านหมดอายุ, PasswordLastSet, รหัสผ่านNeverExpires | โดยที่ ($_.name –like “*Dmitry*”) | เรียงลำดับวัตถุ PasswordLastSet | ชื่อวัตถุที่เลือก, PasswordExpired, PasswordLastSet, PasswordNeverExpires | ส่งออก-csv -path c:tempuser-รหัสผ่าน-expires-2015.csv

ในความคิดเห็นในบทความก่อนหน้านี้ เราจำเกี่ยวกับการบัญชีใน Excel แทน 1C ได้ มาดูกันว่าคุณรู้จัก Excel มากแค่ไหน วันนี้ฉันจะแสดงวิธีรับข้อมูลจาก Active Directory และใช้งานได้โดยไม่ต้องใช้มาโครและ PowerShell - เฉพาะกับกลไก Office มาตรฐานเท่านั้น ตัวอย่างเช่น คุณสามารถรับการวิเคราะห์เกี่ยวกับการใช้ระบบปฏิบัติการในองค์กรของคุณได้อย่างง่ายดาย หากคุณยังไม่มี Microsoft SCOM หรือเพียงแค่อุ่นเครื่องและเลิกสนใจสคริปต์


แน่นอน คุณสามารถรับข้อมูลตามตัวอย่างด้านล่างได้อย่างแท้จริงด้วยหนึ่งบรรทัดใน PowerShell แต่ประการแรก PowerShell น่าเบื่อเกินไปและประการที่สอง Excel สามารถอัปเดตข้อมูลแบบไดนามิก - เอกสารผลลัพธ์สามารถเผยแพร่ทางออนไลน์และลืมเกี่ยวกับการอัปเดตได้

ในการทำงานกับข้อมูล ฉันจะใช้กลไก Power Query สำหรับ Office 2010 และ 2013 คุณจะต้องติดตั้งปลั๊กอินใน ไมโครซอฟต์ ออฟฟิศ 2016 โมดูลนี้มีอยู่แล้วภายใน น่าเสียดายที่ Standard Edition ยังไม่เพียงพอสำหรับเรา เราต้องการ Professional


กลไกนี้ได้รับการออกแบบให้รับและประมวลผลข้อมูลจากแหล่งต่างๆ - จาก ODBC เก่าและ ไฟล์ข้อความเพื่อ Exchange, Oracle และ Facebook รายละเอียดเพิ่มเติมเกี่ยวกับกลไกและภาษาสคริปต์ในตัว "M" ได้เขียนไว้แล้วบนHabré แต่ฉันจะดูตัวอย่างการใช้งานสองสามตัวอย่าง พาวเวอร์คิวรีเพื่อดึงข้อมูลจาก 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(), #"Remote Columns" = Table.RemoveColumns(user1,( "organizationalPerson", "shadowAccount", "posixAccount", "msExchOmaUser", "msExchBaseClass", "msExchIMRecipient", "msExchCertificateInformation", "msExchMultiMediaUser", "msExchMailStorage", "msExchCustomAttributes", "mailRecipient", "distinguishedName")), #"องค์ประกอบที่ขยาย securityPrincipal" = Table.ExpandRecordColumn(#"คอลัมน์ที่ถูกลบ", "securityPrincipal", ("sAMAccountName"), ("sAMAccountName")), #"องค์ประกอบที่ขยายด้านบน" = Table.ExpandRecordColumn(#"องค์ประกอบที่ขยาย securityPrincipal ", "top", ("whenCreated"), ("whenCreated")), #"บุคคลองค์ประกอบที่ขยาย" = Table.ExpandRecordColumn(#"องค์ประกอบที่ขยายด้านบน", "บุคคล", ("telephoneNumber"), ("telephoneNumber ")), #"ผู้ใช้องค์ประกอบที่ขยาย" = Table.ExpandRecordColumn(#"บุคคลองค์ประกอบที่ขยาย", "ผู้ใช้", ("lastLogonTimestamp", "userAccountControl"), ("lastLogonTimestamp", "userAccountControl")), #"แถว พร้อมตัวกรองที่ใช้" = Table.SelectRows(#"องค์ประกอบผู้ใช้ที่ขยาย" แต่ละ ( = 512 หรือ = 66048)), #"ประเภทที่เปลี่ยนแปลง" = Table.TransformColumnTypes(#"แถวที่ใช้ตัวกรอง",(("lastLogonTimestamp", พิมพ์ datetime))), #"Remoted columns1" = Table.RemoveColumns(#"Changed type",("userAccountControl")) ใน #"Remoted columns1"

การสร้างสมุดที่อยู่หรือจะทำอย่างไรเมื่อใด พอร์ทัลองค์กรไม่เป็นมิตรกับ AD

อีกรูปแบบหนึ่ง ใช้ Excelร่วมกับ Active Directory - นี่คือการสร้างสมุดที่อยู่ตามข้อมูล AD เป็นที่ชัดเจนว่า สมุดที่อยู่จะเกี่ยวข้องเฉพาะในกรณีที่โดเมนอยู่ในลำดับเท่านั้น


มาสร้างคำขอสำหรับวัตถุกัน ผู้ใช้, ขยายชั้นเรียน ผู้ใช้วี จดหมายและชั้นเรียน บุคคลวี หมายเลขโทรศัพท์. ลองลบคอลัมน์ทั้งหมดยกเว้น ชื่อที่โดดเด่น― โครงสร้างโดเมนซ้ำกับโครงสร้างขององค์กร ดังนั้นชื่อ หน่วยองค์กรตรงกับชื่อหน่วยงานต่างๆ ในทำนองเดียวกัน กลุ่มความปลอดภัยสามารถใช้เป็นพื้นฐานสำหรับชื่อแผนกได้


ตอนนี้จากบรรทัด CN=ชื่อผู้ใช้, OU=แผนกบัญชี, OU=แผนก, DC=โดเมน, DC=ruคุณต้องแยกชื่อแผนกออกโดยตรง วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้ตัวคั่นบนแท็บการแปลง



การแยกข้อความ


เป็นตัวคั่นที่ฉันใช้ อู๋=และ ,อู๋=. โดยหลักการแล้ว จุลภาคก็เพียงพอแล้ว แต่ฉันก็เล่นอย่างปลอดภัย



ป้อนตัวคั่น


ขณะนี้การใช้ตัวกรองคุณสามารถตัดส่วนที่ไม่จำเป็นออกได้ อู๋เช่น ผู้ใช้ที่ถูกบล็อก และ บิวท์อินกำหนดค่าการเรียงลำดับและโหลดข้อมูลลงในตาราง



มุมมองของตารางสรุป

รายงานอย่างรวดเร็วเกี่ยวกับองค์ประกอบของเวิร์กสเตชัน โดยไม่ต้องแนะนำตัวแทนหรือการเตรียมการอื่นๆ

ตอนนี้เรามาลองสร้างตารางที่มีประโยชน์โดยการรับข้อมูลบนคอมพิวเตอร์ มารายงานระบบปฏิบัติการที่บริษัทใช้กัน: เราจะสร้างคำขอ แต่คราวนี้เราจะเลือกในเนวิเกเตอร์ คอมพิวเตอร์.



เราทำการร้องขอวัตถุคอมพิวเตอร์


ออกจากคลาสคอลัมน์กันเถอะ คอมพิวเตอร์และ สูงสุดและขยายความ:

  • ระดับ คอมพิวเตอร์ขยายโดยการเลือก CN, ระบบปฏิบัติการ, ระบบปฏิบัติการServicePackและ ระบบปฏิบัติการเวอร์ชัน;
  • ในชั้นเรียน สูงสุดมาเลือกกัน เมื่อสร้างขึ้น.


คำขอขั้นสูง


หากต้องการคุณสามารถรายงานเฉพาะระบบปฏิบัติการเซิร์ฟเวอร์เท่านั้น ตัวอย่างเช่น กรองตามแอตทริบิวต์ระบบปฏิบัติการหรือระบบปฏิบัติการเวอร์ชัน ฉันจะไม่ทำเช่นนี้ แต่ฉันจะแก้ไขการแสดงเวลาสร้าง - ฉันสนใจเฉพาะปีเท่านั้น ในการดำเนินการนี้ บนแท็บ "การแปลง" ให้เลือกคอลัมน์ที่เราต้องการ และเลือก "ปี" ในเมนู "วันที่"



เราแยกปีนับจากเวลาที่คอมพิวเตอร์เข้าสู่โดเมน


ตอนนี้สิ่งที่เหลืออยู่คือการลบคอลัมน์ชื่อที่แสดงโดยไม่จำเป็นและโหลดผลลัพธ์ ข้อมูลพร้อมแล้ว ตอนนี้คุณสามารถทำงานร่วมกับพวกเขาได้เหมือนกับโต๊ะปกติ ขั้นแรก เรามาสร้างตารางสาระสำคัญบนแท็บ "แทรก" - " ตารางเดือย" ยอมรับการเลือกแหล่งข้อมูลและกำหนดค่าฟิลด์



การตั้งค่าฟิลด์ตาราง Pivot


ตอนนี้สิ่งที่เหลืออยู่คือการปรับแต่งการออกแบบตามรสนิยมของคุณและชื่นชมผลลัพธ์:



ตารางสรุปคอมพิวเตอร์ใน AD


หากต้องการคุณสามารถเพิ่มได้ กำหนดการสรุปบนแท็บแทรกด้วย เพิ่มใน "หมวดหมู่" (หรือใน "แถว" เพื่อลิ้มรส) ระบบปฏิบัติการไปยังข้อมูล ― CN. บนแท็บ "การออกแบบ" คุณสามารถเลือกประเภทของแผนภูมิที่คุณต้องการได้ ฉันชอบแผนภูมิวงกลมมากกว่า



แผนภูมิวงกลม


ตอนนี้เห็นได้อย่างชัดเจนว่าแม้จะมีการอัปเดตอย่างต่อเนื่อง แต่จำนวนเวิร์กสเตชันทั้งหมดที่ใช้ Windows XP และเซิร์ฟเวอร์ที่ใช้ Windows 2003 ก็ค่อนข้างมาก และมีบางอย่างที่ต้องดิ้นรนเพื่อ


รหัสคำขออยู่ใต้สปอยเลอร์

ให้ Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Object Categories"], computer1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(computer1,( "user", "organizationalPerson", "person")), #"คอลัมน์อื่นๆ ที่ถูกลบ" = Table.SelectColumns(#"Remoted columns",("displayName", "computer", "top")), #"ขยายรายการ คอมพิวเตอร์" = Table.ExpandRecordColumn(#"คอลัมน์ระยะไกลอื่นๆ", "คอมพิวเตอร์", ("cn", "operatingSystem", "operatingSystemServicePack", "operatingSystemVersion"), ("cn", "operatingSystem", "operatingSystemServicePack", " OperatingSystemVersion")), #"องค์ประกอบด้านบนแบบขยาย" = Table.ExpandRecordColumn(#"องค์ประกอบคอมพิวเตอร์แบบขยาย", "ด้านบน", ("เมื่อสร้าง"), ("เมื่อสร้าง")), #"ปีที่แยกออกมา" = Table.TransformColumns( #"องค์ประกอบที่ขยายด้านบน",(("whenCreated", Date.Year))), #"คอลัมน์ระยะไกล1" = Table.RemoveColumns(#"ปีที่แยกออกมา",("displayName")) ใน #"คอลัมน์ระยะไกล1"

เพิ่มป้ายกำกับที่ใช้ในการสร้าง แก้ไข และลบออบเจ็กต์ไดเร็กทอรี ผู้ใช้ยังสามารถใช้คำสั่ง ldifdeเพื่อขยายสคีมา ส่งออก ข้อมูลที่ใช้งานอยู่ข้อมูลผู้ใช้ไดเรกทอรีและกลุ่มไปยังแอปพลิเคชันหรือบริการอื่น และเพื่อเติมบริการ ADAM (โหมดแอปพลิเคชัน Active Directory) ด้วยข้อมูลจากบริการไดเรกทอรีอื่น

ไวยากรณ์

ldifde [-ฉัน] [-ฉ ชื่อไฟล์] [-ส ชื่อเซิร์ฟเวอร์] [-ค บรรทัดที่ 1 บรรทัดที่ 2] [-v] [-เจ เส้นทาง] [-t หมายเลขพอร์ต] [-d DN_ฐาน] [-ร ตัวกรอง_LDAP] [-พี ภูมิภาค] [-ล LDAP_attribute_list] [-o LDAP_attribute_list] [-ก] [-ม] [-n] [-เค] [-ก ] [-ข ] [-? ]

ตัวเลือก

-ฉัน ระบุโหมดการนำเข้า หากไม่ได้กำหนดพารามิเตอร์ โหมดการส่งออกจะถูกใช้ตามค่าเริ่มต้น -ฉชื่อไฟล์ ระบุชื่อของไฟล์นำเข้าหรือส่งออก -สชื่อเซิร์ฟเวอร์ ระบุคอมพิวเตอร์ที่ควรดำเนินการนำเข้าหรือส่งออก โปรแกรมเริ่มต้น ldifdeจะถูกดำเนินการบนคอมพิวเตอร์ที่ ldifdeติดตั้งแล้ว -คบรรทัดที่ 1 บรรทัดที่ 2 แทนที่เหตุการณ์ทั้งหมด เส้น1เนื้อหา เส้น2. โดยทั่วไปจะใช้เมื่อคุณนำเข้าข้อมูลจากโดเมนหนึ่งไปยังอีกโดเมนหนึ่ง และจำเป็นต้องเปลี่ยนชื่อที่แตกต่างของโดเมนที่ทำการส่งออก ( บรรทัดที่ 1) การนำเข้าชื่อโดเมน ( บรรทัดที่ 2). -v เปิดใช้งานโหมด การบันทึกโดยละเอียด. -เจเส้นทาง ระบุตำแหน่งของไฟล์บันทึก ค่าเริ่มต้นคือเส้นทางปัจจุบัน -tหมายเลขพอร์ต ระบุหมายเลขพอร์ต LDAP (Lightweight Directory Directory Access Protocol) โปรโตคอลการเข้าถึง). พอร์ต LDAP เริ่มต้นคือ 389 พอร์ต แคตตาล็อกทั่วโลกคือ 3268 -dDN_ฐาน ระบุชื่อที่แตกต่างของฐานการค้นหาสำหรับการส่งออกข้อมูล -รตัวกรอง LDAP สร้างตัวกรองการค้นหา LDAP สำหรับการส่งออกข้อมูล ตัวอย่างเช่น ตัวกรองต่อไปนี้จะส่งออกผู้ใช้ทั้งหมดที่มีชื่อกลางเฉพาะ: csvde -r (และ (objectClass=ผู้ใช้)(sn=นามสกุล)) -พีภูมิภาค ระบุพื้นที่การค้นหา พารามิเตอร์ขอบเขตการค้นหาคือ ฐาน, หนึ่งระดับและ ต้นไม้ย่อย. -ลLDAP_attribute_list ระบุรายการแอตทริบิวต์ที่ส่งคืนในผลลัพธ์ของการร้องขอการส่งออก หากละเว้นพารามิเตอร์นี้ แอ็ตทริบิวต์ทั้งหมดจะถูกส่งกลับ -oLDAP_attribute_list ระบุรายการแอ็ตทริบิวต์ที่จะละเว้นจากผลลัพธ์การร้องขอเอ็กซ์พอร์ต โดยทั่วไปตัวเลือกนี้จะใช้เมื่อส่งออกออบเจ็กต์จาก Active Directory แล้วนำเข้าไปยังไดเร็กทอรีอื่นที่เข้ากันได้กับ LDAP หากแค็ตตาล็อกอื่นไม่รองรับแอตทริบิวต์ใดๆ ก็สามารถแยกออกจากชุดผลลัพธ์ได้โดยใช้ตัวเลือกนี้ -ก กำจัดการค้นหาหน้า -ม ละเว้นแอตทริบิวต์ที่ไม่สามารถเขียนได้ เช่น ObjectGUIDและ objectSID. -n ละเว้นการส่งออกค่าไบนารี -เค ละเว้นข้อผิดพลาดระหว่างการดำเนินการนำเข้าและดำเนินการประมวลผลต่อ ด้านล่างคือ รายการทั้งหมดข้อผิดพลาดที่ถูกละเว้น:

  • วัตถุนั้นเป็นสมาชิกของกลุ่มอยู่แล้ว
  • การละเมิดคลาสอ็อบเจ็กต์ (หมายความว่าไม่มีคลาสอ็อบเจ็กต์ที่ระบุ) หากออบเจ็กต์ที่นำเข้าไม่มีคุณลักษณะอื่น ๆ
  • วัตถุมีอยู่แล้ว
  • การละเมิดข้อ จำกัด
  • มีแอตทริบิวต์หรือค่าอยู่แล้ว
  • ไม่มีวัตถุดังกล่าวอยู่
-กแตกต่าง_name_password ระบุการดำเนินการของคำสั่งโดยใช้ที่ระบุ แตกต่าง_name_user_nameและ รหัสผ่าน -ข. -ขชื่อผู้ใช้ รหัสผ่านโดเมน ระบุคำสั่งที่จะดำเนินการโดยใช้ที่ระบุ ชื่อผู้ใช้ โดเมน และรหัสผ่าน. ตามค่าเริ่มต้น คำสั่งจะถูกดำเนินการโดยใช้ข้อมูลประจำตัวของผู้ใช้ที่อยู่ในนั้น ช่วงเวลานี้ลงทะเบียนบนเครือข่าย ไม่สามารถใช้กับพารามิเตอร์ได้ -ก. -? แสดงเมนูคำสั่ง

หมายเหตุ

  • พร้อมพารามิเตอร์ -คคุณสามารถใช้ค่าคงที่ได้ #schemaบริบทการตั้งชื่อและ #configurationการตั้งชื่อบริบทแทนชื่อที่แตกต่างของพาร์ติชันไดเร็กทอรี schema และพาร์ติชันไดเร็กทอรีการกำหนดค่า
  • เมื่อสร้างไฟล์นำเข้าสำหรับคำสั่ง ldifdeให้ใช้ค่า เปลี่ยนประเภทเพื่อกำหนดประเภทของการเปลี่ยนแปลงที่มีอยู่ในไฟล์นำเข้า ค่านิยม เปลี่ยนประเภทระบุไว้ในตารางด้านล่าง

ด้านล่างนี้คือตัวอย่างไฟล์นำเข้า LDAP ในรูปแบบ LDIF ที่ใช้ค่าดังกล่าว เพิ่ม:
DN: ซีเอ็น=เลือกแล้ว_ผู้ใช้,ดีซี=ชื่อโดเมน
ประเภทการเปลี่ยนแปลง: เพิ่ม
ซีเอ็น: เลือกแล้ว_ผู้ใช้
คำอธิบาย:file_description
วัตถุคลาส: ผู้ใช้
วัตถุคลาส: เลือกแล้ว_ผู้ใช้

ตัวอย่าง

หากต้องการแยกเฉพาะชื่อที่แตกต่าง ชื่อสามัญ, ชื่อ, นามสกุล และหมายเลขโทรศัพท์ของออบเจ็กต์ที่ส่งคืน ให้ป้อน:
-ล โดดเด่น_ชื่อ, ซีเอ็น ชื่อ, เอส.เอ็น. โทรศัพท์
หากต้องการยกเว้น globally Unique identifier (GUID) สำหรับอ็อบเจ็กต์ ให้ป้อน:
-o เมื่อ_สร้าง, เมื่อ_เปลี่ยนแปลง, object_GUID

วันนี้เราจะลองอัพโหลดรายชื่อผู้ใช้ทั้งหมดไปที่ แยกไฟล์จาก Active Directory ผู้ช่วยหลักของเราในเรื่องนี้คือ PowerShell ประเด็นคือในตอนแรก Microsoft วางแผนทีม คอนโซล PowerShellเป็นเครื่องมือหลักในการจัดการเซิร์ฟเวอร์ ส่วนประกอบของวินโดวส์. และในวันนี้ เมื่อเรามีเวอร์ชัน 2.0 อยู่แล้ว ก็เป็นเช่นนั้น

แม้แต่ในอดีตที่ผ่านมา เพื่อที่จะโต้ตอบกับ AD ผู้ดูแลระบบจำเป็นต้องมียูทิลิตี้ dsquery หรือสคริปต์หรือยูทิลิตี้ประเภทต่างๆ เริ่มตั้งแต่วันนี้เป็นต้นไป เวอร์ชันของ Windows Server 2008 R2 เราสามารถทำงานร่วมกับ AD ผ่าน PowerShell ได้ ด้วยการถือกำเนิดของ PowerShell 2.0 โมดูลพิเศษจะถูกนำมาใช้เพื่อโต้ตอบกับ Active Directory โมดูล Active Directory สำหรับ วินโดว์ PowerShell ซึ่งมีรายการ cmdlets ที่จำเป็น สำหรับงานของเราเราจะใช้คำสั่ง รับ-ADUser.

ดังนั้นขึ้นอยู่กับว่าอันไหนอยู่ภายใต้การควบคุม ระบบปฏิบัติการเราจะเปิดตัวคอนโซล PowerShell เราจะต้องดำเนินการ "ขั้นตอนการเตรียมการ"

1) ถ้าเราทำงานภายใต้ Windows Server จนถึงเวอร์ชัน 2012จากนั้นเราจำเป็นต้องรันคำสั่ง:

  • นำเข้าโมดูล activedirectory – คำสั่งนำเข้าโมดูลเข้าสู่ AD

สำหรับระบบปฏิบัติการเวอร์ชันตั้งแต่ปี 2012 ขึ้นไป โมดูลนี้จะเปิดใช้งานอยู่แล้วตามค่าเริ่มต้น

2) หากเราทำงานจากใต้ใดๆ ไคลเอนต์ Windowsจากนั้นจะต้องติดตั้งแพ็คเกจลงไป การดูแลระบบระยะไกล RSAT ที่ติดตั้งคอมโพเนนต์ Active Directory Module สำหรับวินโดวส์พาวเวอร์เชลล์

เป็นที่น่าสังเกตว่า Get-ADUser cmdlet แนะนำให้ดำเนินการเมื่อจำนวนข้อมูลที่อัปโหลดมีผู้ใช้สูงสุด 1,000 ราย

การส่งออกผู้ใช้ AD โดยใช้ PowerShell ไปยังไฟล์แยกต่างหาก

ขั้นแรก เรียกวิธีใช้สำหรับคำสั่ง Get-ADUser ผลลัพธ์ก็คือคุณจะได้ทุกอย่าง คำสั่งที่จำเป็นเพื่อการบริหารงานต่อไป

  • ช่วยรับ-ADUser – คำสั่งให้เรียกความช่วยเหลือ

เพื่อเข้าไปทางหน้าต่าง รายการ PowerShellผู้ใช้ทั้งหมดที่มีคุณสมบัติทั้งหมด คุณต้องรันคำสั่งต่อไปนี้:

  • รับ ADUser - ตัวกรอง * – ส่งออกรายชื่อผู้ใช้ AD

การดาวน์โหลดนี้ไม่ได้ให้ข้อมูลทั้งหมดและไม่เหมาะกับทุกสิ่งในหน้าต่าง ข้อมูลที่จำเป็น. ดังนั้น ลองจำกัดการค้นหาและแสดงคุณสมบัติให้แคบลง ผู้ใช้เฉพาะด้วยชื่อ user1:

  • รับ ADUser - ข้อมูลประจำตัวผู้ใช้ 1 - คุณสมบัติ * – ส่งออกคุณสมบัติของผู้ใช้เฉพาะ

ตอนนี้เรามาลองส่งออกรายชื่อผู้ใช้ทั้งหมดที่มีคุณสมบัติของตนไปยังภายนอก txt หรือ csvไฟล์:

  • รับ ADUser -filter * -properties * | ส่งออก csv -path c:\users.csv -เข้ารหัส Unicode – ส่งออกผู้ใช้ไปยังไฟล์แยกต่างหาก

ฉันอยากจะใส่ใจเป็นพิเศษกับกุญแจ - การเข้ารหัส Unicode. ทำหน้าที่เพื่อให้แน่ใจว่าตัวอักษรซีริลลิกรัสเซียหลังจากส่งออกจาก AD สามารถแสดงได้อย่างถูกต้องในไฟล์ที่อัปโหลด ตัวอย่างเช่นผ่านทาง ไมโครซอฟต์ เอ็กเซลเราจะเห็น เครื่องหมายคำถามแทนตัวอักษรรัสเซีย

เมื่อดูไฟล์ ข้อมูลจะถูกส่งออกเป็นบรรทัดเดียว ดังนั้นจึงไม่สามารถอ่านได้ เพื่อเปลี่ยนแปลงสิ่งนี้ เราจำเป็นต้องทำสิ่งต่อไปนี้: