Att utveckla en Lapp Rollout Plan Med PowerShell

0
29

Image credit: dotshock/Shutterstock

Automatisera processen för att rulla ut patchar för att spara tid och energi.

Distribuera patchar är en uppgift som många IT-administratörer måste utstå varje månad. Det finns många kommersiella verktyg för att underlätta denna process, men vissa är dyra, uppsvälld eller overkill för enkel lapp om att ett mindre företag kan behöva.

Med hjälp av PowerShell kan vi utveckla en lapp utbyggnad strategi och automatisera processen – precis som de stora verktyg – med lite mer än lite svett kapital och tid.

Förutsättningar

För att säkerställa att du kan börja med allt konfigureras som behövs, behöver du ett par saker. Du måste först PowerShell. Vi kommer att använda Windows PowerShell 5.1. Jag antar att du redan har fått PowerShell Remoting tillgänglig på alla dina kunder, du har lämpliga rättigheter för att fråga och installera patchar på system, du är i en Active Directory-miljö, och du har fått med Remote Server Administration Tools-paketet installerat.

Att upptäcka miljön och testning

För att säkerställa att vi testa några av de mest betydande och mest tillämpliga urval av datorer i våra nätverk, vi måste först identifiera vilka system som är ute. Plocka olika konfigurationer för att testa, till exempel Windows-inställningar och program installerat på flera datorer är en organisatorisk val, men typiskt, vi kommer behöva för att hitta alla operativsystem vi måste se till att fläckar inte bryta dessa system när distribuerats till alla system.

Vi kan använda PowerShell för att fråga vår Active Directory-miljö för att återställa alla grupper av datorer med ett visst operativsystem. Till exempel, nedan kod kommer tillbaka två prov system av operativsystem på alla dina Active Directory-datorer.

Produktionen kommer att se ut så här:

Nu när jag har identifierat olika operativsystem, kan jag antingen P2V maskiner eller kanske bygga nya virtuella maskiner i din övervakare av val. Detta kan göras med PowerShell men ligger utanför ramen för denna artikel, så vi får anta att du har att hanteras.

Distribuera uppdateringar

När du har fått ditt test system definieras, kommer du behöver för att distribuera patchar. Men först, vilka patchar som ska sättas in? Det finns ett par sätt att göra detta som ligger utanför ramen för denna artikel, till exempel tittar på en befintlig WSUS server eller använder Get-LatestUpdate PowerShell script, men jag lämnar det till dig.

Att distribuera patchar, ett sätt att göra det hända med PowerShell är att använda ett förkompilerat community modul som kallas PSWindowsUpdate som hanterar de allra flesta uppgifter som du måste ta itu med. Du kan installera denna modul genom att använda Installera-Modul PSWindowsUpdate.

Den PSWindowsUpdate modul kräver att RPC-anslutning till varje remote system som ibland blockeras som standard på Windows brandväggar. Du kan öppna denna med ett GRUPPRINCIPOBJEKT eller liknande system management verktyg, men eftersom vi är i PowerShell kan vi lika gärna gå vidare och göra det också. Du kommer att behöva köra detta kommando på varje remote system som du avser att korrigera.

För att säkerställa PSWindowsUpdate verktyg kan få tillgång till en avlägsen system, jag använder ett enkelt kommando som Få-WUHistory för att se om den returnerar ett fel. Om det returnerar patch historia, du är bra att gå!

Vi kan nu använda våra fläckar. För denna artikel har jag upptäckt att jag behöver för att testa patch KB4091664. Jag kan distribuerar denna korrigeringsfil till alla mina prov grupper genom att först kopiera modul för att varje system och sedan kör Install-WindowsUpdate mot varje system för att ange KB-jag skulle vilja att installera och även schemaläggning omstart för två timmar från det att plåstret sätts in.

Detta kommer att starta installation av korrigeringen på varje dator. För att övervaka framsteg, kan vi använda Get-WUHistory kommando. Nedan ser du ett exempel på utmatning där en av mina maskiner har startat installationen.

Wrap up

Testa patchar innan produktionen är en nödvändig uppgift, men kan vara risk för fel. Med hjälp av ett kommersiellt verktyg kommer att fungera, men om du behöver en enkel lösning för att få jobbet gjort och låg på medel, PowerShell är ett bra sätt att säkerställa att ditt system inte går mage upp när det så var dags för att distribuera patchar till produktion.