Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Data publikacji: 14-07-2022 | Autor: | Bartosz Bielawski |
Dzięki sprawnemu zautomatyzowaniu wielu zadań i procesów w firmie można zaoszczędzić czas, pieniądze i zwiększyć produktywność. Wyjaśniamy, dlaczego automatyzacja jest tak ważna w obecnych czasach, a także co warto, a czego nie trzeba automatyzować.
Konfigurując WSUS z wykorzystaniem DSC, skorzystamy w głównej mierze z trzech modułów z zasobami. Przede wszystkim będzie to moduł UpdateServicesDsc, który obecnie oferowany jest w wersji 1.2.1. Drugi, który może okazać się przydatny, to moduł xWebAdministration, obecnie oferowany w wersji 3.3.0. Oprócz wymienionych zewnętrznych modułów skorzystamy z jednego wbudowanego – PSDesiredStateConfiguration – przyda się nam on w trakcie instalowania niezbędnych funkcji systemu Windows.
Wszystkie moduły zewnętrzne znajdziemy w PowerShell Gallery – możemy je z niej pobrać i zainstalować na komputerze, na którym tworzyć będziemy konfigurację:
Install-Module -Name UpdateServicesDsc -RequiredVersion 1.2.1 -Confirm:$false
Install-Module -Name xWebAdministration -RequiredVersion 3.3.0 -Confirm:$false
Oczywiście oba moduły muszą też się znaleźć na docelowym serwerze. Dystrybuowanie tego rodzaju modułów znacznie wykracza poza zakres tego artykułu, warto jednak wspomnieć, że będzie się ono różnić w zależności od tego, czy konfigurację przekazujemy do serwerów (tryb Push), czy serwery same pobierają ją z centralnego serwera (tryb Pull).
Wykorzystanie PowerShell DSC w konfiguracji serwera
Budowanie konfiguracji dla serwera WSUS zaczniemy od wbudowanego modułu PSDesiredStateConfiguration. Na początku musimy bowiem zainstalować wszystkie funkcje systemu Windows wymagane przez instalowany serwer. Ponieważ wszystkie pozostałe zasoby w naszej konfiguracji będą uzależnione od zainstalowania funkcji z gałęzi UpdateServices, informację o nich przechowamy też w zmiennej $wymaganeZasoby, która przyda nam się później:
$funkcje = @(
'Windows-Internal-Database'
'UpdateServices-WidDB'
'UpdateServices-Services'
'UpdateServices'
'UpdateServices-RSAT'
'UpdateServices-API'
)
$wymaganeZasoby = $funkcje.ForEach({"[WindowsFeature]$_"})
foreach ($funkcja in $funkcje){
WindowsFeature $funkcja {
Name = $funkcja
Ensure = 'Present'
}
}
Lista funkcji może zależeć od tego, czy zamierzamy dane przechowywać w Windows Internal Database (WID), czy planujemy korzystać z MS SQL. W naszym scenariuszu baza przechowywana będzie w WID. Zainstalowany serwer musimy skonfigurować. Posłuży nam do tego moduł UpdateServicesDsc, który oferuje kilka interesujących zasobów.
Nas interesować będą dwa spośród nich: UpdateServicesServer i UpdateServicesCleanup. Pierwszy pozwoli nam skonfigurować serwer WSUS według naszych potrzeb. Drugi stworzy specjalne zadanie zlecone, które zadba o porządek w informacji przechowywanej w bazie danych związanej z WSUS. Przykładowa konfiguracja wygląda następująco (wypada zwrócić uwagę na tworzenie zależności z poprzednio zainstalowanymi funkcjami):
UpdateServicesServer WsusConfig {
ContentDir = 'D:WsusContent'
UpdateImprovementProgram = $false
ProxyServerName = 'proxy.contoso.com'
ProxyServerPort = 8080
Languages = 'en'
Products = @('*')
Classifications = @(
'5c9376ab-8ce6-464a-b136-22113dd69801'
'e6cf1350-c01b-414d-a61f-263d14d133b4'
'e0789628-ce08-4437-be74-2495b842f43b'
(…)
)
SynchronizeAutomatically = $true
SynchronizeAutomaticallyTimeOfDay = '2:22:00'
SynchronizationsPerDay = 1
Synchronize = $true
ClientTargetingMode = 'Server'
Ensure = 'Present'
DependsOn = $wymaganeZasoby
}
UpdateServicesCleanup WsusCleanup {
DeclineSupersededUpdates = $true
DeclineExpiredUpdates = $true
CleanupObsoleteUpdates = $true
CompressUpdates = $true
CleanupObsoleteComputers = $true
CleanupUnneededContentFiles = $true
CleanupLocalPublishedContentFiles = $true
TimeOfDay = '22:00:00'
Ensure = 'Present'
DependsOn = $wymaganeZasoby
}
[...]
Autor zawodowo zajmuje się informatyką. Jest Microsoft MVP w dziedzinie PowerShella, blogerem oraz jednym z moderatorów forum dotyczącego skryptów w serwisie TechNet. Autor książki „Windows PowerShell 5.1 Biblia”.
Artykuł pochodzi z miesięcznika: IT Professional
Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.
Transmisje online zapewnia: StreamOnline