ค้นหาเว็บไซต์

การจัดการนโยบายกลุ่ม (GPO) ใน Active Directory ด้วย PowerShell


เครื่องมือหลักในการจัดการ Group Policy Objects (GPO) ในโดเมน Active Directory คือกราฟิก Group Policy Management Console (

GPMC.msc

). ในการทำให้เป็นอัตโนมัติและปรับปรุงประสิทธิภาพของงานการจัดการ GPO บางอย่างใน Active Directory คุณสามารถใช้ PowerShell ซึ่งมีคุณลักษณะการจัดการ GPO หลายอย่าง

จะติดตั้งโมดูล PowerShell การจัดการนโยบายกลุ่มได้อย่างไร

ในการจัดการโดเมน GPO จะต้องติดตั้งโมดูล GroupPolicy ในคอมพิวเตอร์ของคุณ โมดูลนี้มีให้ใช้งานบน Windows Server หลังจากติดตั้งคุณสมบัติการจัดการนโยบายกลุ่ม คุณใช้คุณลักษณะนี้ได้โดยใช้คอนโซลตัวจัดการเซิร์ฟเวอร์หรือด้วย PowerShell:

Install-WindowsFeature GPMC -IncludeManagementTools

หากคุณต้องการจัดการ GPO จากเวิร์กสเตชันที่ใช้เดสก์ท็อปรุ่น Windows 10 หรือ 11 ให้ติดตั้งโมดูล Group Policy ผ่าน RSAT:

Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0

คุณสามารถแสดงรายการ PowerShell cmdlets ทั้งหมดในโมดูล GroupPolicy โดยใช้คำสั่ง:

Get-Command -Module GroupPolicy

เมื่อใช้โมดูล GroupPolicy PowerShell คุณสามารถ:

  • สร้างและลบ GPO;

  • ลิงก์/ยกเลิกการลิงก์ GPO ไปยัง/จาก OU

  • สำรองและกู้คืน GPO;

  • ตั้งค่าสิทธิ์ GPO หรือกำหนดค่าการสืบทอด

การสร้างและจัดการ GPO ด้วย PowerShell

มาดูงานการดูแลระบบทั่วไปที่คุณสามารถใช้ PowerShell เพื่อจัดการ Group Policies ได้

หากต้องการสร้าง GPO เปล่าใหม่ ให้ใช้คำสั่งนี้:

New-GPO -Name munTestGPO -Comment "My First GPO with PowerShell"

หากมีการสร้าง GPO เริ่มต้นในโดเมนของคุณ คุณสามารถสร้าง Group Policy ใหม่ได้โดยใช้หนึ่งในเทมเพลต (เช่น การตั้งค่า Security Baseline บางอย่าง):

New-GPO -Name munTestGPO2 -StarterGPOName "Windows 10 Security Baseline"

ใช้ cmdlet GPLink ใหม่ เพื่อเชื่อมโยงวัตถุ Group Policy กับ OU:

Get-GPO munTestGPO | New-GPLink -Target "ou=test,ou=munich,dc=a-d,dc=com"

หากต้องการยกเลิกการลิงก์ GPO จาก OU:

Remove-GPLink -Name munTestGPO -Target "ou=test,ou=munich,dc=a-d,dc=com"

หากคุณต้องการปิดใช้งาน GPO โดยไม่ลบลิงก์ ให้ใช้ cmdlet Set-GPLink:

Set-GPLink -name munTestGPO -Target "ou=test,ou=munich,dc=a-d,dc=com" -linkenabled no

GPO จะไม่ใช้กับ OU อีกต่อไป แต่ยังคงเชื่อมโยงอยู่

หากคุณต้องการบังคับใช้ GPO ให้เพิ่มตัวเลือก -บังคับใช้ใช่

PowerShell one-liner ต่อไปนี้จะสร้าง GPO ใหม่เพื่อเปลี่ยนพารามิเตอร์รีจิสทรี (ปิดใช้งานการอัปเดตโปรแกรมควบคุมอัตโนมัติ) จำกัดนโยบายเฉพาะกลุ่มความปลอดภัยเฉพาะ และเชื่อมโยงกับหน่วยองค์กร:

$key = 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching'
New-GPO 'munDisableDriverUpdate' | Set-GPRegistryValue -Key $key `
-ValueName 'SearchOrderConfig' -Type DWORD -Value 0 | Set-GPPermissions -Replace `
-PermissionLevel None -TargetName 'Authenticated Users' -TargetType group | `
Set-GPPermissions -PermissionLevel gpoapply -TargetName 'mun_admins' `
-TargetType group | New-GPLink -Target "ou=test,ou=munich,dc=a-d,dc=com" -Order 1

