Vytváření a spouštění skriptů PowerShellu z konzoly nástroje Configuration Manager
Platí pro: Configuration Manager (Current Branch)
Configuration Manager má integrovanou schopnost spouštět skripty PowerShellu. PowerShell má výhodu vytváření sofistikovaných automatizovaných skriptů, které jsou srozumitelné a sdílené s větší komunitou. Skripty zjednodušují vytváření vlastních nástrojů pro správu softwaru a umožňují rychle provádět běžné úkoly, což vám umožní snadněji a konzistentněji provádět velké úlohy.
Poznámka
Ve verzi 2006 a starších nástroj Configuration Manager tuto volitelnou funkci ve výchozím nastavení nepovoluje. Tuto funkci musíte před použitím povolit. Další informace najdete v tématu Povolení volitelných funkcí z aktualizací.
S touto integrací v nástroji Configuration Manager můžete pomocí funkce Spustit skripty provádět následující věci:
- Vytvářejte a upravujte skripty pro použití s nástrojem Configuration Manager.
- Správa využití skriptů prostřednictvím rolí a oborů zabezpečení
- Podpora složek pro skripty
- Spouštějte skripty na kolekcích nebo jednotlivých místně spravovaných počítačích s Windows.
- Naplánujte modul runtime skriptů ve standardu UTC na kolekcích nebo jednotlivých místně spravovaných počítačích s Windows.
- Získejte rychlé výsledky agregovaných skriptů z klientských zařízení.
- Monitorujte spouštění skriptů a zobrazte výsledky generování sestav z výstupu skriptu.
Upozornění
- Vzhledem k výkonu skriptů vám připomínáme, abyste byli úmyslní a opatrní při jejich používání. Zavedli jsme další bezpečnostní opatření, která vám pomohou; oddělené role a obory. Před spuštěním skriptů ověřte přesnost a ověřte, že pocházejí z důvěryhodného zdroje, abyste zabránili neúmyslnému spuštění skriptů. Mějte na paměti rozšířené znaky nebo jiné obfuskace a poučte se o zabezpečení skriptů. Další informace o zabezpečení skriptů PowerShellu
- Určitý antimalwarový software může nechtěně aktivovat události proti spuštění skriptů nástroje Configuration Manager nebo funkcím CMPivot. Doporučuje se vyloučit %windir%\CCM\ScriptStore, aby antimalwarový software umožnil spuštění těchto funkcí bez rušení.
Požadavky
- Pokud chcete spouštět skripty PowerShellu, musí klient používat PowerShell verze 3.0 nebo novější. Pokud ale skript, který spustíte, obsahuje funkce z novější verze PowerShellu, musí klient, na kterém skript spustíte, používat tuto verzi PowerShellu.
- Aby bylo možné spouštět skripty, musí na klientech Nástroje Configuration Manager běžet klient verze 1706 nebo novější.
- Pokud chcete používat skripty, musíte být členem příslušné role zabezpečení nástroje Configuration Manager.
- Pokud chcete importovat a vytvářet skripty – Váš účet musí mít oprávnění k vytvářenískriptů SMS.
- Pokud chcete schvalovat nebo odepřít skripty – Váš účet musí mít oprávnění Ke schválenískriptů SMS.
- Pokud chcete spouštět skripty – Váš účet musí mít oprávnění Spustit skript pro kolekce.
Další informace o rolích zabezpečení nástroje Configuration Manager:
Obory zabezpečení pro spuštěné skripty
Role zabezpečení pro spuštěné skripty
Základy správy na základě rolí.
Omezení
Funkce Spustit skripty aktuálně podporuje:
- Skriptovací jazyky: PowerShell
- Typy parametrů: celé číslo, řetězec a seznam.
Upozornění
Mějte na paměti, že při použití parametrů se otevírá prostor pro potenciální riziko útoku prostřednictvím injektáže PowerShellu. Existují různé způsoby, jak to zmírnit a obejít, například použití regulárních výrazů k ověření vstupu parametru nebo použití předdefinovaných parametrů. Běžným osvědčeným postupem je nezahrnovat tajné kódy do skriptů PowerShellu (bez hesel atd.). Další informace o zabezpečení skriptů PowerShellu
Spuštění autorů a schvalovatelů skriptů
Funkce Spustit skripty používá koncept autorů skriptů a schvalovatelů skriptů jako samostatné role pro implementaci a provádění skriptu. Oddělení rolí autora a schvalovatele umožňuje důležitou kontrolu procesu výkonného nástroje, kterým je Spouštění skriptů. Existuje další role spouštěčů skriptů , která umožňuje spouštět skripty, ale ne vytvářet ani schvalovat skripty. Viz Vytváření rolí zabezpečení pro skripty.
Řízení rolí skriptů
Ve výchozím nastavení nemůžou uživatelé schválit skript, který vytvořili. Vzhledem k tomu, že skripty jsou výkonné, univerzální a potenciálně nasazené na mnoha zařízeních, můžete role oddělit mezi osobou, která skript vytváří, a osobou, která skript schvaluje. Tyto role poskytují další úroveň zabezpečení proti spuštění skriptu bez dohledu. Sekundární schvalování můžete vypnout, aby se usnadnilo testování.
Schválení nebo zamítnutí skriptu
Skripty musí být před spuštěním schváleny rolí schvalovatele skriptů . Schválení skriptu:
- V konzole nástroje Configuration Manager klikněte na Softwarová knihovna.
- V pracovním prostoru Softwarová knihovna klikněte na Skripty.
- V seznamu Skript zvolte skript, který chcete schválit nebo zamítnout, a potom na kartě Domů ve skupině Skript klikněte na Schválit nebo zamítnout.
- V dialogovém okně Schválit nebo zamítnout skript vyberte u skriptu Schválit nebo Zamítnout . Volitelně můžete zadat komentář k vašemu rozhodnutí. Pokud skript zamítnete, nebude možné ho spustit na klientských zařízeních.
- Dokončete průvodce. V seznamu Skript uvidíte, že se sloupec Stav schválení mění v závislosti na akci, kterou jste provedli.
Povolit uživatelům schvalovat vlastní skripty
Toto schválení se primárně používá pro testovací fázi vývoje skriptů.
- V konzole nástroje Configuration Manager klikněte na Správa.
- V pracovním prostoru Správa rozbalte Položku Konfigurace lokality a potom klikněte na položku Lokality.
- V seznamu webů zvolte svůj web a potom na kartě Domů ve skupině Weby klikněte na Nastavení hierarchie.
- Na kartě Obecné v dialogovém okně Vlastnosti nastavení hierarchie zrušte zaškrtnutí políčka Autoři skriptů vyžadují dalšího schvalovatele skriptu.
Důležité
Osvědčeným postupem je nepovolit autorovi skriptu schvalovat vlastní skripty. Mělo by to být povolené jenom v nastavení testovacího prostředí. Pečlivě zvažte potenciální dopad změny tohoto nastavení v produkčním prostředí.
Rozsahy zabezpečení
Funkce Spustit skripty používá obory zabezpečení, což je existující funkce nástroje Configuration Manager, k řízení vytváření a spouštění skriptů prostřednictvím přiřazování značek, které představují skupiny uživatelů. Další informace o používání oborů zabezpečení najdete v tématu Konfigurace správy na základě rolí pro Configuration Manager.
Vytváření rolí zabezpečení pro skripty
Tři role zabezpečení používané ke spouštění skriptů se ve výchozím nastavení v Nástroji Configuration Manager nevytvoří. Pokud chcete vytvořit role spouštěčů skriptů, autorů skriptů a schvalovatelů skriptů, postupujte podle uvedených kroků.
- V konzole nástroje Configuration Manager přejděte na Správa>rolí zabezpečení zabezpečení>.
- Klikněte pravým tlačítkem na roli a klikněte na Kopírovat. Role, kterou kopírujete, už má přiřazená oprávnění. Ujistěte se, že používáte jenom požadovaná oprávnění.
- Dejte vlastní roli Název a Popis.
- Přiřaďte roli zabezpečení podle níže uvedených oprávnění.
Oprávnění role zabezpečení
Název role: Skript Runners
- Popis: Tato oprávnění umožňují této roli spouštět pouze skripty, které byly dříve vytvořeny a schváleny jinými rolemi.
- Dovolení: Ujistěte se, že jsou následující možnosti nastavené na Ano.
Kategorie | Povolení | Stav |
---|---|---|
Sbírka | Spustit skript | Ano |
Poloha | Číst | Ano |
Skripty SMS | Číst | Ano |
Název role: Autoři skriptů
- Popis: Tato oprávnění umožňují této roli vytvářet skripty, ale nemůžou je schvalovat ani spouštět.
- Oprávnění: Ujistěte se, že jsou nastavená následující oprávnění.
Kategorie | Povolení | Stav |
---|---|---|
Sbírka | Spustit skript | Ne |
Poloha | Číst | Ano |
Skripty SMS | Vytvoření | Ano |
Skripty SMS | Číst | Ano |
Skripty SMS | Vymazání | Ano |
Skripty SMS | Upravit | Ano |
Název role: Schvalovatelé skriptů
- Popis: Tato oprávnění umožňují této roli schvalovat skripty, ale nemůžou je vytvářet ani spouštět.
- Dovolení: Ujistěte se, že jsou nastavená následující oprávnění.
Kategorie | Povolení | Stav |
---|---|---|
Sbírka | Spustit skript | Ne |
Poloha | Číst | Ano |
Skripty SMS | Číst | Ano |
Skripty SMS | Schválit | Ano |
Skripty SMS | Upravit | Ano |
Příklad oprávnění skriptů SMS pro roli autoři skriptů
Podpora složek pro skripty
Od verze 2403 můžete skripty uspořádat pomocí složek. Tato změna umožňuje lepší kategorizaci a správu skriptů.
Otevřete konzolu nástroje Configuration Manager a přejděte do pracovního prostoru Softwarová knihovna. Na pásu karet nebo v nabídce po kliknutí pravým tlačítkem vyberte v části Skripty některou z následujících možností:
- Vytvořit složku
- Odstranit složku
- Přejmenovat složku
- Přesunout složky
- Nastavení oborů zabezpečení
Vytvoření skriptu
- V konzole nástroje Configuration Manager klikněte na Softwarová knihovna.
- V pracovním prostoru Softwarová knihovna klikněte na Skripty.
- Na kartě Domů ve skupině Vytvořit klikněte na Vytvořit skript.
- Na stránce Skript v Průvodci vytvořením skriptu nakonfigurujte následující nastavení:
- Název skriptu – zadejte název skriptu. I když můžete vytvořit více skriptů se stejným názvem, použití duplicitních názvů ztěžuje vyhledání skriptu, který potřebujete, v konzole nástroje Configuration Manager.
- Skriptovací jazyk – V současné době se podporují jenom skripty PowerShellu.
- Import – Importuje do konzoly skript PowerShellu. Skript se zobrazí v poli Skript .
- Vymazat – odebere aktuální skript z pole Skript.
- Script – zobrazí aktuálně importovaný skript. Skript v tomto poli můžete podle potřeby upravit.
- Dokončete průvodce. Nový skript se zobrazí v seznamu Skript se stavem Čeká se na schválení. Před spuštěním tohoto skriptu na klientských zařízeních ho musíte schválit.
Důležité
Při použití funkce Spustit skripty se vyhněte skriptování restartování zařízení nebo restartování agenta Configuration Manageru. To by mohlo vést ke stavu průběžného restartování. V případě potřeby existují vylepšení funkce oznámení klienta, která umožňují restartování zařízení. Sloupec čekající na restartování může pomoct identifikovat zařízení, která potřebují restartování.
Parametry skriptu
Přidání parametrů do skriptu poskytuje větší flexibilitu pro vaši práci. Můžete zahrnout až 10 parametrů. Následující informace popisují aktuální možnosti funkce Spustit skripty s parametry skriptu pro; Řetězec, celočíselné datové typy. K dispozici jsou také seznamy přednastavených hodnot. Pokud má váš skript nepodporované datové typy, zobrazí se upozornění.
V dialogovém okně Vytvořit skript klikněte v části Skript na Parametry skriptu.
Každý z parametrů skriptu má vlastní dialogové okno pro přidání dalších podrobností a ověření. Pokud je ve skriptu výchozí parametr, bude v uživatelském rozhraní parametru výčtu a můžete ho nastavit. Configuration Manager nepřepíše výchozí hodnotu, protože skript nikdy přímo neupraví. Můžete si to představit jako "předem vyplněné navrhované hodnoty" v uživatelském rozhraní, ale Configuration Manager neposkytuje přístup k "výchozím" hodnotám za běhu. To se dá obejít úpravou skriptu tak, aby měl správné výchozí hodnoty.
Důležité
Hodnoty parametrů nemohou obsahovat jednu uvozovku.
Existuje známý problém, kdy se hodnoty parametrů, které zahrnují jednoduché uvozovky nebo jsou v nich uzavřeny, nepředávají do skriptu správně. Při zadávání výchozích hodnot parametrů obsahujících mezeru ve skriptu použijte místo toho dvojité uvozovky. Při zadávání výchozích hodnot parametrů během vytváření nebo provádění skriptu není nutné vložit výchozí hodnotu do dvojitých nebo jednoduchých uvozovek bez ohledu na to, zda hodnota obsahuje mezeru nebo ne.
Ověření parametrů
Každý parametr ve skriptu má dialogové okno Vlastnosti parametru skriptu , ve které můžete přidat ověření pro tento parametr. Po přidání ověření by se měly zobrazit chyby, pokud zadáváte hodnotu parametru, který nevyhovuje ověření.
Příklad: Jméno
V tomto příkladu můžete nastavit vlastnosti parametru řetězce FirstName.
Oddíl ověření v dialogovém okně Vlastnosti parametru skriptu obsahuje následující pole pro vaše použití:
- Minimální délka – minimální počet znaků pole Jméno .
- Maximální délka – maximální počet znaků pole Jméno
- RegEx – zkratka pro Regulární výraz. Další informace o použití regulárního výrazu najdete v další části Použití ověření regulárního výrazu.
- Vlastní chyba – je užitečná pro přidání vlastní chybové zprávy, která nahrazuje všechny chybové zprávy ověření systému.
Použití ověření regulárního výrazu
Regulární výraz je kompaktní forma programování pro kontrolu řetězce znaků proti zakódovanému ověření. Například umístěním do pole RegEx můžete zkontrolovat, jestli v poli [^A-Z]
FirstName chybí znak velké abecedy.
Zpracování regulárního výrazu pro toto dialogové okno je podporováno rozhraním .NET Framework. Pokyny k používání regulárních výrazů najdete v tématu Regulární výrazy .NET a jazyk regulárních výrazů.
Příklady skriptů
Tady je několik příkladů, které ilustrují skripty, které byste s touto funkcí mohli chtít použít.
Vytvoření nové složky a souboru
Tento skript vytvoří v rámci složky novou složku a soubor vzhledem k zadání názvů.
Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)
New-Item $FolderName -type directory
New-Item $FileName -type file
Získání verze operačního systému
Tento skript používá rozhraní WMI k dotazování počítače na jeho verzi operačního systému.
Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption
Úprava nebo kopírování skriptů PowerShellu
Existující skript PowerShellu, který se používá s funkcí Spustit skripty, můžete upravit nebo zkopírovat. Místo opětovného vytvoření skriptu, který potřebujete změnit, teď ho přímo upravte. Obě akce používají stejné prostředí průvodce jako při vytváření nového skriptu. Když upravíte nebo zkopírujete skript, Configuration Manager neuchová stav schválení.
Tip
Neupravujte skript, který je aktivně spuštěný na klientech. Nedokončí spuštění původního skriptu a z těchto klientů možná nedostanete požadované výsledky.
Úprava skriptu
- V pracovním prostoru Softwarová knihovna přejděte do uzlu Skripty.
- Vyberte skript, který chcete upravit, a pak na pásu karet klikněte na Upravit .
- Změňte nebo znovu naimportujte skript na stránce Podrobnosti skriptu .
- Kliknutím na Další zobrazíte souhrn a až budete hotovi s úpravami , zobrazíte souhrn a pak zavřete .
Kopírování skriptu
- V pracovním prostoru Softwarová knihovna přejděte do uzlu Skripty.
- Vyberte skript, který chcete zkopírovat, a pak na pásu karet klikněte na Kopírovat .
- Přejmenujte skript v poli Název skriptu a proveďte další potřebné úpravy.
- Kliknutím na Další zobrazíte souhrn a až budete hotovi s úpravami , zobrazíte souhrn a pak zavřete .
Spuštění skriptu
Po schválení je možné skript spustit na jednom zařízení nebo v kolekci. Jakmile začnete spouštět skript, spustí se rychle prostřednictvím systému s vysokou prioritou, který vyprší za hodinu. Výsledky skriptu se pak vrátí pomocí systému stavových zpráv.
Výběr kolekce cílů pro skript:
- V konzole nástroje Configuration Manager klikněte na Prostředky a kompatibilita.
- V pracovním prostoru Prostředky a kompatibilita klikněte na Kolekce zařízení.
- V seznamu Kolekce zařízení klikněte na kolekci zařízení, na kterých chcete skript spustit.
- Vyberte kolekci podle svého výběru a klikněte na Spustit skript.
- Na stránce Skript v průvodci Spuštěním skriptu zvolte v seznamu skript. Zobrazí se pouze schválené skripty.
- Klikněte na Další a dokončete průvodce.
Důležité
Pokud se skript nespustí, například proto, že je cílové zařízení během hodin vypnuté, musíte ho spustit znovu.
Plánování modulu runtime skriptů
Počínaje verzí aktuální větve nástroje Configuration Manager 2309 teď můžete naplánovat modul runtime skriptů ve standardu UTC.
Naplánování spuštění skriptu v kolekci:
V konzole nástroje Configuration Manager klikněte na Prostředky a kompatibilita.
V pracovním prostoru Prostředky a kompatibilita klikněte na Kolekce zařízení.
V seznamu Kolekce zařízení klikněte na kolekci zařízení, na kterých chcete skript naplánovat.
Vyberte kolekci podle svého výběru a klikněte na Spustit skript.
Na stránce Plánování zaškrtněte políčko Naplánovat spuštění skriptu v a zadejte Čas plánu ve standardu UTC.
Ověřte podrobnosti, které se zobrazují na stránce souhrnu.
Klikněte na Další a dokončete průvodce.
Poznámka
Každých 5 minut se provede maximálně dvacet pět naplánovaných skriptů.
Spuštění cílového počítače
Skript se spustí jako systémový účet nebo účet počítače na cílových klientech. Tento účet má omezený síťový přístup. Veškerý přístup ke vzdáleným systémům a umístěním pomocí skriptu musí být odpovídajícím způsobem zřízen.
Monitorování skriptů
Po zahájení spuštění skriptu na kolekci zařízení použijte následující postup ke sledování operace. Při spouštění skriptu můžete monitorovat v reálném čase a později se vrátit ke stavu a výsledkům spuštění daného skriptu. Data o stavu skriptu se vyčistí v rámci úlohy údržby odstranění zastaralých operací klienta nebo odstranění skriptu.
V konzole nástroje Configuration Manager klikněte na Monitorování.
V pracovním prostoru Monitorování klikněte na Stav skriptu.
V seznamu Stav skriptu zobrazíte výsledky pro každý skript, který jste spustili na klientských zařízeních. Ukončovací kód skriptu 0 obecně značí, že se skript úspěšně spustil.
Plánování monitorování skriptů v kolekci
V konzole nástroje Configuration Manager klikněte na Monitorování.
V pracovním prostoru Monitorování klikněte na uzel Naplánované skripty.
Nový řádek se zobrazí v seznamu naplánovaných skriptů.
Ověřte, že se v seznamu naplánovaných skriptů zobrazil nový řádek. Sloupec state (Stav) by měl mít hodnotu Scheduled (Naplánovano). Sloupec ClientOperationId by měl být prázdný. Ověřte, že ostatní sloupce, jako je Název skriptu, Čas plánování atd., mají odpovídající hodnoty.
Po zobrazení Naplánovaný čas aktualizujte uzel Naplánované skripty . Sloupec stav by měl obsahovat hodnotu Operace klienta byla úspěšně zahájena. Sloupec ClientOperationId by měl mít celočíselnou hodnotu.
V pracovním prostoru Monitorování klikněte na uzel Stav skriptu. Ověřte, že se v seznamu zobrazil nový řádek a hodnota ClientOperationId se rovná ClientOperationId z uzlu Naplánované skripty .
Klikněte na Zobrazit stav a ujistěte se, že se zobrazí výstup skriptu.
Výstup skriptu
Výstup návratového skriptu klienta s formátováním JSON propojením výsledků skriptu do rutiny ConvertTo-Json . Formát JSON konzistentně vrací čitelný výstup skriptu. U skriptů, které nevrací objekty jako výstup, převede rutina ConvertTo-Json výstup na jednoduchý řetězec, který klient vrátí místo json.
Skripty, které získají neznámý výsledek nebo kde byl klient offline, se v grafech nebo datové sadě nezobrazí.
Nevracejte výstup velkých skriptů, protože je zkrácený na 4 kB.
Převeďte objekt výčtu na řetězcovou hodnotu ve skriptech, aby se správně zobrazily ve formátu JSON.
Podrobný výstup skriptu můžete zobrazit v nezpracovaném nebo strukturovaném formátu JSON. Toto formátování usnadňuje čtení a analýzu výstupu. Pokud skript vrátí platný text ve formátu JSON nebo je možné výstup převést na JSON pomocí rutiny PowerShellu ConvertTo-Json , prohlédněte si podrobný výstup buď jako výstup JSON , nebo jako nezpracovaný výstup. V opačném případě je jedinou možností výstup skriptu.
Příklad: Výstup skriptu je převoditelný na platný kód JSON.
Příkaz: $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
Příklad: Výstup skriptu není platný ve formátu JSON.
Příkaz: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Enterprise
Soubory protokolů
Ve výchozím nastavení v klientovi C:\Windows\CCM\logs:
- Scripts.log
- CcmMessaging.log
Ve výchozím nastavení v sadě management management ve složce C:\SMS_CCM\Logs:
- MP_RelayMsgMgr.log
Na serveru lokality ve výchozím nastavení V C:\Program Files\Configuration Manager\Logs:
- SMS_Message_Processing_Engine.log
Automatizace s využitím Windows PowerShellu
K automatizaci některých z těchto úloh můžete použít následující rutiny PowerShellu:
- Approve-CMScript
- Deny-CMScript
- Get-CMScript
- Invoke-CMScript
- New-CMScript
- Remove-CMScript
- Set-CMScript