Posted in: Windows 10, Windows 11

Božský mód

Božský mód umožňuje na jednom místě přístup opravdu ke všem nastavením, která systém Windows 10 nabízí. Tímto přístupovým místem je speciální složka na ploše.
Tato lehce skrytá funkce systému Windows je určena především vývojářům a IT profesionálům do testovacích prostředí, aby se jim pohodlněji ladilo nastavení systému, ze kterého budou odvozovat instalační image nebo konfigurační package. Rozhodně nelze doporučit tento režim běžným uživatelům na domu. Jako vhodný se mi také jeví pro zkušené členy Insiders programu v rychlejších okruzích, kde může pomoci s tím, aby systém fungoval správně.
Jak toto pokročilé nastavení aktivovat?
Vytvořte si na ploše novou složku a pojmenujte ji: GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
Nyní stačí potvrdit klávesou enter a je hotovo.

Vyhledávání v nabídce nástrojů a jejich třízení, nebo i zpřístupnění na systémech, kde není božský mód aktivován pak umožní nástroj extgmode.exe.

Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server, Základy PowerShellu

Jak obejít ExecutionPolicy v PowerShellu

Dnes bych rád ukázal, jak si může naprosto běžný uživatel spustit skript PowerShellu aníž by měl právo si měnit ExecutionPolicy. Jak víme, tak ExecutionPolicy říká, zda je možné na daném systému spouštět skripty (případně jaké skripty) psané v PowerShellu a také zda systém přijme prostřednictvím PowerShellu soubory stažené z internetu.

Ve výchozím stavu máme na klientských Windows (7, 8, 10) restricted, což velmi zjednodušeně znamená, že skripy nelze spouštět.

Užijeme PowerShell ISE:
Skript otevřeme pomocí ISE, následně pomocí CTRL+A vybareme vše a využijeme Run Selection (zkratka: F8). skript se provede. Bohužel jediné parametry, které takto můžeme zadat jsou ty Mandatory.

Využijeme průzkumníku Windows:
Na skript klikneme pravým tlačítkem myši a zvolíme Run with PowerShell. Bohužel jediné parametry, které takto můžeme zadat jsou ty Mandatory.

Změníme ExecutionPolicy v rámci daného procesu:
Použijeme příkaz: Set-ExecutionPolicy Bypass -Scope Process
Nyní v rámci daného okna PowerShellu nemáme žádné restrikce

Spustíme skript pomocí načtení do paměti:
Využijeme příkaz: Get-Content .\skript.ps1 | PowerShell -noprofile -exec bypass
Tím dojde k načtení skriptu jako příkazu a provede se. Bohužel předání parametrů je problematické, ty Mandatory předané budou.

Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server, Základy PowerShellu

Primitivní mazání duplicitních souborů Powershellem

Dnes si ukážeme, jak využít PowerShell verze 5.1 (předinstalovaný na Windows 10) nebo verze 7.x pro smazání duplicitních (mám na mysli obsahově duplicitních v rámci stejného formátu) souborů z daného adresáře a jeho podadresářů. Tento problém zcela jistě sousta z Vás řeší při nějakém tom úklidu PC.
Kód skriptu (klině lze po řádkách vkládat do konzole) je následující:

$WorkDirectory = Read-Host -Prompt „Zadejte cestu k adresáři, který chcete zbavit duplicitnich souboru:“
$OutputDirectory = Read-Host -Prompt „Zadejte cestu k adresáři pro umisteni vysledku: „
#vypíše soubory a jejich sha512 do csv
Get-ChildItem -Path $WorkDirectory -Recurse -ErrorAction SilentlyContinue | Get-FileHash -Algorithm SHA512 | select Path, Hash | Export-Csv -Path „$OutputDirectory\All_Files.csv“ -Delimiter ‚;‘ -Encoding UTF8 -NoTypeInformation
#načte si csv s informacemi o souborech
$soubor = Import-Csv -Path „$OutputDirectory\All_Files.csv“ -Delimiter „;“
#identifikuje SHA512, které jsou v informačním csv více jak 1x
$duplikat = ($soubor.hash | Group-Object | Where-Object -FilterScript {$_.count -gt 1}).values
#na základě SHA512 identifikuje soubory, které jsou v prohledávaném adresáři a jeho podadresářích více jak 1x
$vystup = ($soubor | ForEach-Object {if($_.hash -in $duplikat) {$_}}) | Sort-Object -Property Hash
#najde od každého vícenásobného souboru „originál“
$vystup2 = ($soubor | ForEach-Object {if($_.hash -in $duplikat) {$_}}) | Sort-Object -Property Hash -Unique
#smaže všechny výskyty vícenásobných souborů vyjímaje originálů
(($vystup | ForEach-Object {if($_ -notin $vystup2) {$_}}) | Sort-Object -Property Hash).Path | Remove-Item -force

