Modul PSWindowsUpdate untuk mengelola pembaruan Windows dari PowerShell

Sangat mudah untuk menggunakan modul PowerShell khusus untuk mengelola pembaruan Windows dari baris perintah - PSWindowsUpdate. Modul PSWindowsUpdate tidak dibangun ke dalam Windows dan merupakan modul pihak ketiga yang tersedia di Galeri Skrip Technet. PSWindowsUpdate memungkinkan administrator untuk memeriksa, menginstal, menghapus, dan menyembunyikan pembaruan tertentu di komputer dan workstation dari jarak jauh. Modul PSWindowsUpdate sangat berharga ketika digunakan untuk mengelola pembaruan dalam edisi Core Windows Server yang tidak memiliki antarmuka grafis, serta ketika menyiapkan gambar Windows dalam mode audit.

Konten:

  • Instal Modul Manajemen Pembaruan PSWindowsUpdate
  • Ikhtisar Perintah Modul PSWindowsUpdate
  • Mengelola Pembaruan Windows pada Komputer Jarak Jauh melalui PowerShell
  • Dapatkan daftar pembaruan Windows yang tersedia dari PowerShell
  • Install-WindowsUpdate: Instal pembaruan menggunakan PSWindowsUpdate
  • Get-WUHistory: Lihat riwayat pembaruan Windows yang diinstal
  • Remove-WindowsUpdate: Uninstall Updates
  • Sembunyikan-WindowsUpdate: cara menyembunyikan pembaruan yang tidak perlu menggunakan PowerShell

Instal Modul Manajemen Pembaruan PSWindowsUpdate

Jika Anda menggunakan Windows 10, Anda dapat menginstal modul PSWindowsUpdate dari repositori online melalui manajer paket PackageManagement dengan hanya satu perintah:

Instal-Modul -Nama PSWindowsUpdate

Dalam kasus saya, muncul peringatan bahwa PSWindowsUpdate 1.5.2.6 sudah diinstal. Untuk menginstal versi yang lebih baru, Anda perlu menjalankan perintah:

Install-Module -Name PSWindowsUpdate -Force

Setelah instalasi selesai, Anda perlu memeriksa paket:

Dapatkan-Paket -Nama PSWindowsUpdate

Jika Anda memiliki versi Windows yang lebih lama (Windows 7 / 8.1 / Windows Server 2008 R2 / 2012 R2) diinstal atau Anda tidak memiliki akses Internet langsung, Anda dapat menginstal modul PSWindowsUpdate secara manual.

Modul PSWindowsUpdate dapat diinstal pada versi Windows yang didukung mulai dari Vista / Windows Server 2008 dengan PowerShell 2.0 diinstal (tetapi disarankan PoSh 3.0 dan lebih tinggi).

  1. Unduh versi terbaru dari modul PSWindowsUpdate dari halaman: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc dan buka kunci file yang diunduh; perhatikan bahwa hanya versi lama modul yang tersedia di galeri skrip TechNet - v 1.5.6. Sementara manajer paket NuGet menginstal PSWindowsUpdate 2.1.1.2 dari PowershellGallery. Cmdlet dan parameter yang tersedia dapat bervariasi di berbagai versi modul..
  2. Buka zip arsip dengan modul ke salah satu direktori % USERPROFILE% \ Documents \ WindowsPowerShell \ Modul atau % WINDIR% \ System32 \ WindowsPowerShell \ v1.0 \ Modul (dengan penggunaan modul yang konstan, ini adalah pilihan terbaik);
  3. Izinkan skrip: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Tidak Terbatas -Force
  4. Sekarang Anda dapat mengimpor modul ke sesi PowerShell Anda: Impor-Modul PSWindowsUpdate Catatan. Di Windows 7 / Server 2008 R2, saat mengimpor modul PSWindowsUpdate, Anda mungkin mengalami kesalahan seperti: Nama "Unblock-File" tidak dikenali sebagai nama cmdlet. Faktanya adalah bahwa modul menggunakan beberapa fungsi yang hanya muncul di PowerShell 3.0. Untuk menggunakan fungsi-fungsi ini, Anda harus meningkatkan PowerShell, atau menghapus saluran secara manual | Buka blokir file dari file PSWindowsUpdate.psm1.

Setelah menginstal modul PSWindowsUpdate di komputer Anda, Anda dapat menginstalnya dari jarak jauh di komputer atau server lain menggunakan cmdlet Update-wumodule. Misalnya, untuk menyalin modul PSWindowsUpdate dari komputer Anda ke dua server jarak jauh, jalankan perintah (Anda perlu akses ke server jarak jauh melalui protokol SMB, port TCP 445):

