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

Spuštění PowerShellu pod účtem operačního systému

V rámci balíčku nástrojů SysInternals od Microsoftu je k dispozici nástroj PSEXEC, který umožní spouštět aplikace pod účtem operačního systému. Nejspolehlivější a nejlepší využití je spustit si PowerShell, protože jeho pomocí mohu dělat cokoliv a spouštět cokoliv.
Příkaz bude mít tvar:
psexec -s -i powershell

Stažení a dokumentace PSXEC

Posted in: Windows server

Prověření hesel v AD

Tento článek bych rád věnoval problematice kontrole hesel, které využívají vaši uživatelé v rámci doménové sítě. Jednou věcí je vydefinovat politiku na složitost délku, dobu platnosti hesla a uzamykání stanic, což je naprostý základ každé domény a doporučuji toto nastavení definovat v Default Domain Policy.
Pokud je toto nastavení provedeno správně, značně ztěžuje slovníkový či brute-force útok na heslo uživatele, ale problém je v tom, že lokální AD na rozdíl od Azure AD neumí porovnávat hesla se známími uniklými hesly. Pomocí Azure AD Premuim lze při hybridním scénáři tuto funkcionalitu do lokálního AD nasadit, ale pojďmě se podívat na to, jak si podobný test provés bez cloudu.Tento manuální audit hesel by měli provádět pouze doménový správci, ostatně jsou jediní, kdo to může udělat legitimně. Test nemusíme, ani to nedoporučuji, provádět přímo na serveru Active Directory, co budeme potřebovat je počítač s Windows 10, naprosto ideálně počítač s klientskou verzí systému Windows odpovídající serverové verzi. Například pro Windows server 2012R2 to jsou 8.1, pro Windows server 2012 jsou to 8, pro Windows server 2016 a 2019 jsou to Window 10.Dále budeme potřebovat PowerShell modul od Michaela Grafnettera DSInternals, který leze instalovat normálně z PowerShell galery. Dokumentace je krom PowerShellu dostupná na GitHubu či webu.

Poslední potřebnou věcí jsou databáze uniklých hesel např. have i been pwned (NTLM Hash) nebo čistě textové. Ze stažených archivů exportujeme txt soubor s hesly.

Postup

  1. Ze záloíhy AD si obnovíme co nejnovější verzi ntds.dit a souboru SYSTEM (což je soubor registru ze složky: C:\Windows\System32\config)
  2. Spustíme PowerShell jako správce

V PowerShellu spustíme následující kód pro databázi NTLM Hashů hesel:

$ntdsPath = Read-Host -Prompt "Zadej cestu k ntds.dit"
$systempath = Read-Host -Prompt "Zadej cestu k souboru registru SYSTEM z DC"
$slovnik = Read-Host -Prompt "Zadej cestu k souboru slovníku NTLM hash"
$vystup = Read-Host -Prompt "Zadej umístění výstupního souboru txt"
Import-Module -Name DSInternals
$key = Get-BootKey -SystemHivePath $systempath
Get-ADDBAccount -All -DBPath $ntdsPath -BootKey $key | Test-PasswordQuality -WeakPasswordHashesFile $slovnik | Out-File $vystup -Encoding utf8

Pokud máme zdrojovou databázi (či vlastní list) v plaintextu, použijeme následující příkazy:

$ntdsPath = Read-Host -Prompt "Zadej cestu k ntds.dit"
$systempath = Read-Host -Prompt "Zadej cestu k souboru registru SYSTEM z DC"
$slovnik = Read-Host -Prompt "Zadej cestu k souboru slovníku NTLM hash"
$vystup = Read-Host -Prompt "Zadej umístění výstupního souboru txt"
Import-Module -Name DSInternals
$key = Get-BootKey -SystemHivePath $systempath
Get-ADDBAccount -All -DBPath $ntdsPath -BootKey $key | Test-PasswordQuality -WeakPasswordsFile $slovnik | Out-File $vystup -Encoding utf8

Nyní necháme proces proběhnout (trvá od jednotek minut do řádu hodin dle počtu účtů, velikosti databáze uniklých hesel, toho zda databáze obsahuje plaintextová hesla nebo rovnou hash a rychlosti disku). Po dokončení procesu máme ve výstupním souboru hotovou analýzu.

Posted in: Windows server

Storage migration services

