มาทำลายสิ่งนี้กันดีกว่า:
เข้าสู่ระบบล่าสุด
ไม่ได้จำลองแบบระหว่าง DCs - เป็นการประทับเวลาต่อ DC ที่ไม่ซ้ำกันสำหรับบัญชีนั้น ถ้าคอมพิวเตอร์ไม่เคยเข้าสู่ระบบ DC ที่ข้อความค้นหาของคุณถูกเรียกใช้ คุณสมบัตินั้นจะไม่ถูกเติมข้อมูล หากส่วนใหญ่เข้าสู่ระบบใน DC ที่แตกต่างกัน วันที่อาจไม่ถูกต้อง แต่ถ้าคุณต้องการทราบว่าคอมพิวเตอร์เข้าสู่ระบบ "เมื่อเร็วๆ นี้" ให้ค้นหาแทน LastLogonTimeStamp
หรือ วันที่เข้าสู่ระบบล่าสุด
- ดูหมายเหตุด้านล่าง
เมื่อคุณต้องการทำความเข้าใจว่าคิวรีกำลังทำอะไรอยู่ อย่าเพิ่งทิ้งทั้งหมดผ่านไปป์ไลน์และส่งออกเป็น CSV เว้นแต่คุณจะสนุกกับการไม่รู้ว่าเกิดอะไรขึ้นและเปิดไฟล์ CSV เปล่าๆ ให้รันคำสั่งง่ายๆ ก่อนเพื่อทำความเข้าใจผลลัพธ์ และตรวจสอบให้แน่ใจว่าคุณได้รับผลลัพธ์ที่ถูกต้องก่อนที่จะส่งออกไปยังไฟล์ ดูตัวอย่างด้านล่าง
หากสิ่งที่คุณต้องการคือ เข้าสู่ระบบล่าสุด
หรือ วันที่เข้าสู่ระบบล่าสุด
และชื่อคอมพิวเตอร์ โปรด ไม่ได้ใช้ -คุณสมบัติ *
. การสืบค้นของคุณจะใช้เวลานานกว่ามาก เนื่องจากคุณกำลังลากข้อมูลทั้งหมดในบัญชีคอมพิวเตอร์กลับคืน หากคุณมีใบรับรองที่จัดเก็บไว้ในวัตถุคอมพิวเตอร์ใน AD ข้อมูลนี้อาจเป็นข้อมูล KB สำหรับแต่ละวัตถุ หากคุณต้องการเพียงสองคุณสมบัติ ให้เลือกคุณสมบัติเหล่านี้: Get-ADComputer -filter '*' - ชื่อคุณสมบัติ LastlogonDate
. ตัวอย่างขนาดข้อมูลอยู่ด้านท้าย
LastLogonTimeStamp เทียบกับ LastLogonDate
ไม่เหมือน เข้าสู่ระบบล่าสุด
, LastLogonTimeStamp
เป็น ทำซ้ำใน DC ทั้งหมด แต่แม่นยำถึง 14 วันที่ผ่านมาเท่านั้น วันที่เข้าสู่ระบบล่าสุด
ก็เหมือนกับ LastLogonTimeStamp
แต่เป็นการคำนวณ [วันเวลา]
คุณสมบัติ (ไม่ได้เก็บไว้ใน LDAP แต่คำนวณเมื่อคุณสอบถาม) เนื่องจากเป็น [วันเวลา]
, จัดเรียงและกรองได้ง่ายขึ้น
ถ้า LastLogonTimeStamp
มีอายุไม่เกิน 14 วัน อาจมีวันที่ใหม่กว่านี้ เข้าสู่ระบบล่าสุด
สำหรับเครื่องนั้นบน DC อย่างน้อยหนึ่งตัว หากคุณต้องการเวลาที่แม่นยำกว่านี้ คุณจะต้องค้นหา DC ทั้งหมดสำหรับ เข้าสู่ระบบล่าสุด
ในบัญชีคอมพิวเตอร์ทั้งหมดแล้วเปรียบเทียบว่ามีวันที่ล่าสุด แต่สำหรับวัตถุประสงค์ในการรายงานทั่วไป เช่น หากคุณกำลังตรวจสอบบัญชีเครื่องที่อาจ "ล้าสมัย" วันที่เข้าสู่ระบบล่าสุด
เป็นเรื่องปกติ
อ้างถึง บทความนี้ สำหรับข้อมูลเพิ่มเติม
ทำความเข้าใจผลลัพธ์การค้นหา AD/LDAP
เมื่อคุณไม่แน่ใจว่าผลลัพธ์ของคุณออกมาเป็นอย่างไร อย่าส่งออกไปยังไฟล์ เพื่อทำความเข้าใจว่าคำสั่งของคุณกำลังทำอะไรอยู่ ให้ลองใช้ตัวกรองง่ายๆ แล้วปล่อยให้เอาต์พุตไปยังคอนโซล จากนั้นปรับแต่งแบบสอบถามตามต้องการ หากคุณต้องการประมวลผลข้อมูลหลังจากได้ผลลัพธ์แล้ว ให้ทำทีละขั้นตอนและตรวจสอบผลลัพธ์ก่อนที่จะเพิ่ม ฉันทำงานกับ Powershell มา 15 ปีแล้ว และฉันยังคงเริ่มต้นแบบนี้ ตรวจสอบสิ่งที่ออกมาก่อนทำขั้นตอนถัดไปเพื่อกรองและประมวลผลข้อมูล
ลองตัวอย่างต่อไปนี้ แทนที่ OU และชื่อคอมพิวเตอร์ด้วยชื่อที่ถูกต้องจากสภาพแวดล้อมของคุณอย่างเห็นได้ชัด (ยังไงก็ตาม อย่าเปิดเผยชื่อจริงในคำถามของคุณ)
# แสดงรายการคอมพิวเตอร์ทั้งหมดใน OU ที่มีคุณสมบัติเริ่มต้นที่เอาต์พุต Get-AdComputer - ไม่รวม LastLogonDate เป็นต้น
# เช่น. ชื่อ, ชื่อเฉพาะ, เปิดใช้งาน, objectype ฯลฯ ...
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net"
# แสดง -all- คุณสมบัติจากคอมพิวเตอร์ชื่อ "MyComputer"
Get-ADComputer -Filter 'name -eq "Mycomputer"' -Searchbase "OU=MyOUPath,DC=example,DC=net" -properties *
# แสดงเฉพาะคุณสมบัติเฉพาะจากคอมพิวเตอร์เครื่องเดียวกัน
Get-ADComputer -ตัวกรอง 'ชื่อ -eq "Mycomputer"' -Searchbase "OU=MyOUPath,DC=example,DC=net" -ชื่อคุณสมบัติ LastLogonDate
# แสดงรายการคอมพิวเตอร์ทั้งหมดใน OU พร้อมชื่อและ LastLogonDate เท่านั้น
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net" -ชื่อคุณสมบัติ LastLogonDate
# ดังข้างต้น โดยใช้นิพจน์เพื่อแปลงคุณสมบัติ LastLogon ที่ไม่ได้จำลองเป็น [วันที่และเวลา] แทน
# โปรดทราบว่าจำเป็นต้องมีการประมวลผลเพิ่มเติม หากคุณต้องการเปรียบเทียบวันที่นี้ระหว่าง DC หลายรายการ
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net" -ชื่อคุณสมบัติ LastLogon | เลือกชื่อ วันที่เข้าสู่ระบบ@{Name='LastLogon';Expression={[DateTime]::FromFileTime($_.LastLogon)}}
# หากผลลัพธ์ของคุณในคำสั่งก่อนหน้าดูดี ตอนนี้คุณสามารถจัดเรียงและส่งออกเป็น CSV
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net" -ชื่อคุณสมบัติ LastLogonDate | จัดเรียง LastLogonDate | เลือกชื่อ LastLogonDate | ส่งออก csv -เส้นทาง c:\Temp\ADComputer.csv -NoTypeInformation
สำหรับตัวอย่างสุดท้าย the เลือกชื่อ LastLogonDate
คือการยกเว้นคุณสมบัติเริ่มต้นเช่น ชื่อเด่น
และ objectClass
จากการส่งออก CSV นอกจากนี้หากคุณไม่ชอบวิธีการ วันที่เข้าสู่ระบบล่าสุด
ถูกจัดรูปแบบ คุณอาจต้องใส่นิพจน์เพื่อจัดรูปแบบด้วย (คล้ายกับการแปลงไฟล์ วันที่เข้าสู่ระบบ
เวลาไฟล์).
ขนาดข้อมูลแบบสอบถาม LDAP
รายการไฟล์ด้านล่างแสดงความแตกต่างของขนาดข้อมูลหากฉันส่งคืนเพียง ชื่อ
และ วันที่เข้าสู่ระบบล่าสุด
ของคอมพิวเตอร์เครื่องหนึ่งเป็น "comp1.txt" เทียบกับคุณสมบัติของคอมพิวเตอร์เครื่องเดียวกันทั้งหมดเป็น "comp2.txt" คูณด้วยจำนวนเครื่องที่มีการสืบค้น - เป็นเรื่องง่ายมากที่จะเห็นว่าเหตุใดการสืบค้นจึงใช้เวลานานกว่ามากเมื่อลากข้อมูลที่ไม่จำเป็นออกจาก AD และทั่วทั้งเครือข่าย
ชื่อโหมด LastWriteTime ความยาว
---- ------------- ------ ----
-a---- 2022-02-14 18:41 894 comp1.txt
-a---- 2022-02-14 18:42 69736 comp2.txt