$ Target = "Server1", "Server2"
Perbarui-WUModule -KomputerName $ Sasaran -Lokal

Untuk menyimpan modul ke direktori jaringan untuk impor modul lebih lanjut di komputer lain, lakukan:

Simpan-Modul -Nama PSWindowsUpdate -Path \\ fs01 \ ps \

Ikhtisar Perintah Modul PSWindowsUpdate

Daftar cmdlet modul yang tersedia dapat ditampilkan seperti ini:

dapatkan-perintah -module PSWindowsUpdate

Kami jelaskan secara singkat tujuan dari perintah-perintah modul:

  • Hapus-wujob - Gunakan Get-WUJob untuk menjalankan pekerjaan WUJob di penjadwal.
  • Unduh-WindowsUpdate (alias untuk Get-WindowsUpdate -Download) - dapatkan daftar pembaruan dan unduh;
  • Get-WUInstall, Install-WindowsUpdate (alias untuk Get-WindowsUpdate -Install) - instal pembaruan;
  • Sembunyikan-WindowsUpdate (alias untuk Get-WindowsUpdate -Sembunyikan: $ false) - sembunyikan pembaruan;
  • Copot-windowsupdate - hapus pembaruan menggunakan Use Remove-WindowsUpdate;
  • Tambah-WUServiceManager - mendaftarkan server pembaruan (Windows Update Service Manager) di komputer;
  • Aktifkan-Wuremoting - aktifkan aturan firewall yang memungkinkan penggunaan jarak jauh cmdlet PSWindowsUpdate;
  • Dapatkan-WindowsUpdate (Get-WUList) - menampilkan daftar pembaruan yang sesuai dengan kriteria yang ditentukan, memungkinkan Anda menemukan dan menginstal pembaruan yang diinginkan. Ini adalah cmdlet utama dari modul PSWindowsUpdate. Memungkinkan Anda mengunduh dan menginstal pembaruan dari server WSUS atau Pembaruan Microsoft. Memungkinkan Anda memilih kategori pembaruan, pembaruan spesifik, dan menentukan aturan untuk memulai ulang komputer saat memasang pembaruan;
  • Dapatkan-WUApiVersion - Dapatkan versi Agen Pemutakhiran Windows di komputer
  • Dapatkan-wuhistory - menampilkan daftar pembaruan yang diinstal (riwayat pembaruan);
  • Get-WUInstallerStatus - Memeriksa status layanan Pemasang Windows
  • Dapatkan-wujob - Jalankan pekerjaan pembaruan WUJob di Penjadwal Tugas
  • Dapatkan-WULastResults - tanggal pencarian terakhir dan pemasangan pembaruan (LastSearchSuccessDate dan LastInstallationSuccessDate);
  • Dapatkan-WURebootStatus - memungkinkan Anda untuk memeriksa apakah perlu reboot untuk menerapkan pembaruan tertentu;
  • Dapatkan-WUServiceManager - sumber pembaruan keluaran;
  • Dapatkan-wusettings - Dapatkan pengaturan klien Pembaruan Windows
  • Meminta-wujob - secara jarak jauh memanggil pekerjaan WUJobs di Task Schduler untuk segera menjalankan pekerjaan PSWindowsUpdate.
  • Hapus-WindowsUpdate - hapus instalan pembaruan;
  • Hapus-WUServiceManager - menonaktifkan Manajer Layanan Pembaruan Windows;
  • Set-pswusettings - simpan pengaturan modul PSWindowsUpdate ke file XML;
  • Set-wusettings - Konfigurasikan pengaturan klien Pembaruan Windows
  • Update-wumodule - perbarui modul PSWindowsUpdate (Anda dapat memperbarui modul pada komputer jarak jauh dengan menyalinnya dari yang sekarang, atau memperbarui dari PSGallery).

Mengelola Pembaruan Windows pada Komputer Jarak Jauh melalui PowerShell

Hampir semua cmdlet modul PSWindowsUpdate memungkinkan Anda untuk mengontrol pemasangan pembaruan pada komputer jarak jauh. Atribut digunakan untuk ini. -Host Computername1, Host2, Host3.

Untuk mengelola pembaruan di komputer jarak jauh, Anda perlu menambahkan namanya ke daftar host tepercaya winrm:

winrm set winrm / config / client '@ TrustedHosts = "HOST1, HOST2, ..."'

