Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server

Úklid po aktualizacích

Asi obecně známý je nástroj cleanmgr.exe, který slouží k úklidu po aktualizacích, úklidu dočasných souborů, cache apod. Trochu hlubší úklid je možné provést pomocí nástroje DISM (automaticky jej spouští aktualizační proces u servisních aktualizací, ale i zde je lepší uživatelské zpuštění). Úklid pomocí DISM je vhodný rovněž po větších aktualizacích komponent doručených pomocí MS Store. Úklid nástrojem DISM má 2 fáze (stejně jako u cleanmgr.exe), analýzu a následný úklid.

Analýza se spouští příkazem:

DISM.exe /Online /Cleanup-Image /AnalyzeComponentStore

Vlastní úklid pak příkazem:

DISM.exe /Online /Cleanup-Image /StartComponentCleanup

Nezmínil jsem jednu důležitou věc, nástroj DISM vyžaduje na všechny operace (včetně úklidu) práva administrátora, ale to již zkušený uživatel ví a ten nezkušený se to dozví z chybového hlášení 😉

Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server

Odinstalace aktualizací od určeného data po dnešek

<#
    Skript odebere všechny hotfiy ze systmu, které byly instalované mezi zadaným datumem a dneškem.
    Autor nenese žádnou odpovědnost za případné škody, uživatel je povinen před spuštěním se seznámit se skriptem!

    Požadavky:
    – PowerShell verze 5 a novější
    – ExcutionPolicy set na bypass

    Petrásek Jan
    ©2020
#>
Write-Host ‚Odinstalace všech aktualizací od zadaného datmu po dnešek‘
$datum = Read-Host -Prompt „Zadejte datum: „
$ListOfHotfixes = Get-Hotfix |where -Property InstalledOn -ge (get-date -date $datum)

    foreach ($item in $ListOfHotfixes)
    {
        $polozka = $item.hotfixID
        $cislo = [string] $polozka.Split(„KB“)
        $c = $cislo.TrimStart()
        wusa.exe /uninstall /kb:$c /norestart /quiet | out-null
    }

Posted in: Windows 10, Windows 11

Nastavení Windows update na Windows 10 nejen GPO

Dnes to bude o mnohokrát propíraném tématu, které pálí každého admina, ano mluvím o aktualizaci Windows 10. S ohledem na problémy způsobené aktualizacemi v listopadu 2019 toto téma nabírá na aktuálnosti i závažnosti. Na začátku si řekneme, jaké máme možnosti, pokud nepoužíváme WSUS, o kterém je k dispozici článek v rubrice o Windows serveru, pak se podíváme samozřejmě i na počítače ve Workgroup, tedy PC v domácnosti. Článek rozdělíme do dvou částí, první bude určena edicím Pro, Edu, Enterprise, Pro Workstation a druhá pak uživatelům edice Home (jmenuje se jen Windows 10).

Pro práci budeme využívat groupolicy (v případě pracovní skupiny pak local policy) a trochu registry. Je utopií si myslet, že jsme schopni na všech PC ve firmě nastavit správně Windows update pomocí grafiky pod správcovským účtem, ale i tak si připomeňme, jaké máme možnosti. Pomocí grafiky můžeme nastavit dobu, po kterou se PC nebude restartovat pro dokončení automatické aktualizace (tzv. dobu aktivního používání), dále pak můžeme nastavit počet dní, o který bude opožděna instalace cumulative updates ve dnech a pak dobu, o kterou se opozdí aktualizace na novou verzi systému, zde je možné provést odklad až o rok. V zásadě toto jsou nastavení, která nás budou zajímat, plus je doplníme o pár dalších, abychom to pomocí politik vynutili správně. Možná Vám přijde zbytečné řešit odklady, ale v případě vydání opravného balíčku aktualizace Vám bude instalována již opravená verze, nebo tam alespoň nebudete mít potenciálně problémovou verzi dlouho.
Pojďme se tedy podívat, jak Windows Update v politikách. Jen na začátek upozorním, že všechna popisovaná nastavení fungují od verze 1803 Windows 10. Ve vytvořeném objektu zásad si přejdeme do: Computer Configuration > Administrative Templates > Windows Components > Windows Update. Jako první nastavíme restartování, v českých GPO jde o položku vždy restartovat v naplánovaný čas (always restart at the expected time), pro Windows server 2016 a novější nastavíme 15 minut, pro Windows 10 doporučuji 90 až 180 minut. Jako další provedeme konfiguraci automatických aktualizací, kde bych pro pracovní stanice doporučil: 

