PowerShell: ดึงรายการคอมพิวเตอร์โดเมนตามระบบปฏิบัติการ
ในฐานะผู้ดูแลระบบ คุณควรมีภาพรวมของสภาพแวดล้อม Active Directory ของคุณ แน่นอนว่ายังรวมถึงบัญชีผู้ใช้และบัญชีคอมพิวเตอร์ด้วย ในบล็อกโพสต์นี้ ฉันจะดำเนินการคำสั่ง PowerShell เพื่อรับรายการคอมพิวเตอร์โดเมนที่ถูกกรองตามระบบปฏิบัติการ ฉันจะดึงข้อมูลเซิร์ฟเวอร์ Windows, ไคลเอนต์ Windows และตัวควบคุมโดเมนที่เปิดใช้งานทั้งหมดอย่างต่อเนื่อง และแสดงแยกกัน สุดท้ายฉันจะสอบถามคอมพิวเตอร์โดเมนทั้งหมดและจัดเรียงตามระบบปฏิบัติการ ไปกันเถอะ.
ฉันจะใช้ PowerShell หากคุณต้องการเข้าร่วม ให้เปิด PowerShell (powershell.exe) หรือ PowerShell ISE (ise.exe)
ดึงข้อมูลคอมพิวเตอร์เซิร์ฟเวอร์ Windows ทั้งหมด
ในการดึงข้อมูลเซิร์ฟเวอร์ Windows ที่เปิดใช้งานทั้งหมดโดยเรียงตามระบบปฏิบัติการ เราจำเป็นต้องกำหนดเป้าหมายแอตทริบิวต์ระบบปฏิบัติการ
Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address
ดึงข้อมูลคอมพิวเตอร์ไคลเอนต์ Windows ทั้งหมด
คอมพิวเตอร์ไคลเอนต์ Windows ไม่มีเซิร์ฟเวอร์คำในแอตทริบิวต์ของระบบปฏิบัติการ ดังนั้นเราจึงเปลี่ยนโค้ดด้านบนและตั้งค่าแบบสอบถามระบบปฏิบัติการเป็น -notlike server
Get-ADComputer -Filter 'operatingsystem -notlike "*server*" -and enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address
ดึงข้อมูล Domain-Controllers ทั้งหมด (ไม่มี Member-Server)
เพื่อแสดง Domain-Controllers ทั้งหมด ฉันจึงตัดสินใจกำหนดเป้าหมายไปที่การเป็นสมาชิกกลุ่มบัญชีคอมพิวเตอร์ Domain-Controllers ทั้งหมดเป็นสมาชิกของกลุ่ม Domain-Controllers ซึ่ง ID คือ 516
Get-ADComputer -Filter 'primarygroupid -eq "516"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address
ดึงข้อมูล Member-Server ทั้งหมด
เมื่อต้องการดึงข้อมูลเซิร์ฟเวอร์ทั้งหมดที่ไม่ใช่ตัวควบคุมโดเมน ให้เรียกใช้รหัสต่อไปนี้
Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true" -and primarygroupid -ne "516"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address
ดึงข้อมูลคอมพิวเตอร์ทั้งหมดเรียงตามระบบปฏิบัติการ
สุดท้ายแต่ไม่ท้ายสุด เราจะดึงข้อมูลคอมพิวเตอร์โดเมนทั้งหมดโดยการเรียกใช้โค้ดต่อไปนี้
Get-ADComputer -Filter 'enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address
ปรับแต่งเอาท์พุต
เพื่อมุมมองที่ดีกว่าคุณสามารถเพิ่ม Out-Gridview ในตอนท้ายได้ จะเป็นการเปิดหน้าต่างกราฟิก หรือคุณต้องการบันทึกผลลัพธ์เป็นไฟล์ Out-File หรือ ConvertTo-HTML ก็สามารถช่วยได้
Out-GridView
Get-ADComputer -Filter 'enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Out-GridView
แปลงเป็น Html | ออกไฟล์
หากคุณต้องการบันทึกเอาต์พุตเป็นไฟล์ซึ่งมีความแม่นยำมากขึ้นในไฟล์ HTML คุณสามารถใช้ ConverToHtml ร่วมกับ Out-File
Get-ADComputer -Filter 'enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
ConvertTo-Html | Out-File C:\Temp\listcomputer.htm
ฉันหวังว่าฉันจะสามารถช่วยคนใดคนหนึ่งในการรับเอกสารเกี่ยวกับเครือข่ายของเขาได้ โดยเฉพาะเครือข่าย Active Directory