Instal modul PSWindowsUpdate pada komputer jarak jauh dan biarkan proses dllhost.exe mengakses port RPC dinamis di firewall.

Dapatkan daftar pembaruan Windows yang tersedia dari PowerShell

Anda dapat membuat daftar pembaruan yang tersedia untuk komputer ini di server pembaruan menggunakan perintah Get-WindowsUpdate atau Get-WUList.

Untuk memeriksa daftar pembaruan yang tersedia di komputer jarak jauh, lakukan:

Dapatkan-WUList -ComputerName server2

Anda dapat memeriksa dari mana OS Windows Anda harus menerima pembaruan. Jalankan perintah:

Dapatkan-WUServiceManager

ServiceID IsManaged IsDefault Nama --------- --------- --------- ---- 8b24b027-1dee-babb-9a95-3517dfb9c552 Penerbangan Penerbangan False False DCat Flighting Prod 855e8a7c -ecb4-4ca3-b045-1dfa50104289 False False Windows Store (DCat Prod) 3da21691-e39d-4da6-8a4b-b43877bcb1b7 Layanan Layanan True Windows Server Update Benar 9482f4b4-e343-43b6-b170-9a65bc822877 salah

Seperti yang Anda lihat, komputer dikonfigurasikan untuk menerima pembaruan dari server WSUS lokal (Layanan Pembaruan Server Windows = Benar). Dalam hal ini, Anda akan melihat daftar pembaruan yang disetujui untuk komputer Anda di WSUS.

Jika Anda ingin memindai komputer Anda di server Pembaruan Microsoft (selain pembaruan Windows, server ini berisi pembaruan Office dan produk lainnya) di Internet, jalankan perintah:

Dapatkan-WUlist -MicrosoftUpdate

Anda mendapat peringatan:

Get-WUlist: Layanan Pembaruan Windows tidak ditemukan di komputer

Untuk mengaktifkan pemindaian pada Pembaruan Microsoft, jalankan perintah:

Add-WUServiceManager -ServiceID "7971f918-a847-4430-9279-4a52d1efe18d" -AddServiceFlag 7

Sekarang Anda dapat memindai ke Pembaruan Microsoft. Seperti yang Anda lihat, dalam hal ini, pembaruan tambahan ditemukan untuk Microsoft Visual C ++ 2008 dan Microsoft Silverlight.

Untuk memeriksa versi Agen Pembaruan Windows di komputer, jalankan perintah:

Dapatkan-WUApiVersion

ComputerName PSWindowsPerbarui PSWUModuleDll ApiVersion WuapiDllVersion ------------ --------------- ------------- ----- ----- --------------- FS01 2.1.1.2 2.0.6995.28496 8.0 10.0.14393.2879

Untuk menghapus produk atau paket tertentu dari daftar pembaruan yang diterima komputer Anda, Anda dapat mengecualikannya dengan:

  • Kategori (-TidakKategori);
  • Nama (-NotTitle);
  • Perbarui Nomor (-NotKBArticleID).

Misalnya, kami mengecualikan dari daftar pembaruan driver, OneDrive dan satu KB tertentu:

Get-WUlist -NotCategory "Drivers" -NotTitle OneDrive -NotKBArticleID KB4533002

Install-WindowsUpdate: Instal pembaruan menggunakan PSWindowsUpdate

Untuk mengunduh dan menginstal semua pembaruan yang tersedia untuk Windows Anda secara otomatis, lakukan:

Instal-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Kunci AcceptAll memungkinkan persetujuan instalasi untuk semua paket, dan AutoReboot memungkinkan Windows untuk restart secara otomatis setelah menginstal pembaruan..

Anda dapat menyimpan riwayat menginstal pembaruan ke file log (dapat digunakan sebagai pengganti WindowsUpdate.log).

Instal-WindowsUpdate -AcceptAll -Install -AutoReboot | Keluar File "c: \ $ (get-date -f yyyy-MM-dd) -WindowsUpdate.log" -force

Hanya pembaruan spesifik berdasarkan nomor KB yang dapat diinstal:

Dapatkan-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Instal

Dalam hal ini, Anda perlu mengonfirmasi pemasangan setiap pembaruan secara manual.

Jika Anda ingin mengecualikan beberapa pembaruan dari daftar instalasi, lakukan:

Instal-WindowsUpdate -NotKategori "Drivers" -NotTitle OneDrive -NotKBArticleID KB4011670 -Terima Semua -IgnoreReboot