# O něco chytřejší funkci PowerShellu, která umí uklízet ještě lépe si představíme někdy příště.

Posted in: Windows 10, Windows 11

Stažení libovolné edice Windws10

Každý správce se setká s tím, že se mu dostane do ruky zařízení, které má jinou edici Windows, nežli zbytek sítě. Typicky ve školách to pak mohou být interaktivní displeje Prowise, které mají z výroby edici Enterprise, nicméně škola má edice Pro či Education, přesně v souladu s licencováním Windows pro školy.
Jak potom ale stáhnout instalační médium Windows pro Enterorise edici? Máme na výběr, buď užijeme Microsoft Evolution center a stáhneme instalaci Enterprise Evolution, která je na 90 dní. Příkazovou řádkou pak převedeme dle nějakého návodu edici s užitím našeho klíče na plnohodnotnou verzi. Trochu složité ne?
Následující skript umožní pro stažení využít Microsoft Creation Tool, který nejspíš již máte, protože jeho prostřednictvím se stahují běžné edice jako Home, Pro nebo Education.
V detailu je odkaz na stažení skriptu a jeho zdrojový kód. Stažení Skriptu

function WinDownload
{
    <#
  .Synopsis
       WinDownload
  .DESCRIPTION
       Zavolá MediaCreation Tool s možností stáhnout i Enterprise edici Windows.
  .EXAMPLE
       WinDownload -CreationToolPath C:\Users\Admin\Downloads\MediaCreationTool2004.exe -Edice Firma -Architektura x64 -LangCode cs-CZ

       Inicializuje stažení média pro Windows 10 verze 2004 Enterpise. Vypíše klíč, který umožní stažení bez nutnosti zadávat vlastní produktový klíč.
    #>
    param(
        [parameter(Mandatory = $true)] [Alias(‚Tool‘)]
        [string] $CreationToolPath,
        [parameter(Mandatory = $true)] [ValidateSet(‚Domacnost‘, „Firma“)]
        $Edice,
        [parameter(Mandatory = $true)] [ValidateSet(‚x64‘, ‚X86‘)]
        $Architektura,
        [parameter(Mandatory = $true)]
        [string] $LangCode,
        [parameter(Mandatory = $false)]
        [switch] $upgrade
    )
    if($upgrade)
    {
        $par = „$CreationToolPath /Eula Accept /Action UpgradeNow“
        Invoke-Expression $par
    }
    elseif($Edice -eq ‚Firma‘)
    {
        $par = „$CreationToolPath /Eula Accept /Retail /MediaArch $Architektura /MediaLangCode $LangCode /MediaEdition Enterprise“
        #& $CreationToolPath $par
        Invoke-Expression $par
        Write-Host „“
        Write-Host ‚Pro stažení zadejte produktový klíč: XGVPP-NMH47-7TTHJ-W3FW7-8HV2C‘
        Write-Host ‚Pro aktivaci systému budete muset změnit klíč na Vámi zakoupený‘
    }
    else
    {
        $par = „$CreationToolPath /Eula Accept /Retail /MediaArch $Architektura /MediaLangCode $LangCode“   
        Invoke-Expression $par
    }
}
man WinDownload -ShowWindow

Posted in: Windows 10, Windows 11, Windows server, Základy PowerShellu

Práce s ESD