Pro serverové OS pak následující konfiguraci: 

Nebo částečně ruční konfiguraci, kdy se aktualizace stáhne, ale administrátor musí spustit ručně její instalaci: 

Další, co musíme nastavit, je zákaz automatické aktualizace systému na novější verzi, což udělá položka turn off the upgrade to last version of Windows through Windows Update, kterou nastavíme na hodnotu Povoleno. Všimli jste si, že zde chybí konfigurace Insiders nebo odkladů? Pokud jde o možné členství v Insiders programu, to jde zakázat pokud máte verzi 1909 (na DC pak patřičně aktualizované ADMX), kde nastavíte Select when Preview Builds and Feature Updates are received, kde zvolíte aktualizační kanál, který doporučuji volbu Semi-Annul Channel. Ale co ten zbytek? Ten je potřeba provést pomocí registrů. Zde mám malou pomocnou berli pro všechny Adminy.
 V Objektu zásad si otevřete Computer Configuration > Preferences> Windows Configuration> Registry. Nyní si ještě otevře notepad.exe a zkopírujte do něj následující nastavení:
<?xml version=“1.0″ encoding=“UTF-8″?>
<Collection name=“HKEY_LOCAL_MACHINE“ clsid=“{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}“><Collection name=“SOFTWARE“ clsid=“{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}“><Collection name=“Microsoft“ clsid=“{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}“><Collection name=“WindowsUpdate“ clsid=“{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}“><Collection name=“UX“ clsid=“{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}“><Collection name=“Settings“ clsid=“{53B533F5-224C-47e3-B01B-CA3B3F3FF4BF}“><Registry name=“ActiveHoursEnd“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“ActiveHoursEnd“ value=“00000014″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“ActiveHoursStart“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“ActiveHoursStart“ value=“00000006″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“AllowAutoWindowsUpdateDownloadOverMeteredNetwork“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“AllowAutoWindowsUpdateDownloadOverMeteredNetwork“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“DeferFeatureUpdatesPeriodInDays“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“DeferFeatureUpdatesPeriodInDays“ value=“0000016D“ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“DeferQualityUpdatesPeriodInDays“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“DeferQualityUpdatesPeriodInDays“ value=“0000000A“ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“ExcludeWUDriversInQualityUpdate“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“ExcludeWUDriversInQualityUpdate“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“FlightCommitted“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“FlightCommitted“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“LastToastAction“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“LastToastAction“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“UxOption“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“UxOption“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“InsiderProgramEnabled“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“InsiderProgramEnabled“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“SmartActiveHoursStart“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“SmartActiveHoursStart“ value=“00000008″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“SmartActiveHoursEnd“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“SmartActiveHoursEnd“ value=“00000011″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“SmartActiveHoursSuggestionState“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“SmartActiveHoursSuggestionState“ value=“00000000″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“SmartActiveHoursTimestamp“ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“SmartActiveHoursTimestamp“ value=“01D5A3ACCEC559″ displayDecimal=“0″ type=“REG_QWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry><Registry name=“RestartNotificationsAllowed2″ clsid=“{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}“ image=“17″ descr=“Imported Reg File“><Properties name=“RestartNotificationsAllowed2″ value=“00000001″ displayDecimal=“0″ type=“REG_DWORD“ default=“0″ key=“SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ hive=“HKEY_LOCAL_MACHINE“ action=“U“/></Registry></Collection></Collection></Collection></Collection></Collection></Collection>

Soubor uložte ve formátu XML v kódování UTF-8. Nyní soubor (nikoliv jeho obsah) zkopírujte a v editoru zásad skupiny si do registrů v PC větvi zvolte vložit a vše potvrďte, výsledek by měl vypadat následovně:

Na tomto místě dlužím vysvětlení toho, co to provede. Ono XML je export reg souboru připravený tak, aby se korektně zapsal do politik. Obsah zapisovaného reg souboru je následující:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings]
„ActiveHoursEnd“=dword:00000014
„ActiveHoursStart“=dword:00000006
„AllowAutoWindowsUpdateDownloadOverMeteredNetwork“=dword:00000000
„DeferFeatureUpdatesPeriodInDays“=dword:0000016d
„DeferQualityUpdatesPeriodInDays“=dword:0000000a
„ExcludeWUDriversInQualityUpdate“=dword:00000000
„FlightCommitted“=dword:00000000
„LastToastAction“=dword:00000000
„UxOption“=dword:00000000
„InsiderProgramEnabled“=dword:00000000
„SmartActiveHoursStart“=dword:00000008
„SmartActiveHoursEnd“=dword:00000011
„SmartActiveHoursSuggestionState“=dword:00000000
„SmartActiveHoursTimestamp“=hex(b):f2,59,c5,ce,ac,a3,d5,01
„RestartNotificationsAllowed2″=dword:00000001
V regeditoru pak vše vypadá následovně: 


Ti trochu zběhlejší již tuší, registry nastavují ty možnosti, které nám v politikách chyběli a ty výchozí hodnoty některých nastaveních dále spravovaných politikou. Když to vezmeme shora dolů a koukneme se na to, tak vidíme následující nastavení:
• Konce doby aktivního používání ve 20:00
• Začátek doby aktivního používání v 6:00
• Zákaz stahovat aktualizace přes zpoplatněná připojení
• Odložení instalace nové verze systému o 365 dní
• Odložení instalace cumulative update o 10 dní
• Povolení aktualizace ovladačů
• …
• Zákaz insiders programu a pár dalších nastavení
Je samozřejmostí, že každý správný admin si dané řešení projde a vše si zkontroluje i když to pochází od kolegy z produkce, přeci jen vše dělá na vlastní odpovědnost! Tímto bych uzavřel první část článku, která je určena především profíkům. Jen bych rád upozornil, že serverové edice OS stran registrů je lepší jeden nastavit ručně v nastavení a následně si tento registr z něj exportovat.

Nyní jak jsem slíbil přišla řada na Home edici. S edicí Home je to náročnější, protože nemá v nastavení dané možnosti a ve výchozím stavu jí chybí editor lokálních politik. Zde bych doporučil použít registry, i když předem říkám, že nemusí být (v závislosti na verzi) akceptována všechna zapsaná nastavení. Postup je jednoduchý (ale i tak je určen předně hodně pokročilým uživatelům), stačí otevřít regedit a přejít na cestu: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings
Na tomto místě pak založit (případně upravit) následující klíče s uvedenými hodnotami a formáty.

Název hodnotyformátHotnota [HEX]
ActiveHoursEnddword00000014
ActiveHoursStartdword00000006
AllowAutoWindowsUpdateDownloadOverMeteredNetworkdword00000000
DeferFeatureUpdatesPeriodInDaysdword0000016d
DeferQualityUpdatesPeriodInDaysdword0000000a
ExcludeWUDriversInQualityUpdatedword00000000
InsiderProgramEnableddword00000000

Krom registrů máme ještě jednu možnost, jak ručně řídit jednotlivé aktualizace v domácím prostředí, či prostředí malé firmy cca do 5 PC, tou možností je nástroj „Show or hide updates“ od Microsoftu, který jak již název napovídá umožní skrýt nebo zobrazit aktualizace. Pokud je aktualizace skryta, není na systém instalována a pro její instalaci musíme danou aktualizaci zobrazit. Problém je, že musíme s tímto nástrojem „předběhnout“ vlastní instalaci aktualizace a pracujeme s jednou, nebo několika málo aktualizacemi. Nástroj je možné stáhnout z: http://download.microsoft.com/download/f/2/2/f22d5fdb-59cd-4275-8c95-1be17bf70b21/wushowhide.diagcab
Jedinou možností, jak mít opravdu 100% aktualizace pod kontrolou na edici Home, je zakázat službu Windows update a aktualizace stahovat ručně z https://catalog.update.microsoft.com a následně v offline reimu (opravdu fyzickém odpojení internetu, jinak to nemá smyls) službu jednou za čas povolit a instalovat balíčky, které jsme si stáhli z Windows update katalogu, následně službu opět zakázat a povolit přístup zařízení k internetu.

