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, 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 8 a 8.1

Windows 10 pro majitele Windows 7

Jak všichni víme, Microsoft již ukončil možnost provedení upgrade z Windows 7 na Windows 10 již 29. července 2016 (resp. 31. prosince 2017), přesto je i dnes (červen 2019) možné získat Windows 10 bez nutnosti zakoupit licenci, pokud vlastníte licenci Windows 7 (s Windows 8 a 8.1 nebyl postup otestován a není znám výsledek takového pokusu). Vše je naprosto jednoduché, v podstatě je využíván mechanismus aktivace systému v případě, že z důvodu chyby nedojde k rozpoznání digitální licence.
Windows 10 nainstalujte bez zadávání licenčního klíče z instalačního obrazu Windows 10 verze 1809 nebo 1903 (Pozor na edici, ta musí být stejná, nebo se řiďte tabulkou níže). Po dokončení instalace klikněte v nastavení na výrazný odkaz aktivovat ještě dnes, následně zvolte možnost změnit kód Product Key a zadejte klíč k Windows 7. Zadání klíče dokončete kliknutím na možnost Další a následně klikněte na Aktivovat. Po dokončení procesu aktivace máte plnohodnotné Windows 10.
Postup byl testován na licencích Windows 7 Pro OEM od společnosti hp. Za výsledek nikomu neručím, je otázkou, zda Váš klíč MS přijme, nebo nikoliv, a jak dlouho daný postup zůstane funkční, můj osobní odhad je, že do konce podpory Windows 7, nebo do konce roku 2020, ale to je již jen osobní spekulace.

Edice Windows 7Edice Windows 10
Starter, Home Basic, Home PremiumHome
Professional, UltimatePro
Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server

Zjištění informací o Off-line instalaci Windows a Off-line úprava registrů

Dnes bych rád ukázal postup, kterým je možné pomocí instalačního média Windows se dostat k informacím obsaženým v registrech off-line instalace Windows, nebo provést některé změny v registrech, které je lepší provádět off-line. Tento postup se hodí především v dnešní době, kdy je nemálo instalací Windows 10 poháněno digitální licencí na základě HW, nebo upgrade nároku ze starší verze Windows. Při reinstalaci Windows s digitální licencí je dnes potřeba (pokud není využito vestavění digitální licence do UFI) vědět, kterou edici máte na instalačním médiu zvolit, což ví člověk bezpečně u svého zařízení, ale u zařízení rodinných příslušníků nebo přátel to již tak jednoznačné být nemusí.
Pojďme se nyní podívat, jak se tedy pomocí registrů dostat k informacím o instalaci, či jak ovlivnit off-line registry operačního systému Windows. Ti, kdož tento odstave čtou z náhledu článku v rubrice by si nyní měli otevřít celý článek. Nyní již k věci, pojďme si ukázat jak na Windows 7 a novějších zjistit informace o OS, nebo udělat zásahy do registru, když systém nestartuje. Pokud systém nestartuje, je tedy v Off-line režimu, je možné PC spustit z instalačního média Windows 7 nebo novějšího bez ohledu na to, jaké Windows od verze 2000 byly na PC instalovány i bez ohledu na to, zda se jednalo o 32 nebo 64 bit instalaci. Příklad ukáži na instalačním médiu Windows 8, s užitím média Windows 10, jsou jednotlivé kroky stejné, jen mají trochu jiné umístění voleb.
Spustíme tedy PC z instalačního média a zvolíme opravit PC.

V příkazovém řádku vyvoláme notepad.exe, abychom pomocí Soubor => Uložit jako mohli vyvolat průzkumník Windows. Pomocí průzkumníka si nyní můžeme zjistit, jak se jmenuje systémový diska off-line instalace, na základě složky Program Files (x86) respektive její nepřítomnosti, zjistíme, zda je instalace x64 nebo x86. Pomocí takto vyvolaného průzkumníka je možné rovněž přenášet soubory na externí jednotky, nebo interní datový disk. Klasické volání Explorer.exe skončí chybou, tento program není možné volat z instalačního média takto na přímo.

Nyní již přistupme k zjištění podrobných informací o instalaci. Tyto informace v případě reinstalace Windows 8, 8.1 nebo 10 potřebujeme pro uplatnění elektronické licence.
Zavřeme notepad a zavoláme regedit.exe. Klikneme na větev HKEY_LOCAL_MACHINE a následně použijeme Soubor => Načíst Podregistr

Na systémovém disku si najdeme složku Windows\System32\Config

Najdeme si registrovou větev SOFTWARE a zvolíme otevřít.

Nyní zadáme název, pod kterým se nám tato větev registru načte.

Nyní daný podregistr najdeme.

V načteném podregistru najdeme následující cestu: HKEY_LOCAL_MACHINE\Off-line\Microsoft\Windows NT\CurrentVersion

Zde vidíme všechny informace o systému, BuildLabEx obsahuje architekturu systému, zde si můžeme potvrdit naše zjištění ze souborového systému. Produktový klíč je možné zjistit pomocí nástrojů třetích stran, např. Nirsoft. Po dokončení práce zavřeme regedit a příkazem Exit se dostaneme z příkazového řádku dostaneme do možností opravy počítače, kde je možné PC ukončit, nebo se pokusit o automatické opravy, pokud jsme použili správné instalační médium.

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

Vypínání, aneb PowerManagement

