Prześlij zatwierdzone aktualizacje między grupami WSUS

Jeśli instalujesz aktualizacje Microsoft na komputerach i serwerach firmowych z własnego serwera WSUS, prawdopodobnie przetestujesz je na komputerach pilotowych lub serwerach przed zainstalowaniem aktualizacji (możesz dystrybuować komputery i serwery do różnych grup WSUS za pomocą GPO). Jak pokazuje praktyka ostatnich lat, nie można pozostawić programu WSUS skonfigurowanego do automatycznego zatwierdzania wszystkich nowych aktualizacji natychmiast w systemach produkcyjnych (Microsoft wydaje wiele nieprzetworzonych i niedostatecznie przetestowanych aktualizacji).

Na serwerze WSUS można zorganizować kilka różnych grup aktualizacji. Klasyczny schemat zatwierdzania nowych aktualizacji na serwerze WSUS sprowadza się do testowania ich najpierw na testowych grupach komputerów i serwerów (na przykład Workstation_Test i Servers_Test), w których reguły automatycznego zatwierdzania wszystkich nowych aktualizacji krytycznych i aktualizacji bezpieczeństwa zostały utworzone w ustawieniach WSUS (WSUS -> Opcje -> Automatyczne zatwierdzanie -> Domyślna reguła automatycznego zatwierdzania).

Po zainstalowaniu nowych aktualizacji w grupie testowej i otrzymaniu potwierdzenia, że ​​aktualizacje nie spowodowały problemów dla użytkowników (zwykle testowanie trwa 3-4 dni), konieczne jest zatwierdzenie nowych aktualizacji do zainstalowania w grupach produkcyjnych. Ale jak to zrobić, aby nie trzeba było ręcznie wybierać nowych aktualizacji i zatwierdzać ich instalacji na wszystkich komputerach i serwerach? Pokażę dwa dość proste sposoby migracji zatwierdzonych aktualizacji z grup testowych WSUS do produktywnych..

Treść

  • Jak przenieść zatwierdzone aktualizacje do konsoli WSUS
  • Skopiuj zatwierdzone aktualizacje między grupami WSUS za pomocą PowerShell

Jak przenieść zatwierdzone aktualizacje do konsoli WSUS

Możesz wygodnie ręcznie ręcznie zatwierdzić aktualizacje z grupy testowej WSUS do produktywnej grupy komputerów / serwerów. Aby to zrobić, musisz poprawnie skonfigurować konsolę Update Services.

W sekcji Aktualizacje musisz utworzyć nowy widok dla zatwierdzonych aktualizacji grupy testowej. Aby to zrobić, wybierz element menu Nowy widok aktualizacji.

W otwartym kreatorze wybierz „Aktualizacje są zatwierdzone dla określonej grupy”(Zatwierdzenia zatwierdzone dla określonej grupy) i podaj nazwę grupy testowej WSUS (test stacji roboczej). Wpisz nazwę nowego widoku.

Wybierz utworzony widok, a następnie w menu filtrów wybierz Zatwierdzenie= „Zatwierdzony” i Status= „Dowolny”. Klikając nagłówek tabeli, dodaj kolumnę wskazującą datę wydania aktualizacji (Data wydania) Klikając nazwę kolumny, posortuj listę aktualizacji, aby nowe aktualizacje pojawiały się u góry.

Jak widać, teraz na liście można łatwo znaleźć nowe aktualizacje i sprawdzić stan ich instalacji. Używając klawiszy Shift i / lub Ctrl, możesz wybrać wszystkie niezbędne aktualizacje, które muszą zostać zatwierdzone w systemach produkcyjnych, wywołać menu kontekstowe prawym przyciskiem myszy i wybrać Zatwierdź. Z listy grup WSUS wybierz grupy produkcyjne, dla których chcesz zatwierdzić podświetlone aktualizacje i wybierz Zatwierdzony do instalacji.

Teraz nowe aktualizacje zostaną zainstalowane w systemach produkcyjnych..

Skopiuj zatwierdzone aktualizacje między grupami WSUS za pomocą PowerShell

W przypadku posiadania wielu grup aktualizacji na serwerze WSUS, transfer zatwierdzonych aktualizacji z grup testowych do produktywnych można zautomatyzować za pomocą PowerShell. Mam skrypt, w którym muszę podać nazwę FQDN serwera WSUS i nazwę grup, między którymi chcę skopiować zatwierdzone aktualizacje.

$ WsusServerFqdn = 'msk-wsus.winitpro.loc'
$ WsusSourceGroup = 'Workstation_Test'
$ WsusTargetGroup = 'WorkstationProduction'

[void] [reflection.assembly] :: LoadWithPartialName („Microsoft.UpdateServices.Administration”)
$ wsus = [Microsoft.UpdateServices.Administration.AdminProxy] :: getUpdateServer ($ WsusServerFqdn, $ False, '8530')
$ Groups = $ wsus.GetComputerTargetGroups ()
$ WsusSourceGroupObj = $ Grupy | Gdzie $ _. Nazwa -eq $ WsusSourceGroup
$ WsusTargetGroupObj = $ Grupy | Gdzie $ _. Nazwa -eq $ WsusTargetGroup

$ Updates = $ wsus.GetUpdates ()
$ i = 0
ForEach (aktualizacja $ w aktualizacjach $)

if ($ Update.GetUpdateApprovals ($ WsusSourceGroupObj) .Count -ne 0 - i $ Update.GetUpdateApprovals ($ WsusTargetGroupObj) .Count -eq 0)

$ i ++
Host zapisu („Zatwierdzanie” + $ Update.Title)
$ Update.Approve („Zainstaluj”, $ WsusTargetGroupObj) | Out-null


Zapis-wyjście („Zatwierdzone aktualizacje 0 dla grupy docelowej 1” -f $ i, $ WsusTargetGroup)

Ten skrypt PowerShell sekwencyjnie iteruje wszystkie zatwierdzone aktualizacje w źródłowej grupie WSUS i, jeśli aktualizacja nie zostanie zatwierdzona w grupie docelowej, zatwierdza jej instalację. W tym przykładzie skrypt zatwierdził 64 aktualizacje, które zostały zatwierdzone w grupie testowej i nie były produktywne.