V tomto příspěvku bych se s Vámi rád podělil o svůj PowerShell modul, který prostřednictvím nástroje DSM umožňuje vytvářet datové Archivy ve formátu ESD a rovněž již Existující ESD soubory extrahovat do složky.
Infomrace je schopen číst i o WIM souborech a vlastně nic nebrání vytvoření souboru ve formátu WIM místo ESD, rozbalení WIM pak sice zvládnuto je, ale stojí hodně času.
Pro stažení modulu a zobrazení jeho zdrojového kódu čtěte dále Stažení modulu ve formátu psm1

Zdrojový kód modulu:

@{
        Author = ‚Petrásek Jan‘
        CompanyName = ‚elektrotechnika.vesele.info‘
        Copyright = ‚Petrásek ©2020‘
        Description = ‚ Pomocí nástroje DISM umožňuje zobrazit informace o daném ESD souboru. Umí extrhovat daný index či název do zadané složky. Pokud se nazadá název nebo index,
     bude do zadané složky extrahován index 1 daného souboru.
     Hlavním úkolem je tvorba ESD souborů ze zadané složky, do archivu jsou samozřejmně zahrnuty všechny podložky a jejich obsah. Komprese archivu je maximální možná.
     Název indexu je možné zadat v podobě volitelného parametru.
     Není podporována komprese samostatných souborů ani více indexové archivy či popis jednotlivých indexů. Informace dokáže vypsat i o Wim souboru.‘
        PowerShellVersion = ‚5.1‘ #minimální verze PowerShellu
        CLRVersion = ‚5.1‘ #minimální verze příkazového runtimeu
        ModuleVersion = ‚1.0‘
        ModulToProcess = ‚folder2ESD.psm1‘
        AliasesToExport = ‚*‘ #oddělujeme čárkou
        FunctionsToExport =’*‘
    }