Pokud potřebuji systém restartovat úplně, nebo to provést vzdáleně, nezbývá, nežli použít příkazovou řádku. Základem je příkaz shutdown, který je vyvolatelný z příkazové řádky, nebo z možnosti spustit (klávesa Start + R). Jeho všechny možné parametry nalezeme v níže uvedeném přehledu.

/?Zobrazí nápovědu. Stejný výsledek dostanete, i když nezadáte žádný parametr.
/iZobrazí grafické uživatelské rozhraní (GUI).
/lOdhlášení. Nelze použít s parametrem /m nebo /d.
/sVypne místní počítač.
/rZcela vypne a restartuje počítač.
/gZcela vypne a restartuje počítač. Po novém spuštění počítače restartujte všechny registrované aplikace.
/aPřeruší vypínání systému. Lze použít pouze v časovém limitu. V kombinaci s /fw vymaže všechna čekající spuštění do firmwaru.
/pVypne místní počítač bez časového limitu nebo upozornění. Lze použít pouze s přepínači /d a /f.
/hUvede místní počítač do režimu hibernace.
/hybridVypne počítač a připraví jej na rychlé spuštění. Musí být použito s parametrem /s.
/fwV kombinaci s možností vypnutí způsobí, aby příští spuštění přešlo do uživatelského rozhraní firmwaru.
/eDokumentuje důvod neočekávaného vypnutí počítače.
/oUmožňuje přejít do nabídky rozšířených možností spuštění a restartovat počítač. Musí být použito s parametrem /r.
/m \\počítačUrčuje cílový počítač.
/t xxxNastaví časový limit před vypnutím na xxx sekund. Platný rozsah je 0–315360000 (10 let), výchozí hodnota je 30. Je-li časový limit větší než 0, předpokládá se použití parametru /f.
/c „komentář“Komentář k důvodu restartování nebo vypnutí. Povoleno je maximálně 512 znaků.
/fVynutí ukončení spuštěných aplikací bez předchozího upozornění. Použití parametru /f se předpokládá, pokud je pro parametr /t zadána větší hodnota než 0.
/d [p|u:]xx:yyZadejte důvod restartování nebo vypnutí.
p označuje, že restartování nebo vypnutí je plánované.
u označuje, že důvod definuje uživatel.
Není-li zadán parametr p ani u, je restartování nebo vypnutí
neplánované.
xx je číslo závažného důvodu (kladné celé číslo menší než 256).
yy je číslo méně závažného důvodu (kladné celé číslo menší než 65 536).

Přehled je dobrá věc, ale co nějaké praktické příklady? Prosím, ukáži zdrojový kód dvou cmd skriptů, resp. dávek, které umožňují pracovat s napájením. Níže uvedené skripty je potřeba zkopírovat do textového souboru, kterému po uložení změníte koncovku z txt na cmd.
Hned ta první umožní nalánovat restart PC po uplynutí nějaké doby zadané v hodinách.
echo off
echo Plánovaný restart
echo ========================
set /p cas=Zadejte čas, za který se má provést akce v hodinách:
set /a „time=cas*3600“
shutdown /g /f /t %time%

REM konec skriptu

Druhý příklad je skript, který umožní komplexní práci s vypínáním a například směřovat další spuštění do nouzového režimu.


echo off
echo Power Management
echo =========================================================
echo Mozne akce:
echo 1 = Restart
echo 2 = Vypnout
echo 3 = Hybernace
echo 4 = Moznot přechodu do BIOS
echo 5 = Rozsirene moznosti spousteni
echo 6 = Zobrazí grafické prostredi
echo 7 = Zruseni planovaneho vypnuti/restartu
set /p akce=Zadejte cislo akce:
if akce==1 goto reset
if akce==2 goto vypnout
if akce==3 goto Hyber
if akce==4 goto BIOS
if akce==5 goto nouze
if akce==6 goto GUI
if akce==7 goto Zdrus
set /p cas=Zadejte cas, za který se ma provest akce v hodinach:
set /a „time=cas*3600“
reset:
shutdown /g /f /t %time%
goto End

vypnout:
shutdown /s /f /t %time%
goto End

Hyber:
shutdown /h /f /t %time%
goto End

BIOS:
shutdown /fw /t %time%
Goto End

nouze:
shutdown /o /t %time%
Goto End

GUI:
shutdown /i /t %time%
Goto End

Zdrus:
shutdown /a

End:
echo Vse nastaveno
exit

Doufám, že uvedené informace jsou užitečné a skripty dobře pochopitelné.

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 10, Windows 11, Windows 8 a 8.1

Obnova systémových souborů z instalačního DVD

Pojďme si ukázat, jak se dá provést něco, čemu se mezi odporníky říká inplace update, neboli update systému na totožnou verzi a edici za účelem obnovení systémových souborů.


1. vložíme instalační disk s naším OS (pokud jej nemáme, tak si stáhneme iso soubor z těchto stránek, ten stačí otevřít v průzkumníku)

2. instalátor uzavřeme

3. otevřeme tento počítač a zobrazíme obsah instalačního DVD (pravé tlačítko myši -> otevřít nebo prozkoumat)

4. ve složce sources spustíme setup.exe (nesmíme užít základní z hlavního adresáře!!!)

5. zvolíme instalaci aktualizací (dle uvážení)

6. zadáme licenční číslo produkt key

7. potvrdíme licenční smlouvu

8. klikneme na položku upgrade!!

9. po vyšetření kompatibility dáme další

10. dokončíme instalaci

11. registrujeme náš systém

12. užíváme si bez ztráty dat a nastavení OS i našich původních aplikací.

Back to Top