Posted in: Windows 8 a 8.1

Řešení problémů s Windows Update pro systém Win7, Win8 a Win8.1

Postup je následující:
Stáhnete si dvojici souborů umístěných v tomto příspěvku
Následně si na soubor Reset_Windows_Update_History kliknete pravým tlačítkem myši a zvolíte spustit jako správce
Následně vyzkoušíte, zda se problém vyřešil
Pokud se problém nevyřešil, tak si pravým tlačítkem myši klinete na soubor Reset_Windows_Update_Full a zvolíte opět spustit jako správce.

Reset_Windows_Update_History – skript

net stop wuauserv
rmdir %windir%\softwaredistribution /s /q
regsvr32 /s wuaueng.dll
regsvr32 /s wuaueng1.dll
regsvr32 /s atl.dll
regsvr32 /s wups.dll
regsvr32 /s wups2.dll
regsvr32 /s wuweb.dll
regsvr32 /s wucltui.dll
net start wuauserv

Reset_Windows_Update_Full – skript

net stop bits
net stop wuauserv
Del „%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat“
rmdir %windir%\softwaredistribution /s /q
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
cd /d %windir%\system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll
regsvr32 /s wudriver.dll
netsh winsock reset
net start bits
net start wuauserv
bitsadmin.exe /reset /allusers
shutdown /r

Posted in: Windows server

Instalace msu pomocí GPO

Každý správce někdy potřeboval nainstalovat nějaký konkrétní balíček z Windows update katalogu, nebo uspíšit distribuci nějaké konkrétní aktualizace. Jasně, máme zde Windows server update services nebo také řešení antivirových programů, která nám hlídají aktualizace Windows a umí je nainstalovat. I tak někdy nastane potřeba práce s konkrétním msu balíčkem a o tom si dnes něco povíme. Jako první si potřebujeme připravit skript, který danou instalaci provede. S velkou výhodou je možné využít PowerShell, který dokáže zjisti zda se na daném zařízení nachází daný balíček a také, která verze desítek na daném stroji běží. Ideálně máme v síti pouze jeden build Windows 10, ale reálně víme, že z libovolných důvodů se nám to časem rozejde na dvojici podporovaných verzí. msu balíček tedy musíme vždy stáhnout pro každou verzi desítek samostatně na daný stroj instalovat správnou verzi balíčku. Příklad níže instaluje aktualizaci KB5001649 na stroje s Windows 10 verze 20H1 a 20H2.

$Win2004 = "\\192.168.1.194\Win10Stup\Packages\Update\kb5001649-x64_2004.msu"
$Win20H2 = "\\192.168.1.194\Win10Stup\Packages\Update\kb5001649-x64_20H2.msu"
$OS = (Get-ComputerInfo -Property "OsBuildNumber").OsBuildNumber
if (-not(Get-Hotfix -Id KB5001649)) {
    if($OS -eq 19041)
    {
        Start-Process -FilePath "wusa.exe" -ArgumentList "$Win2004 /quiet /norestart" -Wait
    }else
    {
        Start-Process -FilePath "wusa.exe" -ArgumentList "$Win20H2 /quiet /norestart" -Wait
    }
}
exit

Nyní máme napsaný PowerShell, který uložíme. Následně si můžeme vytvořit vlastní GPO. V editaci politiky si otevřeme Computer Configuration/Policies/Windows Settings/Scripts
The Startup Script of a Computer GPO.
Dvojklikem otevřeme možnost startup a přejdeme na záložku PowerShell Scripts
Setting the Startup PowerShell Scripts
Klikene n a Show Files a do otevřeného okna přesuneme náš skript.
GPO Folder containing script
Zavřeme složku a v dialogu Startup Properties na kartě PowerShell scripts zvolíme položku Add
V dialogovém okně vyplníme název skriptu, pokdu bychom chtěli spouštět jiný PowerShell skript, můžeme uvést také jeho parametry. Nyní již stačí pouze vše uzavřít pomocí tlačítek OK.
S další aktualizací politik si stroj při startu natáhne náš kript a provede jej.

Posted in: Windows server

Centrální zastavení / spuštění služby Windows Update