Modul ini memungkinkan Anda untuk mulai menginstal pembaruan dari jarak jauh di beberapa komputer atau server sekaligus (modul PSWindowsUpdate harus ada di komputer). Ini sangat nyaman karena memungkinkan administrator untuk tidak secara manual memasuki semua server selama instalasi pembaruan yang dijadwalkan. Perintah berikut akan menginstal semua pembaruan yang tersedia di tiga server jarak jauh:

Invoke-WUInstall -ComputerName server1, server2, server3 -Script ipmo PSWindowsUpdate; Dapatkan-WindowsUpdate -Instal -AcceptAll -AutoReboot | File C: \ Windows \ PSWindowsUpdate.log -Confirm: $ false -Verbose -SkipModuleTest -RunNow

Dalam modul PSWindowsUpdate 2.1, Anda harus menggunakan Invoke-WUJob alih-alih cmdlet Invoke-WUInstall. Cmdlet ini membuat pekerjaan scheduler di komputer jarak jauh yang berjalan dari SYSTEM.

Oleh karena itu, dalam versi baru modul untuk instalasi pembaruan jarak jauh, gunakan perintah berikut:

$ ServerNames = “server1, server2, server3”
Invoke-WUJob -ComputerName $ ServerNames -Script ipmo PSWindowsUpdate; Instal-WindowsUpdate -AcceptAll | File C: \ Windows \ PSWindowsUpdate.log -RunNow -Confirm: $ false

Anda dapat menginstal pembaruan di komputer jarak jauh dan mengirim laporan email ke administrator:

Instal-WindowsUpdate -KomputerName server1 -MicrosoftUpdate -AcceptAll - IgnoreReboot -SendReport -PSWUSettings @ SmtpServer = "smtp.winitpro.ru"; Dari = "[email protected]"; Ke = "[email protected]"; 25 -Verbose

Get-WUHistory: Lihat riwayat pembaruan Windows yang diinstal

Menggunakan perintah Dapatkan-wuhistory Anda bisa mendapatkan daftar pembaruan yang diinstal pada komputer sebelumnya secara otomatis atau manual.

Anda dapat memperoleh informasi tentang tanggal pemasangan pembaruan tertentu:

Get-WUHistory | Where-Object $ _. Judul -match "KB4517389" | Select-Object * | ft

Untuk mendapatkan informasi tentang pembaruan yang diinstal pada beberapa komputer jarak jauh, Anda dapat menggunakan kode berikut:

"server1", "server2" | Get-WUHistory | Where-Object $ _. Judul -match "KB4011634" | Select-Object * | ft

Remove-WindowsUpdate: Uninstall Updates

Untuk menghapus pembaruan dengan benar, gunakan cmdlet Hapus-WindowsUpdate. Anda hanya perlu menentukan nomor KB sebagai argumen ke parameter KBArticleID. Untuk menunda restart komputer otomatis, Anda dapat menambahkan kunci -NoRestart:

Hapus-WindowsUpdate -KBArticleID KB4011634 -NoRestart

Sembunyikan-WindowsUpdate: cara menyembunyikan pembaruan yang tidak perlu menggunakan PowerShell

Anda dapat menyembunyikan pembaruan tertentu sehingga tidak pernah diinstal oleh layanan Pembaruan Windows di komputer Anda (paling sering mereka menyembunyikan pembaruan driver). Misalnya, untuk menyembunyikan pembaruan KB2538243 dan KB4524570, jalankan perintah berikut:

$ HideList = "KB2538243", "KB4524570"
Dapatkan-WindowsUpdate -KBArticleID $ HideList -Sembunyikan

atau gunakan alias:

Hide-WindowsUpdate -KBArticleID $ HideList -Verbose

Sekarang, saat berikutnya Anda memindai pembaruan menggunakan perintah Dapatkan-WUlist pembaruan tersembunyi tidak akan muncul dalam daftar tambalan yang tersedia untuk instalasi.

Anda dapat mendaftar pembaruan yang disembunyikan di komputer ini seperti ini:

Dapatkan-WindowsUpdate -IsHidden

Harap perhatikan bahwa atribut H (Tersembunyi) telah muncul di kolom Status dari pembaruan tersembunyi.

Anda dapat membatalkan menyembunyikan beberapa pembaruan sebagai berikut:

Dapatkan-WindowsUpdate -KBArticleID $ HideList -WithHidden -Sembunyikan: $ false

atau lebih:

Show-WindowsUpdate -KBArticleID $ HideList

Bagi mereka yang merasa tidak nyaman di konsol PowerShell, saya dapat merekomendasikan utilitas grafis Windows Update MiniTool untuk mengelola pembaruan Windows 10.