Sayangnya Get-GPO
cmdlet hanya bisa mendapatkan GPO dari domain; tampaknya tidak ada yang dikelola setara dengan metode COM IGroupPolicyObject::OpenLocalMachineGPO
. Ada beberapa cara lain untuk mengatur ini. Dengan asumsi Kebijakan Grup yang ada belum menentukan pengaturan kebijakan ini, mengubah Registry secara langsung akan berfungsi dengan baik:
$hklm = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Default')
$wu = $hklm.CreateSubKey('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU')
$wu.SetValue('NoAutoUpdate', 0, 'DWord')
$wu.SetValue('AUOptions', 4, 'DWord')
$wu.SetValue('ScheduledInstallDay', 7, 'DWord')
$wu.SetValue('ScheduledInstallTime', 0, 'DWord')
$wu.Dispose()
$hklm.Dispose()
Ini tidak akan memengaruhi apa yang Anda lihat di Penyunting Kebijakan Grup Lokal, tetapi akan dilihat oleh infrastruktur Pembaruan Windows. Karena Anda tidak mengatakan jam berapa pembaruan harus diinstal, saya mengaturnya menjadi tengah malam. Anda dapat mengubahnya dengan mengubah ScheduledInstallTime
nilai.
Untuk menentukan pengaturan Registry apa yang sesuai dengan kebijakan yang diberikan, Anda dapat menggunakan alat Element Inspector di aplikasi open-source saya Kebijakan Plus . Berbicara tentang Policy Plus, Anda juga dapat memuatnya sebagai perakitan dari PowerShell untuk mengedit GPO lokal. Pertama, unduh itu dan gunakan tab Properties di Explorer untuk "membuka blokir" itu; ini memungkinkan .NET memuatnya ke proses lain. Kemudian letakkan di direktori yang sama dengan skrip ini:
[System.Reflection.Assembly]::LoadFile((gi '.\Policy Plus.exe').FullName) | Out-Null
$loader = [PolicyPlus.PolicyLoader]::new('LocalGpo', '', $false)
$pol = $loader.OpenSource()
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'NoAutoUpdate', 0, 'DWord')
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'AUOptions', 4, 'DWord')
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'ScheduledInstallDay', 7, 'DWord')
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'ScheduledInstallTime', 0, 'DWord')
$loader.Save()
$loader.Close()
Ini mengambil keuntungan dari Policy Plus PolicyLoader
dan PolFile
kelas. Ketika skrip selesai, Anda akan melihat output ini (karena dua panggilan terakhir):
saved to disk and invoked policy refresh
True
Dengan cara ini, perubahan akan dapat dilihat di Editor Kebijakan Grup Lokal dan infrastruktur Kebijakan Grup normal akan menerapkannya ke Registry.