Všichni jsme se jako admini setkali se situací, kdy potřebujeme rychle zastavit aktulizace Windows v celé síti, ať z důvodu chybné aktualizace, či z jiného důvodu.
Dnes Vám ukáži, jak aktualizace vypnout pomocí PowerShellu, ale nezapomeňme, že je nutné Windows update po nezbytné době opět zapnout, protože podporované jsou jen plně aktualizované systémy 😉

<#
    
	Skript zastaví službu Windows Update na všech PC v doméně.
    
	Autor nenese žádnou odpovědnost za případné škody, 
	uživatel je povinen před spuštěním se seznámit se skriptem!

    
	Požadavky:
    
	- PowerShell verze 5 a novější
    
	- Admin oprávnění pro všechna PC
    
	- ExcutionPolicy set to bypass

    
	Petrásek Jan
    
	©2020

#>

Invoke-Command -ComputerName (Get-ADComputer -Filter * | select DNSHostName).DNSHostName -ScriptBlock {

	net stop wuauserv;
    sc.exe config wuauserv start=disabled

}

Nyní si uvedeme druhý skript, který aktualizace opět zapne:

<#
    
	Skript zastaví službu Windows Update na všech PC v doméně.
    
	Autor nenese žádnou odpovědnost za případné škody, 
	uživatel je povinen před spuštěním se seznámit se skriptem!

    
	Požadavky:
    
	- PowerShell verze 5 a novější
    
	- Admin oprávnění pro všechna PC
    
	- ExcutionPolicy set to bypass

    
	Petrásek Jan
    
	©2020

#>

Invoke-Command -ComputerName (Get-ADComputer -Filter * -SearchBase "CN=Computers,DC=arpida,DC=local" | select DNSHostName).DNSHostName -ScriptBlock {
	net start wuauserv;
    sc.exe config wuauserv start=auto

}
Posted in: Windows server

WSUS na Windows server 2016

Návodů na instalaci WSUS je na internetu mraky, takže nebudu nosit dříví do lesa. O čem chci dnes psát, tak je jedna chyba, která se skrývá v roli Windows Update Services na Windows serveru 2016 a jak ji řešit.
Pokud instalujete WSUS na Windows server 2016, tak Vás čeká jedno nemilé překvapení, služba se nedokáže synchronizovat s update servery Microsoftu. Na vině je to, že Microsoft vypnul trvale jeden ze svých Windows update serverů, bohužel ten, na který se ve výchozím stavu odkazují instalace WSUS na Windows serveru 2016. Pokud chcete vědět, jak z problému ven, čtěte dále. Nyní si projděme kroky, které je potřeba udělat po instalaci Windows Server Update Services, aby vše opravdu fungovalo.

  1. Zkontrolovat a instalovat všechny aktualizace z Windows Update
  2. Spustit v powerShellu skript:
    $server = Get-WsusServer
    $config = $server.GetConfiguration()
    # Check current settings before you change them 
    $config.MUUrl
    $config.RedirectorChangeNumber
    # Update the settings if MUUrl is https://fe2.update.microsoft.com/v6
    $config.MUUrl = "https://sws.update.microsoft.com"
    $config.RedirectorChangeNumber = 4002
    $config.Save()
    iisreset
    Restart-Service *Wsus* -v
  3. Restartovat server příkazem: shutdown /g /t 0
  4. Vyvolat manuálně synchronizaci
  5. Pokud se nepodařilo, zkontrolujte nastavení služby
  6. Zkuste synchronizaci znovu
  7. Zkontrolujte, zda máte v důvěrychodných webech https://*update.microsoft.com
  8. Zkuste synchronizaci znovu
  9. Pokud stále nejde spuťte znovu skript a místo sws.update.microsoft.com použijte https://sws1.update.microsoft.com a změňte $config.RedirectorChangeNumber = 4002 na $config.RedirectorChangeNumber = 3011
  10. Nyní by jste již měli vidět aktualizace, pokud nevidíte PC zkontrolujte politiky a na daných PC si spuťte gpresult /h report.html, následně budete mít v Home adresáři podrobnosti o aplikovaných a neaplikovaných politikách

Poznámka bokem, nalezení PC jako nezařazených nebo zařazených pomocí politik může trvat i 2 dny, proto je zde potřeba trpělivost.

Back to Top