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í.

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

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

Výpis PC, která si rok neměnila heslo

Jak všichni správci AD ví, i počítače dodržují ze zdvořilosti politiku na změnu hesla. Reálně by to ovšem dělat nemusely, protože heslo počítače má 128 míst, takže jeho prolomení se tím značně komplikuje. Vyjímaje doménových řadičů si ovšem počítače mění heslo v souladu s default domain policy.  Pokud si PC např. rok nezměnil heslo, patrně je vyřazený, nebo opravdu nebyl v dosahu AD. Následující skript vyhledá taková PC a dokáže je smazat, ale musíte si dát pozor na doménové řadiče.

$Date = ((Get-Date).AddDays(-365))
$DC2 = Read-host -promt "Zadejte druhý řád názvu domény: "
$DC1 = Read-host -promt "Zadejte první řád názvu domény: "
#Počítače s více jak ro neměněným heslem​
Get-ADComputer -Filter 'PasswordLastSet -le $Date' -SearchBase "CN=Computers,DC= $DC2,DC=$DC1" -Properties PasswordLastSet | where Enabled -eq $true | FT Name,PasswordLastSet ​
#zakáže PC s rok neměněnýn heslem​
$zakazat = 0​
$zakazat = Read-Host -Prompt "Pro zakázání všech vypsaných účtů zvolte zadejte 1 jinak 0: "​
if($zakazat -eq 1)​
{​
    Disable-ADAccount -Identity (Get-ADComputer -Filter 'PasswordLastSet -le $Date' -Properties PasswordLastSet | where Enabled -eq $true)​
    Write-Host "Počítače byly zakázány"​
}​
else​
{​
    Write-Host "Žádný úet nebyl zakázán"​
}
Back to Top