IRM (Install / Run / Manage) je jednoduchý způsob, jak v prostředí Windows spustit a distribuovat
interní PowerShell skripty jednotně – jedním příkazem přes irm a iex.
Projekt na ps.xservices.cz slouží jako centrální zdroj pro „bootstrap“ skripty, které si umí samy stáhnout
další části, zapsat logy, ověřit prostředí a provést požadovanou akci.
Rychlý start (1 řádek)
Základní princip je: irm stáhne obsah URL a iex jej provede. Nejčastěji se používá takto:
# PowerShell 7+ (doporučeno)
irm https://ps.xservices.cz | iex
# Windows PowerShell 5.1 (alternativa)
powershell -ExecutionPolicy Bypass -NoProfile -Command "iex (irm 'https://ps.xservices.cz/iex')"
Co přesně dělá irm a iex
irm(Invoke-RestMethod) stáhne obsah z URL (typicky čistý text / PowerShell skript).iex(Invoke-Expression) vezme text a provede ho jako PowerShell příkazy.- Váš „bootstrap“ skript pak může stáhnout další moduly, spustit instalaci, zapsat log, udělat kontrolu prostředí apod.
Bezpečný režim: nejdřív zobrazit, pak spustit
Pokud chcete nejdřív zkontrolovat, co se bude spouštět, stáhněte si obsah do proměnné a vypište ho:
# Stáhni obsah do proměnné
$code = irm "https://ps.xservices.cz/iex"
# Vypiš první řádky (rychlá kontrola)
$code -split "`n" | Select-Object -First 40
# Až potom spusť
iex $code
Typické scénáře použití
- Jednorázové spuštění interního skriptu bez kopírování souborů.
- Standardizovaná instalace nástrojů (winget/choco/MSI), nastavení registry/GPO, konfigurace služeb.
- Servisní zásahy: opravy konfigurace, export diagnostiky, sběr HW/SW inventáře.
- Helpdesk: technik pošle uživateli jeden příkaz, který provede řízené kroky a zapíše výsledek.
Doporučený postup pro administrátora
- Otevřete PowerShell jako Správce (pokud skript mění systém).
- Spusťte IRM příkaz (viz „Rychlý start“).
- Sledujte výstup v konzoli – bootstrap typicky ověří prostředí a vypíše prováděné kroky.
- Po dokončení případně proveďte restart (pokud skript upravuje název PC, služby, aktualizace apod.).
Řešení nejčastějších problémů
# Ověření, že je URL dostupné
Test-NetConnection ps.xservices.cz -Port 443
# Jednoduchý HEAD/GET test
try {
$r = Invoke-WebRequest "https://ps.xservices.cz/iex" -UseBasicParsing -TimeoutSec 20
"HTTP: $($r.StatusCode) | Length: $($r.Content.Length)"
} catch {
$_.Exception.Message
}
Poznámka k praxi
Pokud chcete mít spouštění ještě „čitelnější“, dá se bootstrap navrhnout tak, aby po spuštění
vypsal verzi, cílovou akci, volitelné parametry a na konci vytvořil log (např. do %ProgramData%).
Díky tomu se dá snadno dohledat, kdo a kdy skript spustil a s jakým výsledkem.