โมดูล PowerShell ไม่อนุญาตให้คุณเปลี่ยนค่าของตัวเลือก GPO จากเทมเพลตการจัดการ GPO (ADMX) คุณสามารถแก้ไขการตั้งค่ารีจิสทรีที่ใช้งานผ่านการตั้งค่านโยบายกลุ่มเท่านั้น

คุณสามารถใช้ cmdlet รับ GPO เพื่อแสดงข้อมูลเกี่ยวกับ GPO เฉพาะหรือนโยบายทั้งหมดในโดเมนของคุณ cmdlet ส่งคืน GUID ของนโยบาย (มักจำเป็นในการวินิจฉัยแอปพลิเคชันของ GPO หรือแก้ไขปัญหาการจำลองแบบ GPO เมื่อตรวจสอบสภาพของ Active Directory) เวลาในการสร้าง/แก้ไข GPO และตัวกรอง WMI ของ GPO ที่นำไปใช้

Get-GPO -Domain a-d.site -All

คุณสามารถแสดงการตั้งค่าของตัวกรอง WMI ที่เชื่อมโยงกับ GPO (แต่คุณจะไม่สามารถเปลี่ยนการตั้งค่าตัวกรองได้):

(Get-GPO munWin10Settings).WmiFilter

หากต้องการอัปเดตการตั้งค่า Group Policy บนคอมพิวเตอร์ระยะไกล จะใช้ cmdlet Invoke-GPUpdate คุณสามารถอัปเดต GPO บนคอมพิวเตอร์เครื่องใดเครื่องหนึ่งได้:

Invoke-GPUpdate -Computer "corp\wks-mn0223" -Target "User"

หรือในคอมพิวเตอร์ทุกเครื่องใน OU:

Get-ADComputer -filter * -Searchbase "ou=Computes,OU=MUNICH,dc=a-d,dc=com" | foreach{ Invoke-GPUpdate -computer $_.name -force}

cmdlet Get-GPOReport ใช้เพื่อรับรายงาน HTML/XML พร้อมการตั้งค่านโยบาย:

Get-GPOReport -name mun-BitlockerEncryption -ReportType HTML -Path "C:\ps\bitlocker_policy.html"

ในกรณีนี้ เราได้แสดงการตั้งค่าทั้งหมดของนโยบายสำหรับการบันทึกคีย์ BitLocker ใน AD โดยอัตโนมัติ

cmdlet Get-GPResultantSetofPolicy ช่วยให้คุณสร้างรายงานผลลัพธ์ (RSoP — ชุดนโยบายผลลัพธ์) บนนโยบายกลุ่มที่ใช้กับผู้ใช้และ/หรือคอมพิวเตอร์ที่ระบุ รายงานนี้ดูเหมือนรายงาน HTML ที่สร้างขึ้นโดยใช้เครื่องมือ gpresult (

GPResult /h c:\ps\gp-report.html /f

). cmdlet อนุญาตให้รับรายงาน GPO ที่เป็นผลลัพธ์จากคอมพิวเตอร์ระยะไกล:

Get-GPResultantSetOfPolicy -user m.muller -computer corp\wks-mn0223 -reporttype html -path c:\ps\gp_rsop_report.html

จะสำรองและกู้คืน GPO โดยใช้ PowerShell ได้อย่างไร

เมื่อใช้ PowerShell คุณสามารถสำรองและกู้คืน GPO ในโดเมน Active Directory ของคุณได้

ในการสำรองข้อมูลวัตถุนโยบายกลุ่มทั้งหมดไปยังโฟลเดอร์ที่ระบุ:

Backup-GPO -All -Path C:\Backup\GPOs\

หรือหนึ่ง GPO เท่านั้น:

Backup-GPO -Name munWin10Settings -Path C:\Backup\GPOs -Comment "Backup GPO with PowerShell 2022/28/03"

ในการกู้คืน GPO จะใช้คำสั่งต่อไปนี้:

Restore-GPO -Name munWin10Settings -Path C:\Backup\GPOs\

คุณสามารถเก็บเวอร์ชันสำรองของ GPO บางเวอร์ชันไว้ในโฟลเดอร์เดียว หากต้องการกู้คืนเวอร์ชัน GPO เฉพาะ คุณต้องระบุ ID สำรอง (ตัวระบุ 32 บิต):

Restore-GPO -Path ″C:\GPO Backups″ -BackupID 7654321-4321-4321-CCC-1234567890

บทความที่เกี่ยวข้อง