IT Q&A

Znalostní báze postupů a řešení v oblasti IT.
Reset

Xservices PowerShell Bootstrap (IRM | IEX)

PowerShell Aktualizováno 04.03.2026 08:36

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:

Spuštění IRM bootstrapu PowerShell
# 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:

Kontrola obsahu před spuštěním PowerShell
# 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

  1. Otevřete PowerShell jako Správce (pokud skript mění systém).
  2. Spusťte IRM příkaz (viz „Rychlý start“).
  3. Sledujte výstup v konzoli – bootstrap typicky ověří prostředí a vypíše prováděné kroky.
  4. 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ů

Diagnostika konektivity PowerShell
# 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.