รีสตาร์ทคอมพิวเตอร์ทั้งหมดใน OU ที่ระบุ
เมื่อเร็วๆ นี้ฉันได้รับคำขอให้ปิดคอมพิวเตอร์ทีละห้อง โดยเฉพาะเป็นเรื่องเกี่ยวกับโรงเรียนที่นักเรียนมักลืมปิดคอมพิวเตอร์ แน่นอนว่าสิ่งนี้เป็นไปได้ด้วย PowerShell มีอะไรอีกบ้าง?
เป้าหมาย
ก่อนอื่นเราต้องดึงข้อมูลหน่วยองค์กรทั้งหมด ไม่ใช่แค่พ่อแม่เท่านั้น แต่ยังรวมถึงลูกด้วย ฉันชอบที่มันใช้งานง่ายด้วย Out-GridView
$room=Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=Clients,OU=Workstations,DC=sid-500,DC=com' -SearchScope OneLevel | Select-Object DistinguishedName | Out-GridView -PassThru -Title 'Select Computers OU to restart all Computers in that OU'
สังเกตคำสั่ง Out-GridView หลังไปป์ สิ่งนี้ทำให้เราสามารถเลือก OU ในรูปแบบอินเทอร์เฟซแบบกราฟิกได้
หลังจากเลือก OU แล้ว คลิกตกลง คอมพิวเตอร์ทุกเครื่องใน OU นั้นจะถูกปิดระบบ
รหัส
โปรดทราบว่าคุณต้องปรับ บรรทัดที่ 1 ด้วยโครงสร้าง OU ของคุณ ตามที่เห็นสมควร
$room=Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=Workstations,DC=sid-500,DC=com' -SearchScope OneLevel | Select-Object DistinguishedName | Out-GridView -PassThru -Title 'Select Computers OU to restart all Computers in that OU'
$comp=(Get-ADComputer -SearchBase $room.distinguishedname -Filter *).Name
Foreach ($c in $comp)
{Restart-Computer -ComputerName $c -ErrorAction SilentlyContinue -Force -Verbose}
แค่นั้นแหละ. ระบบอัตโนมัติเสร็จสมบูรณ์