Set-Alias -name F2ESD -value Convert-Folder2ESD
function Convert-Folder2ESD
{
<#
  .Synopsis
     Convert-Folder2ESD
  .DESCRIPTION
     Pomocí nástroje DISM umožňuje zobrazit informace o daném ESD souboru. Umí extrhovat daný index či název do zadané složky. Pokud se nazadá název nebo index,
     bude do zadané složky extrahován index 1 daného souboru.
     Hlavním úkolem je tvorba ESD souborů ze zadané složky, do archivu jsou samozřejmně zahrnuty všechny podložky a jejich obsah. Komprese archivu je maximální možná.
     Název indexu je možné zadat v podobě volitelného parametru.
     Není podporována komprese samostatných souborů ani více indexové archivy či popis jednotlivých indexů.
  .EXAMPLE
      Convert-Folder2ESD -rezim komprese -soubor I:\2016-2017.esd -slozka I:\2016-2017 -nazev Fotokrouzek2016-2017
      Do souboru I:\I:\2016-2017.esd zabalí obsah složky I:\2016-2017 na index 1 pod jménem indexu Fotokrouzek2016-2017
  .EXAMPLE
     Convert-Folder2ESD -rezim dekomprese -soubor I:\Drivers.ESD -slozka I:\Ovladace
     Do složky I:\Ovladace vybalí obsah archivu I:\Drivers.esd
  .EXAMPLE
     Convert-Folder2ESD -rezim info -soubor I:\Drivers.ESD -slozka I:\Ovladace
     DZobrazí dostuné informace o archyvu I:|Drivers.esd
  .EXAMPLE
     Convert-Folder2ESD -rezim dekomprese -soubor I:\Windows\Souces\Install.esd -slozka I:\Win10Pro -index 5
     Extrahuje instalačního souboru offline podobu obrazu Windows 10 Pro, které jsou na indexu 5 do složky C:\Win10Pro
  .EXAMPLE
     Convert-Folder2ESD -rezim dekomprese -soubor I:\2016-2017.esd -slozka I:\2016-2017 -nazev Fotokrouzek2016-2017
     Extrahuje z archivu I:\2016-2017.esd index se jménem Fotokrouzek2016-2017 do složky I:\2016-2017
  .NOTES
     Verze: 1.0
     Autor: Petrásek Jan
     Autor nenese žádnou odpovědnost za případnou ztrátu či poškození dat!
     Všechna práva vyhrazena
     ©2020
  .FUNCTIONALITY
     Tvorba a extrahování ESD
#>
    param(
    [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [validateSet(‚Info‘, ‚dekomprese‘, ‚komprese‘)] [Alias(‚r‘)]
    [string]$rezim,
    [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [Alias(‚f‘)]
    [string]$soubor,
    [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [Alias(‚d‘)]
    [string]$slozka,
    [Parameter(Mandatory=$false, ValueFromPipeline=$true)] [Alias(‚name‘, ‚n‘)]
    [string]$nazev,
    [Parameter(Mandatory=$false, ValueFromPipeline=$true)] [Alias(‚i‘)]
    [string]$index
    )

    Switch($rezim)
    {
        info{
           Dism.exe /Get-ImageInfo /ImageFile:$soubor
        }
        komprese {
            if($nazev -ne „“)
            {
                Dism /Capture-Image /ImageFile:$soubor /Compress:max /CheckIntegrity /CaptureDir:$slozka /Name:$nazev
            }else{
                Dism /Capture-Image /ImageFile:$soubor /Compress:max /CheckIntegrity /CaptureDir:$slozka /Name:$soubor
            }
            Write-Host „“
            Write-Host „Komprese dokončena“ -ForegroundColor Green
        }
        dekomprese{
            IF(!(Test-Path ‚C:\temp\ESD2Folder‘))
            {
                New-Item -Path ‚C:\temp\ESD2Folder‘ -ItemType Directory
            }
            if($nazev -ne „“){
                dism /export-image /SourceImageFile:$soubor /SourceName:$nazev /DestinationImageFile:C:\temp\ESD2Folder.wim /Compress:max /CheckIntegrity
                Dism /Mount-Image /ImageFile:C:\temp\ESD2Folder.wim /MountDir:C:\temp\ESD2Folder /Name:$nazev
                cd C:\temp\ESD2Folder
                Copy-Item C:\temp\ESD2Folder\* -Recurse $slozka
                cd $home
                Dism /Unmount-Image /MountDir:C:\temp\ESD2Folder /discard
                Remove-Item -Path C:\temp\ESD2Folder.wim -Force
                Remove-Item -Path C:\temp -Recurse -Force
                Write-Host „“
                Write-Host „Extrahování dat dokončeno“ -ForegroundColor Green
            }elseif($index -ne „“)
            {
                dism /export-image /SourceImageFile:$soubor /SourceIndex:$index /DestinationImageFile:C:\temp\ESD2Folder.wim /Compress:max /CheckIntegrity
                Dism /Mount-Image /ImageFile:C:\temp\ESD2Folder.wim /MountDir:C:\temp\ESD2Folder /Index:$index
                cd C:\temp\ESD2Folder
                Copy-Item C:\temp\ESD2Folder\* -Recurse $slozka
                cd $home
                Dism /Unmount-Image /MountDir:C:\temp\ESD2Folder /discard
                Remove-Item -Path C:\temp\ESD2Folder.wim -Force
                Remove-Item -Path C:\temp -Recurse -Force
                Write-Host „“
                Write-Host „Extrahování dat dokončeno“ -ForegroundColor Green
            }else{
                dism /export-image /SourceImageFile:$soubor /SourceIndex:1 /DestinationImageFile:C:\temp\ESD2Folder.wim /Compress:max /CheckIntegrity
                Dism /Mount-Image /ImageFile:C:\temp\ESD2Folder.wim /MountDir:C:\temp\ESD2Folder /Index:1
                cd C:\temp\ESD2Folder
                Copy-Item C:\temp\ESD2Folder -Recurse $slozka
                cd $home
                Dism /Unmount-Image /MountDir:C:\temp\ESD2Folder /discard
                Remove-Item -Path C:\temp\ESD2Folder.wim -Force
                Remove-Item -Path C:\tempr -Recurse -Force
                Write-Host „“
                Write-Host „Extrahování dat dokončeno“ -ForegroundColor Green
            }
        }
        Default{
            Write-Host „KONČÍM, chybně neplatná hodnota parametru režim“ -ForegroundColor Red
        }
    }
}
#Zobrazní nápovědy

man Convert-Folder2ESD -ShowWindow

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

Nastavit všechna připojení na doménová

Mám pro všechny kolegy správce ideální příkaz do příkazové řákdy, který nastaví na stanici všechna existující připojení jako doménová. Tento příkaz se může hodit především jako součást task sekvence v MDT nebo SCCM.
Tady je: powershell.exe $net = get-netconnectionprofile;Set-NetConnectionProfile -Name $net.Name -NetworkCategory DomainAuthenticated

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

Upgrade edice Windows 10

Pro upgrade edice je potřeba klíč typu MAR nebo multilicenční klíč. Pokud kupujeme klíč přímo od Microsoftu prostřednictvím Store nebo https://www.microsoft.com/cs-cz/store/b/windows máme vždy klíč s právem upgrade. Kupujeme-li klíč jinde, nemusíme vždy dostat klíč s právem upgrade z nižší edice, nebo starší verze Windows.

Pokud provádíme upgrade ze starší verze Windows, provedeme upgrade z instalačního média bez nutnosti zadávat klíč a následně naším klíčem aktivujeme až výsledný systém Windows. (online upgrade z https://www.microsoft.com/cs-cz/software-download/windows10 někdy provede aktivaci bez nutnosti klíč pořizovat a vkládat do systému). Na aktivaci takového systému pak máme 30 dní obdobně jako u předešlých verzí Windows.

Pokud upgradujeme edici Windows (např. z Home na Pro) a není možné projít následující postup do bodu 6, kdy v bodě 5 místo klíče z postupu zadáme náš klíč (pokus skončí chybou neplatný klíč, nebo nějakou podobnou), tak to znamená, že nemáme klíč s právem upgrade. V tom případě, využijeme tzv. GVLK klíč, který odemkne v systému proces upgrade a ten jej provede, následně je ovšem nutné systém aktivovat pomocí platného klíče Pro zobrazení postupu a GLVK klíčů Windows 10 čteěte dále.

Cílová edice WindowsGVLK klíč
Windows 10 ProW269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 Pro (otestováno)VK7JG-NPHTM-C97JM-9MPGT-3V66T
Windows 10 Pro NMH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 Pro for WorkstationsNRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
Windows 10 Pro for Workstations N9FNHH-K3HBT-3W4TD-6383H-6XYWF
Windows 10 Pro Education6TP4R-GNPTD-KYYHQ-7B7DP-J447Y
Windows 10 Pro Education NYVWGF-BXNMC-HTQYQ-CPQ99-66QFC
Windows 10 EducationNW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 Education N2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 EnterpriseNPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 Enterprise NDPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 Enterprise GYYVX9-NTFWV-6MDM3-9PT4T-4M68B
Windows 10 Enterprise G N44RPN-FTY23-9VTTB-MP9BX-T84FV

Postup na upgrade edice Windows 10:

  1. Uložíme si návod z této stránky, nebo si jej vyfotografujeme na telefon
  2. Odpojíme PC od sítě (vypneme Wi-Fi, nebo odpojíme síťový kabel)
  3. Otevřeme aktivaci Windows
  1. Klikneme na Změnit kód Product Key
  1. Zadáme kód z tabulky (např. edice Pro: VK7JG-NPHTM-C97JM-9MPGT-3V66T)
  1. Klikneme na DALŠÍ, což spustí upgrade edice (síť není potřeba, soubory jsou již v PC od instalace systému)
  2. Počkáme na dokončení po restartu
  3. Připojíme PC zpět k síti (zapneme Wi-Fi nebo připojíme síťový kabel)
  4. Po dokončení se vrátíme do aktivace a zvolíme: Změnit kód Product Key
  1. Vložíme námi zakoupený produktový klíč
  1. Kliknutím na DALŠÍ aktivujeme novou edici Windows 10
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 10, Windows 11

Sandbox

Windows 10 od verze 1903 představily řadu novinek, jednou z těch „bezpečnostních“ je Sendbox. Sendbox je potřeba stejně jako Hyper-V přidat pomocí funkcí operačního systému.

Pro využívání této funkcionality je potřeba mít instalovanou edici Pro nebo Enterprise a oprávnění lokálního administrátora daného systému Windows. Stran HW je potřeba splňovat požadavky stejné jako využití Hyper-V, tedy 64 bit OS, povolenou virtualizaci na alespoň dvoujádrovém CPU a minimálně 4 GB RAM. 

Co je vlastně Sendbox? Ve startu tuto položku nalezneme jako běžnou univerzální aplikaci, ve skutečnosti jde o Virtual Desktop Infrastructure (VDI) stroj obsahující Windows 10 Enterprise. Základní myšlenkou je bezpečný prostor pro testování neznámých aplikací a nastavení. Velkou výhodou a nevýhodou zároveň je, že jde VDI, tedy se zavřením dojde k revertu do výchozího stavu, respektive v přídě běžné VDI dojde k aplikaci bodu obnovení s názvem RDV_Rollback.

Velkou výhodou je, že cokoliv se pokazí, nedojde k poškození našeho systému a paměť i procesorové prostředky jsou izolovány pomocí hypervizoru. Bohužel jsou zde instalovány integrační služby Hypoer-V, takže je možný přenos dat mezi fyzickým strojem a Sendboxem prostřednictvím schránky (nikoliv pomocí drag and drop). Z bezpečnostního pohledu to může být problematické hlavně v případě, kdy je aktivní historie schránky. Síťová komunikace je odstíněna shodně jako v Hyper-V a nejsou mapovány žádné jednotky nebo externí zařízení. V Sendboxu neběží žádné zabezpečení, proto doporučuji testovací programy prověřit pomocí webu virustotal.com, nebo instalovat zkušební verzi antiviru před rozhodnutím přenést instalátory nebo konfigurační soubory do fyzického OS po dokončení testů. Hlavně nezapomeňte, že testy je možno provádět jen do uzavření Sendboxu, zavřením přijdeme o všechno, co je Sendboxu obsaženo (soubory i konfiguraci). Jedinou dostupnou moderní aplikací je Microsoft Edge a nastavení, v instalaci se nachází i Office Hub, OneDrive a další, ale tyto aplikace nelze spustit.
Velkou výhodou oproti předešlým verzím Windows i buildům Desítek je, že nepotřebujeme pro testování další licenci Windows, testovací virtuál máme v ceně základních Windows 10, na druhou stranu je to vykoupeno potřebou vyšší edice. Velkou nevýhodou je, že v Sendboxu nelze testovat aplikace z MS Store. S ohledem na nemožnost restartovat systém je problematické zařazení Sendboxu do domény, proto testování programů, které nějak závisí na Group Policy je prakticky nemožné, jedinou možností je exportovat politiky, které by se měly na daný PC vztahovat a importovat je jako politiky lokální, ale to jsem již zaběhl opravdu daleko.
Komu je Sendbox určen? Především pokročilým uživatelům, kteří si chtějí otestovat neznámou aplikaci nebo nějaké nastavení, které jim má řešit určité potřeby, ale návod pochází z komunitního fóra, kterému příliš nedůvěřují. Dále je pak tato komponenta učena adminům, kteří potřebují otestovat aplikaci z neoriginálního zdroje, případně nějaký skript, u kterého si nejsou jeho fungováním zcela jisti. V neposlední řadě je pak určen i běžným uživatelům, kterým záleží na jejich bezpečí a chtějí přitom stahovat obsah (hlavně sprogramy) z různých míst internetu, nicméně tito uživatelé si musí uvědomit, že po instalaci a spuštění v Sendboxu je nutné nechat vše zkontrolovat kvalitním antivirem (např.: Kaspersky či Bitdefender), jinak vše ztrácí význam. Nicméně testerům, adminům a vývojářům i tato možnost nenahradí testovací virtuál, který může plnohodnotně komunikovat s AD a hlavně je na něm možné provádět dlouhodobé testy. I tak jako správce považuji Sendbox za velký přínos, nicméně je potřeba nemít slepou víru v bezpečnost Sendboxu, protože přenos dat je možný a je možná komunikace po síti. Pro opravdu bezpečné spuštění nějakého neznámého kódu doporučuji, aby byl počítač fyzicky převeden do Offline režimu (odpojen kabel, nebo HW vypínačem vypnuta Wi-Fi karta), nebo bylo užito plně offline virtuálu bez integračních komponent v Hyper-V. Rozhodně byť je zvyk užití Sendboxu pro stahování a test aplikací velmi dobrým návykem, který si může administrátor vytvořit, neměl by polevit v ostražitosti a nedůvěře vůči kódu, který spouští.

Back to Top