ฉันจะค้นหาบัญชี Active Directory ใหม่ที่สร้างขึ้นใน 90 วันที่ผ่านมาได้อย่างไร
ไม่มีใครรู้ว่าใครที่จะทำเช่นนี้? ฉันคิดไม่ออก
ขอบคุณล่วงหน้า.
ฉันจะค้นหาบัญชี Active Directory ใหม่ที่สร้างขึ้นใน 90 วันที่ผ่านมาได้อย่างไร
ไม่มีใครรู้ว่าใครที่จะทำเช่นนี้? ฉันคิดไม่ออก
ขอบคุณล่วงหน้า.
คำตอบ:
สำหรับรุ่นหลัง dsquery ได้รับการออกแบบสำหรับการค้นหาประเภทนี้ โฆษณาจะเก็บฟิลด์ 'whenCreated' ซึ่งทำให้ง่ายต่อการค้นหาด้วยเครื่องมือที่คุณเลือก
dsquery * -filter "(เมื่อสร้าง> = 20101022083730.0Z)"
ตัวอย่างเช่น. คุณสามารถสร้างการจับเวลาตามโปรแกรมได้ในขณะนี้ - 90 วัน
ลองทำสิ่งต่อไปนี้เพื่อดึงผู้ใช้ที่สร้างขึ้นใน 30 วันที่ผ่านมา
Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
ทางเลือกแทนรุ่น Powershell ที่แสดงด้านบนซึ่งมีประสิทธิภาพมากกว่าเนื่องจากไม่โหลดผู้ใช้ทั้งหมดในหน่วยความจำก่อนกรองพวกเขา (คุณควรทำตัวกรองบน Get-ADUser cmdlet โดยตรงและไม่ใช้ Where-Object):
$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
การใช้ PowerShell และเครื่องมือ Quest ActiveRoles สำหรับโฆษณา (ดูได้ที่นี่ - http://www.quest.com/powershell/activeroles-server.aspx )
Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)
จะให้ผลลัพธ์กับคอนโซลหรือที่ใดก็ตามที่คุณเปลี่ยนเส้นทางของผู้ใช้ทั้งหมดที่สร้างขึ้นใน 90 วันที่ผ่านมา
นี่คือตัวอย่างจากไซต์อื่นของคนที่รับบัญชีโฆษณาทั้งหมดเรียงตามวันที่สร้าง:
http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html
คุณสามารถรับวันที่สร้างสำหรับแต่ละบัญชีจาก Active Directory วัตถุโฆษณาทุกชิ้นมีคุณสมบัติ WhenCreated และ WhenChanged คุณสามารถดัมพ์แอ็ตทริบิวต์เหล่านี้เป็นไฟล์ flat โดยใช้ยูทิลิตี้ LDIFDE หรือคุณสามารถดัมพ์แอ็ตทริบิวต์เหล่านี้ลงในไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคโดยใช้ CSVDE (ยูทิลิตี้ทั้งสองมาพร้อมกับ Windows 2000)
นี่คือไวยากรณ์ในการถ่ายโอนแอตทริบิวต์ทั้งสองสำหรับวัตถุผู้ใช้ใน OU ชื่อ Phoenix ในโดเมนชื่อ Company.com ไปยังคอนโซลเพื่อดู (รายการทั้งหมดควรพิมพ์เป็นบรรทัดเดียว):
ldifde -d ou = phoenix, dc = company, dc = com -l whencreated, whenchanged -p onelevel -r "(ObjectCategory = ผู้ใช้)" -f
หากคุณต้องการบันทึกดัมพ์เป็นไฟล์ให้เปลี่ยนสวิตช์ -f จาก con เป็นชื่อไฟล์
การประทับเวลาการเข้าสู่ระบบครั้งสุดท้ายใช้รูปแบบนี้: YYYYMMDDHHMMSS โดยมีชั่วโมงแสดงในเวลาสากลเชิงพิกัด เวลาประทับของ 20040115182937.0Z สอดคล้องกับ 15 มกราคม 2547 18:29:37 UCT
USRSTAT ช้าและรายงานที่คุณได้รับจะต้องถูกรวมเข้ากับการถ่ายโอนข้อมูล LDIFDE ดังนั้นฉันจึงรวบรวมสคริปต์ที่ค้นหาวัตถุผู้ใช้ในแต่ละโดเมนคอนโทรลเลอร์จากนั้นแสดงรายการเวลาเข้าสู่ระบบในเครื่องและเวลาสร้าง เวลาเข้าสู่ระบบของผู้ใช้ต้องการการแปลงจากจำนวนเต็มแบบยาว ฉันยืมรหัสการแปลงมาจาก Richard L. Mueller (www.rlmueller.net/Programs) สคริปต์เต็มรูปแบบของ Richard ยังใช้เวลาท้องถิ่นจาก Registry และแปลงเวลาจาก UCT เป็นเวลาท้องถิ่น ดี
จริงๆแล้วคำตอบทั้งหมดเหล่านี้จะไม่ทำงานสำหรับสภาพแวดล้อมการโฆษณาขนาดใหญ่ที่ผลิต
คำตอบคือใช้ DirSync: https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window
นี่คือการใช้งานจาวาของสิ่งนี้: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html
โดยทั่วไปคุณขอให้ AD เปลี่ยนแปลงอย่างต่อเนื่องโดยใช้โทเค็นที่เพิ่มขึ้น
"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"
เพื่อกรองคอมพิวเตอร์และวัตถุอื่น ๆ