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

Výpis přihlašovacích údajů a pověření z trezoru Windows

Následující PowerShell příkaz vypíše obsah trezoru systému Windows:

[void][Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime];$vault = New-Object Windows.Security.Credentials.PasswordVault;$vault.RetrieveAll() | % { $_.RetrievePassword();$_} | Select UserName, Resource, Password | Format-Table

V trezoru Windows jsou především síťová pověření, ale i přístupy k webovým službám pomocí IE, či jiného podporovaného programu.

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

Generování hesel v PowerShellu

Každý správce, který se stará o nějaký identitní systém, potřebuje vymýšlet bezpečná jednorázová hesla. K tomu mu může sloužit například následující kousek PowerShell kódu:

$delka = 10
$specZnaku = 2
Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword($delka,$specZnaku)

Verze, která nevyužívá volání .NET:

function Generate-Password
{
param
(
[int] $delka = 12,
[switch] $specZnak
)
$length = $delka
if($specZnak)
{
$charSet = ‚abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789{]+-[*=@:)}$^%;(_!&#?>/|.‘.ToCharArray()
}
else
{
$charSet = ‚abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘.ToCharArray()
}
$rng = New-Object System.Security.Cryptography.RNGCryptoServiceProvider
$bytes = New-Object byte
$rng.GetBytes($bytes)
$result = New-Object char
for ($i = 0 ; $i -lt $length ; $i++) {
$result[$i] = $charSet[$bytes[$i]%$charSet.Length]
}
return (-join $result)
}

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

Vypsání originálního produktového klíče Windows

V systému Windows není možné na pár kliknutí zobrazit původní produktorý klíč. V nastavení Windows je zobrazen v položce aktivace koncovka (posledních několik znaků) produktového klíče, pod kterým je daný systém aktivovaný.
Úplný produktový klíč jde zobrazit pomocí CIM rozhraní s využitím příkazové řádky.

1) Spustit příkazovou řádku jako správce
2) zadat příkaz: wmic path softwarelicensingservice get OA3xOriginalProductKey

Další variantou jsou aplikace pro zobrazování produktových klíčů, které jej dokáži vypsat z registru. Dané aplikace využívají VBS, který ve zjednodušené podobě může vypadat následovně:

Set WshShell = CreateObject(„WScript.Shell“)
MsgBox ConvertToKey(WshShell.RegRead(„HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId“))
Function ConvertToKey(Key)
Const KeyOffset = 52
i = 28
Chars = „BCDFGHJKMPQRTVWXY2346789“
Do
Cur = 0
x = 14
Do
Cur = Cur * 256
Cur = Key(x + KeyOffset) + Cur
Key(x + KeyOffset) = (Cur \ 24) And 255
Cur = Cur Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
If (((29 – i) Mod 6) = 0) And (i <> -1) Then
i = i -1
KeyOutput = „-“ & KeyOutput
End If
Loop While i >= 0
ConvertToKey = KeyOutput
End Function

Posted in: Windows server

Synchronizace 2 složek

Microsoft SyncTool

SyncTool je jedním ze starších drobných nástrojů Microsoftu, který umožňuje provádět synchronizace 2 složek (jedna může být mapovaný síťový disk). Bohužel není možné, aby jednou stranou synchronizace byl cloud, na druhou stranu umí v grafické podobě provést synchronizaci obsahu složek, kterou si jinak mi správci skriptujem na nastavujeme pomocí plánovaných úloh.

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

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

Jak povolit WinRM prostřednictvím zásad skupiny

Tato demonstrace používá systém Windows Server 2012R2 jako řadič domény a Windows 10 jako cílený klientský počítač. Ve scénáři je klientský počítač připojen k doméně s názvem asaputra.com a je umístěn pod cestu OU „WorkstationsW10“. Zásadou může být nový objekt zásad skupiny nebo použití stávajícího objektu zásad skupiny v konzole pro správu zásad skupiny v řadiči domény. V tomto příkladu je vytvořen nový objekt zásad skupiny s názvem „Globální správa“
Kliknutím pravým tlačítkem myši otevřete okno editoru objektu zásady a zvolte „Upravit“. První věc, kterou je třeba udělat, je říct cílovému počítači, aby povolil službu WinRM. Přejděte do Konfigurace počítače> Předvolby> Nastavení ovládacího panelu> Služby, potom klikněte pravým tlačítkem na prázdné místo a zvolte Nový> Servis
Klepnutím na tlačítko OK uložíte parametry, ale zatím nezavírejte editor zásad.
Další, stále na stejném objektu politiky, dalšívěc, kterou je třeba nakonfigurovat, je seznam IP adres, které mají povolen přístup ke vzdálené správě v cílovém počítači. Přejděte na Konfigurace počítače> Zásady> Šablony pro správu> Součásti systému Windows> Vzdálená správa systému Windows (WinRM)> Služby WinRM. Poté dvakrát klikněte na „Povolit vzdálenou správu serveru pomocí WinRM“ a změňte nastavení následovně:
Z hlediska bezpečnosti je nejlepší omezit rozsah adres IP co nejméně. Pro tento příklad je však v poli uvedena hvězdička (*), která umožňuje vzdálený přístup z libovolné adresy IP. Klepnutím na tlačítko OK uložte nastavení a znovu nezavírejte editor zásad.
Poslední věcí, kterou je třeba udělat, je vytvoření nového pravidlapro Firewall na cílovém klientském počítači. Přejděte do Konfigurace počítače> Zásady> Nastavení zabezpečení> Brána firewall systému Windows a pokročilé zabezpečení> Brána firewall systému Windows a pokročilé zabezpečení a potom klepněte pravým tlačítkem myši na Pravidla příchozí> Nové pravidlo

Vyberte Vzdálenou správu systému Windows z předdefinované sady pravidel, jak je uvedeno níže, klepněte na tlačítko Další
Zaškrtněte políčko pouze v profilu domény a soukromí, klikněte na tlačítko Další.Nastavte akci na Povolit připojení.

Klepnutím na tlačítko Dokončit uložte konfiguraci a nyní můžete okno editoru zásad zavřít.
Protože se jedná o počítačovou zásadu, je třeba ji použít na OU, kde je umístěn počítač. Stejně jako v tomto scénáři, jak to vypadá, když je zásada použita:

Po aktualizaci zásad skupiny se všechna tato 3 nakonfigurovaná nastavení projeví v klientském počítači. K ověření nám poslouží příkaz: Test-WsMan [Target Hostname / IP address]
například: Test-WsMan ucpc01
příklad 2: Test-WsMan 192.168.1.64

Pokud příkaz skončí chybou, je potřeba zkontrolovat, zda běží služba WinRM a zda je povolena na FireWall. Individuální řešením na daném PC pak může být příkaz: winrm qc -q

Back to Top