V tomto článku se s Vám podělím o video, které je návodné a zároveň popisné pro Storage Migration Services. Tato služba je dostupná ve Windows serveru 2019 a 2022, grafické rozhraní obsatává Windows Admincenter.
Jde o službu pro migraci souborů a síťových disků mezi servery, nebo s možností cílového umístění v Azure tak, aby při migraci v rámci lokální sítě vše fungovalo a nebylo po dokončení poznat, že sdílené soubory jsou na jiném serveru.

Pod videem, které snad brzy doplním o český článek, se rovněž nachází řešení jednoho problému, na který jsem osobně při využití této funkce v produkci narazil.

Správci služby migrace úložiště: pokud se vám při ověřování přenosu po instalaci listopadové kumulativní aktualizace zobrazuje „Chyba HRESULT E_FAIL byla vrácena z volání komponenty COM“, máme řešení ve WAC:

  1. Nainstalujte si nejnovější nástroj SMS WAC (od 3.9.2021 dne 1.115). Automaticky se zobrazí ve zdroji WAC
  2. Ve fázi přenosu přejděte na krok „Upravit nastavení“.
  3. Povolit „Přepsat ověření přenosu“
  4. Pokračujte v převodu, aniž byste spustili „Ověřit“ nebo jej spustili a ignorovali chybu E_FAIL.
thumbnail image 1 of blog post titled SMS "HRESULT E_FAIL from COM component" workaround coming
Posted in: Windows server

Nastavení AppLockeru

Správné nastavení pravidel Applockeru není vždy jednoduché, proto nabízím odkaz na super konstrukce pravidel od jednoho z vývojářů Microsofotu, které Microsoft oficiálně podpořil jako svůj OpenSorce. Dokumentace a skripty, které pravidla vytvářejí nemusí být přímo uplatněna, ale je dobrým zdrojem informací a námětů, na co si dát pozor a co nezapomenout.

AaronLocker – konfigurační skripty a dokumentace pro AppLocker

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 10, Windows 11, Windows server

Výpis zařízení, která jsou HybridJoin do AAD

Zcela jistě nejsem sám, kdo v dnešní době zpravuje hybridní prostředí a proto se opět podíváme na to, jak si zjisti z AAD nějaké údaje, které se v portálu získávají obtížně či je nelze získat přímo.
Jak mi dá spousta z Vás za pravdu, na stránce se zařízení v portálu AAD se filtruje velmi špatně, takže se hodí PowerShell a právě ten využijeme k tomu, abychom zjistili počet a konkrétní seznam našich zařízení, která jsou joinovaná jak do lokálního AD, tak prostřednictvím např. AAD Connectu do AAD. Informace nám vytáhne následující script:

#kontrola, za máte modul MsolService a pokud ne, tak jeho instalace
if((get-module -Name MsolService) -eq $null) {
Install-Module -Name MsolService -force
import-module MsolService
}else {
import-module AzureAD
}
#připojení k AAD prostřednictvím tenantu Office 365
Connect-MsolService
#vylistování všech zařízení do tabulky
Get-msoldevice -all | Where-Object {$_.DeviceTrustType -eq "Domain Joined"} | select displayname, DeviceOSType, DeviceOsVersion, DeviceTrustType, DeviceTrustLevel, DeviceObjectVersion, ApproximateLastLogonTimestamp | Out-GridView
#stanovení počtu těchto zažízení
(Get-msoldevice -all | Where-Object {$_.DeviceTrustType -eq "Domain Joined"}).count
Posted in: Windows server

Windows server 2022 TP je tu!

Všem fanouškům Windows serveru nyní mohu sdělit, že nové Insider Prewiev je zde! Pokud nejste registrováni a i tak jste zvědaví, českou verzi můžete stáhnout zde. Aktuální build je platný do 31.10.2021
Pro upgrade budete potřebovat licenční klíče, ty jsou:

  • Server Standard: MFY9F-XBN2F-TYFMP-CCV49-RMYVH
  • Datacenter: 2KNJJ-33Y9H-2GXGX-KMQWH-G6H67

Na první dobrou si člověk na totožném HW všimne vyšší rychlosti proti 2016 i 2019, i když vůči té 2019 není nárůst až takový. V desktopovém režimu nechybí vestavěný MS Edge verze 89.0.
PowerShell je nativně ve verzi 5.1. build 20303 revize 1, novější PowerShell 7 je stále potřeba doinstalovat manuálně.

Back to Top