Jak používat proměnné pořadí úkolů v nástroji Configuration Manager

Platí pro: Configuration Manager (Current Branch)

Modul pořadí úkolů ve funkci nasazení operačního systému nástroje Configuration Manager používá k řízení chování mnoho proměnných. Tyto proměnné použijte pro:

  • Nastavení podmínek na schodech
  • Změna chování u konkrétních kroků
  • Použití ve skriptech pro složitější akce

Odkaz na všechny dostupné proměnné pořadí úkolů najdete v tématu Proměnné pořadí úkolů.

Typy proměnných

Existuje několik typů proměnných:

Předdefinované proměnné

Předdefinované proměnné poskytují informace o prostředí, ve kterém se pořadí úkolů spouští. Jejich hodnoty jsou k dispozici v celém pořadí úkolů. Modul pořadí úkolů obvykle inicializuje předdefinované proměnné před spuštěním libovolných kroků.

Například je proměnná prostředí, která určuje cestu, _SMSTSLogPath do které komponenty nástroje Configuration Manager zapisují soubory protokolu. K této proměnné prostředí má přístup libovolný krok pořadí úkolů.

Pořadí úkolů vyhodnotí některé proměnné před každým krokem. Například _SMSTSCurrentActionName vypíše název aktuálního kroku.

Proměnné akcí

Proměnné akcí pořadí úkolů určují nastavení konfigurace, které používá jeden krok pořadí úkolů. Ve výchozím nastavení krok před spuštěním inicializuje svá nastavení. Tato nastavení jsou k dispozici pouze během spuštění přidruženého kroku pořadí úkolů. Pořadí úkolů přidá hodnotu proměnné akce do prostředí před spuštěním kroku. Po spuštění kroku pak odebere hodnotu z prostředí.

Do pořadí úkolů například přidáte krok Spustit příkazový řádek . Tento krok zahrnuje vlastnost Začít v . Pořadí úkolů ukládá výchozí hodnotu této vlastnosti jako proměnnou WorkingDirectory . Pořadí úkolů inicializuje tuto hodnotu před spuštěním kroku příkazového řádku Spustit . V průběhu tohoto kroku získejte přístup k hodnotě vlastnosti Začít v z hodnoty WorkingDirectory . Po dokončení kroku pořadí úkolů odebere hodnotu proměnné WorkingDirectory z prostředí. Pokud pořadí úkolů obsahuje další krok příkazového řádku Spustit , inicializuje novou WorkingDirectory proměnnou. V tomto okamžiku pořadí úkolů nastaví proměnnou na počáteční hodnotu aktuálního kroku. Další informace najdete v tématu WorkingDirectory.

Výchozí hodnota proměnné akce je přítomna při spuštění kroku. Pokud nastavíte novou hodnotu, bude dostupná pro více kroků v pořadí úkolů. Pokud přepíšete výchozí hodnotu, nová hodnota zůstane v prostředí. Tato nová hodnota přepíše výchozí hodnotu pro ostatní kroky v pořadí úkolů. Jako první krok pořadí úkolů například přidáte krok Nastavit proměnnou pořadí úkolů . Tento krok nastaví proměnnou WorkingDirectory na C:\. Každý krok příkazu Spustit příkazový řádek v pořadí úkolů používá novou hodnotu počátečního adresáře.

Některé kroky pořadí úkolů označí určité proměnné akce jako výstup. Kroky dále v pořadí úkolů přečtou tyto výstupní proměnné.

Poznámka

Ne všechny kroky pořadí úkolů mají proměnné akcí. I když jsou například s akcí Povolit BitLocker spojené proměnné, s akcí Zakázat BitLocker žádné proměnné nejsou.

Vlastní proměnné

Jedná se o všechny proměnné, které Configuration Manager nevytváří. Inicializujte vlastní proměnné, které se použijí jako podmínky, v příkazových řádcích nebo ve skriptech.

Při zadávání názvu nové proměnné pořadí úkolů postupujte podle těchto pokynů:

  • Název proměnné pořadí úkolů může obsahovat písmena, čísla, znak podtržítka (_) a spojovník (-).

  • Názvy proměnných pořadí úkolů mají minimální délku jeden znak a maximální délku 256 znaků.

  • Proměnné definované uživatelem musí začínat písmenem (A-Z nebo a-z).

  • Uživatelem definované názvy proměnných nemohou začínat podtržítkem. Před znakem podtržítka se předchází pouze proměnné pořadí úkolů jen pro čtení.

  • V názvech proměnných pořadí úkolů se nerozlišují malá a velká písmena. OSDVAR Například a osdvar jsou stejnou proměnnou pořadí úkolů.

  • Názvy proměnných pořadí úkolů nesmí začínat ani končit mezerou. Nemůžou v nich být ani vložené mezery. Pořadí úkolů ignoruje všechny mezery na začátku nebo konci názvu proměnné.

Počet proměnných pořadí úkolů, které můžete vytvořit, není nijak omezený. Počet proměnných je však omezen velikostí prostředí pořadí úkolů. Celkový limit velikosti pro prostředí pořadí úkolů je 8 kB. Další informace najdete v tématu Zmenšení velikosti zásad pořadí úkolů.

Proměnné jen pro čtení

Hodnotu některých proměnných, které jsou jen pro čtení, změnit nelze. Název obvykle začíná podtržítkem (_). Pořadí úkolů je používá pro své operace. Proměnné jen pro čtení jsou viditelné v prostředí pořadí úkolů.

Tyto proměnné jsou užitečné ve skriptech nebo příkazových řádcích. Například spuštěním příkazového řádku a předáním výstupu do souboru protokolu s _SMSTSLogPath ostatními soubory protokolu.

Poznámka

Proměnné pořadí úkolů jen pro čtení lze číst po krocích v pořadí úkolů, ale nelze je nastavit. Například použijte proměnnou jen pro čtení jako součást příkazového řádku pro krok příkazového řádku Spustit příkazový řádek . Proměnnou jen pro čtení nemůžete nastavit pomocí kroku Nastavit proměnnou pořadí úkolů .

Proměnné pole

Pořadí úkolů ukládá některé proměnné jako pole. Každý prvek v matici představuje nastavení jednoho objektu. Tyto proměnné použijte, pokud má zařízení ke konfiguraci více než jeden objekt. Následující kroky pořadí úkolů používají proměnné matice:

Jak nastavit proměnné

U vlastních proměnných nebo proměnných, které nejsou jen pro čtení, existuje několik metod pro inicializaci a nastavení hodnoty proměnné:

Odstraňte proměnnou z prostředí pomocí stejných metod jako při vytváření proměnné. Pokud chcete proměnnou odstranit, nastavte hodnotu proměnné na prázdný řetězec.

Můžete kombinovat metody nastavení proměnné pořadí úkolů na různé hodnoty pro stejnou sekvenci. Například nastavte výchozí hodnoty pomocí editoru pořadí úkolů a pak nastavte vlastní hodnoty pomocí skriptu.

Pokud nastavíte stejnou proměnnou různými metodami, modul pořadí úkolů použije následující pořadí:

  1. Nejprve vyhodnotí proměnné kolekce.

  2. Proměnné specifické pro zařízení přepíší stejnou proměnnou nastavenou v kolekci.

  3. Proměnné nastavené libovolnou metodou během pořadí úkolů mají přednost před proměnnými kolekce nebo zařízení.

Obecná omezení hodnot proměnných pořadí úkolů

  • Hodnoty proměnných pořadí úkolů nemohou být delší než 4 000 znaků.

  • Proměnnou pořadí úkolů jen pro čtení nemůžete změnit. Proměnné jen pro čtení mají názvy, které začínají podtržítkem (_).

  • Hodnoty proměnných pořadí úkolů můžou rozlišovat malá a velká písmena v závislosti na použití hodnoty. Ve většině případů hodnoty proměnných pořadí úkolů nerozlišují velká a malá písmena. V proměnné, která obsahuje heslo, se rozlišují malá a velká písmena.

Nastavit proměnnou pořadí úkolů

Tento krok v pořadí úkolů použijte k nastavení jedné proměnné na jednu hodnotu.

Další informace najdete v tématu Nastavení proměnné pořadí úkolů.

Nastavení dynamických proměnných

Tento krok použijte v pořadí úkolů k nastavení jedné nebo více proměnných pořadí úkolů. V tomto kroku definujete pravidla, která určují, které proměnné a hodnoty se mají použít.

Další informace naleznete v tématu Nastavení dynamických proměnných.

Spuštění skriptu PowerShellu

Pomocí tohoto kroku v pořadí úkolů můžete pomocí skriptu PowerShellu nastavit proměnnou pořadí úkolů.

Můžete zadat název skriptu z balíčku nebo přímo zadat skript PowerShellu v kroku. Pak použijte vlastnost step pro výstup do proměnné pořadí úkolů a uložte výstup skriptu do vlastní proměnné pořadí úkolů.

Další informace o tomto kroku najdete v tématu Spuštění skriptu PowerShellu.

Poznámka

Pomocí skriptu PowerShellu můžete také nastavit jednu nebo více proměnných s objektem TSEnvironment . Další informace najdete v tématu Použití proměnných ve spuštěném pořadí úkolů v sadě Configuration Manager SDK.

Ukázkový scénář s krokem Spustit skript PowerShellu

Vaše prostředí má uživatele ve více zemích nebo oblastech, takže se chcete dotazovat na jazyk operačního systému, který chcete nastavit jako podmínku pro více jazykově specifických kroků Použít operační systém .

  1. Před kroky Použít operační systém přidejte instanci skriptu Spustit PowerShell do pořadí úkolů.

  2. Pomocí možnosti Zadat skript PowerShellu zadejte následující příkaz:

    (Get-Culture).TwoLetterISOLanguageName
    

    Další informace o rutině najdete v tématu Get-Culture. Další informace o dvoupísmenných názvech jazyků ISO naleznete v části Seznam kódů ISO 639-1.

  3. Jako možnost Výstup do proměnné pořadí úkolů zadejte CurrentOSLanguage.

    Screenshot of example Run PowerShell Script step

  4. V kroku Použít operační systém pro anglickou jazykovou image vytvořte následující podmínku: Task Sequence Variable CurrentOSLanguage equals "en"

    Screenshot of example condition on Apply OS step

    Tip

    Další informace o tom, jak vytvořit podmínku kroku, naleznete v tématu Jak získat přístup k proměnným - Kroková podmínka.

  5. Uložte a nasaďte pořadí úkolů.

Když na zařízení s anglickou jazykovou verzí Windows spustíte krok Spustit skript PowerShellu , vrátí tento příkaz hodnotu en. Pak tuto hodnotu uloží do vlastní proměnné. Když se na stejném zařízení spustí krok Použít operační systém pro image anglického jazyka, podmínka se vyhodnotí jako true. Pokud máte více instancí kroku Použít operační systém pro různé jazyky, pořadí úkolů dynamicky spustí krok, který odpovídá jazyku operačního systému.

Kolekce a proměnné zařízení

Můžete definovat vlastní proměnné pořadí úkolů pro zařízení a kolekce. Proměnné, které definujete pro zařízení, se označují jako proměnné pořadí úkolů pro jednotlivá zařízení. Proměnné definované pro kolekci se označují jako proměnné pořadí úkolů pro jednotlivé kolekce. Pokud dojde ke konfliktu, proměnné pro jednotlivá zařízení mají přednost před proměnnými pro jednotlivé kolekce. Toto chování znamená, že proměnné pořadí úkolů, které jsou přiřazeny konkrétnímu zařízení, mají automaticky vyšší prioritu než proměnné, které jsou přiřazeny ke kolekci, která obsahuje zařízení.

Například zařízení XYZ je členem kolekce ABC. MyVariable přiřadíte ke kolekci ABC s hodnotou 1. MyVariable přiřadíte také zařízení XYZ s hodnotou 2. Proměnná, která je přiřazená k XYZ, má vyšší prioritu než proměnná, která je přiřazená ke kolekci ABC. Když pořadí úkolů s touto proměnnou běží na XYZ, MyVariable má hodnotu 2.

Proměnné pro jednotlivá zařízení a kolekce můžete skrýt, aby nebyly viditelné v konzole Configuration Manager. Pokud použijete možnost Nezobrazovat tuto hodnotu v konzole nástroje Configuration Manager, hodnota proměnné se v konzole nezobrazí. Soubor protokolu pořadí úkolů (smsts.log) nebo ladicí program pořadí úkolů hodnotu proměnné také nezobrazí. Proměnnou může pořadí úkolů stále používat při spuštění. Pokud už nechcete, aby byly tyto proměnné skryté, nejdřív je odstraňte. Pak předefinujte proměnné bez výběru možnosti pro jejich skrytí.

Upozornění

Pokud do příkazového řádku kroku Spustit příkazový řádek zahrnete proměnné, zobrazí se v souboru protokolu pořadí úkolů úplný příkazový řádek včetně hodnot proměnných. Pokud chcete zabránit zobrazení potenciálně citlivých dat v souboru protokolu, nastavte proměnnou pořadí úkolů OSDDoNotLogCommand na TRUE.

Proměnné pro jednotlivá zařízení můžete spravovat v primární lokalitě nebo v lokalitě centrální správy. Configuration Manager nepodporuje více než 1 000 přiřazených proměnných pro zařízení.

Důležité

Při použití proměnných kolekce pro pořadí úkolů zvažte následující chování:

  • Změny kolekcí se vždy replikují v celé hierarchii. Jakékoli změny, které provedete v proměnných kolekce, platí nejen pro členy aktuálního webu, ale pro všechny členy kolekce v celé hierarchii.

  • Při odstranění kolekce tato akce odstraní také proměnné pořadí úkolů, které jste pro kolekci nakonfigurovali.

Vytvoření proměnných pořadí úkolů pro zařízení

  1. V konzole nástroje Configuration Manager přejděte do pracovního prostoru Prostředky a dodržování předpisů a vyberte uzel Zařízení.

  2. Vyberte cílové zařízení a vyberte Vlastnosti.

  3. V dialogovém okně Vlastnosti přepněte na kartu Proměnné .

  4. Pro každou proměnnou, kterou chcete vytvořit, vyberte ikonu Nová . Zadejte název a hodnotu proměnné pořadí úkolů. Pokud chcete proměnnou skrýt, aby nebyla viditelná v konzole Configuration Manager, vyberte možnost Nezobrazovat tuto hodnotu v konzole Configuration Manager.

  5. Po přidání všech proměnných do vlastností zařízení vyberte OK.

Vytvoření proměnných pořadí úkolů pro kolekci

  1. V konzole nástroje Configuration Manager přejděte do pracovního prostoru Prostředky a dodržování předpisů a vyberte uzel Kolekce zařízení. Vyberte cílovou kolekci a zvolte Vlastnosti.

  2. V dialogovém okně Vlastnosti přepněte na kartu Proměnné kolekce .

  3. Pro každou proměnnou, kterou chcete vytvořit, vyberte ikonu Nová . Zadejte název a hodnotu proměnné pořadí úkolů. Pokud chcete proměnnou skrýt, aby nebyla viditelná v konzole Configuration Manager, vyberte možnost Nezobrazovat tuto hodnotu v konzole Configuration Manager.

  4. Volitelně můžete zadat prioritu, kterou se má Configuration Manager použít při vyhodnocování proměnných pořadí úkolů.

  5. Po přidání všech proměnných do vlastností kolekce vyberte OK.

Objekt COM TSEnvironment

Pro práci s proměnnými ze skriptu použijte objekt TSEnvironment .

Další informace najdete v tématu Použití proměnných ve spuštěném pořadí úkolů v sadě Configuration Manager SDK.

Příkaz Před spuštěním

Příkaz prestart je skript nebo spustitelný soubor, který se spustí v prostředí Windows PE před tím, než uživatel vybere pořadí úkolů. Příkaz prestart se může dotázat proměnné nebo vyzvat uživatele k zadání informací a poté je uložit do prostředí. Objekt COM TSEnvironment slouží ke čtení a zápisu proměnných z příkazu prestart.

Další informace najdete v tématu Předstartovní příkazy pro médium pořadí úkolů.

Průvodce pořadím úkolů

Po výběru pořadí úkolů v okně Průvodce pořadím úkolů obsahuje stránka pro úpravu proměnných pořadí úkolů tlačítko Upravit . K úpravě proměnných můžete použít klávesové zkratky s podporou přístupnosti. Tato změna pomáhá v případech, kdy není k dispozici myš.

Průvodce multimediálním pořadím úkolů

Zadejte proměnné pro pořadí úkolů, která se spouštějí z média. Při použití média k nasazení operačního systému přidáte proměnné pořadí úkolů a při vytváření média zadáte jejich hodnoty. Proměnné a jejich hodnoty jsou uloženy na médiu.

Poznámka

Pořadí úkolů jsou uložena na samostatném médiu. Všechny ostatní typy médií, jako jsou například předpřipravená média, však načítají pořadí úkolů z bodu správy.

Při spuštění pořadí úkolů z média můžete přidat proměnnou na stránce Přizpůsobení v průvodci.

Místo proměnných pro jednotlivé kolekce nebo počítače použijte proměnné médií. Pokud je pořadí úkolů spuštěné z média, proměnné pro jednotlivé počítače a kolekce se nepoužívají a nepoužívají se.

Tip

Pořadí úkolů zapíše ID balíčku a předstartovní příkazový řádek do souboru CreateTSMedia.log na počítači, na kterém je spuštěná konzola Configuration Manager. Tento soubor protokolu obsahuje hodnotu všech proměnných pořadí úkolů. Zkontrolujte tento soubor protokolu a ověřte hodnotu proměnných pořadí úkolů.

Další informace najdete v tématu Vytvoření média pořadí úkolů.

Jak získat přístup k proměnným

Po zadání proměnné a její hodnoty pomocí jedné z metod z předchozí části ji použijte v pořadí úkolů. Můžete například získat přístup k výchozím hodnotám pro vestavěné proměnné pořadí úkolů nebo krok podmínit hodnotou proměnné.

Pro přístup k hodnotám proměnných v prostředí pořadí úkolů použijte následující metody:

Použití v kroku

Zadejte hodnotu proměnné pro nastavení v kroku pořadí úkolů. V editoru pořadí úkolů upravte krok a jako hodnotu pole zadejte název proměnné. Název proměnné uzavřete do znaků procent (%).

Název proměnné použijte například jako součást pole Příkazový řádek kroku Spustit příkazový řádek . Následující příkazový řádek zapíše název počítače do textového souboru.

cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt

Kroková podmínka

Použijte předdefinované nebo vlastní proměnné pořadí úkolů jako součást podmínky kroku nebo skupiny. Pořadí úkolů vyhodnotí hodnotu proměnné před spuštěním kroku nebo skupiny.

Pokud chcete přidat podmínku, která vyhodnotí hodnotu proměnné, postupujte takto:

  1. V editoru pořadí úkolů vyberte krok nebo skupinu, do které chcete přidat podmínku.

  2. Přepnutí na kartu Možnosti pro daný krok nebo skupinu Klikněte na Přidat podmínku a vyberte Proměnná pořadí úkolů.

  3. V dialogovém okně Proměnná pořadí úkolů zadejte následující nastavení:

    • Proměnná: Název proměnné. Například: _SMSTSInWinPE.

    • Podmínka: Podmínka pro vyhodnocení hodnoty proměnné. K dispozici jsou následující podmínky:

      • Existuje
      • Neexistuje.
      • Rovná se
      • Nerovná se
      • Větší než
      • Větší nebo rovno
      • Menší než
      • Menší než nebo rovno
      • Like (podporuje zástupné znaky pro a *?)
      • Not like (verze 2103 nebo novější)
    • Hodnota: Hodnota proměnné, která se má zkontrolovat. Například: false.

Tři výše uvedené příklady tvoří běžnou podmínku pro testování, jestli je pořadí úloh spuštěné ze spouštěcí image v prostředí Windows PE:

Proměnná pořadí úkolů_SMSTSInWinPE equals "false"

Pokud chcete nainstalovat existující image operačního systému, podívejte se na tuto podmínku ve skupině Capture Files a nastavení výchozí šablony pořadí úkolů.

Další informace o podmínkách najdete v tématu Editor pořadí úkolů – Podmínky.

Vlastní skript

Čtení a zápis proměnných pomocí objektu COM Microsoft.SMS.TSEnvironment při spuštěném pořadí úkolů.

Následující příklad Windows PowerShell dotazuje proměnnou _SMSTSLogPath, aby získala aktuální umístění protokolu. Skript také nastaví vlastní proměnnou.

# Create an object to access the task sequence environment
$tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment

# Query the environment to get an existing variable
# Set a variable for the task sequence log path
$LogPath = $tsenv.Value("_SMSTSLogPath")

# Or, convert all of the variables currently in the environment to PowerShell variables
$tsenv.GetVariables() | % { Set-Variable -Name "$_" -Value "$($tsenv.Value($_))" }

# Write a message to a log file
Write-Output "Hello world!" | Out-File -FilePath "$LogPath\mylog.log" -Encoding "Default" -Append

# Set a custom variable "startTime" to the current time
$tsenv.Value("startTime") = (Get-Date -Format HH:mm:ss) + ".000+000"

Soubor odpovědí instalačního programu Windows

Soubor odpovědí instalačního programu systému Windows, který zadáte, může obsahovat vložené proměnné pořadí úkolů. Použijte formulář %varname%, kde varname je název proměnné. Krok instalace systému Windows a nástroje ConfigMgr nahradí řetězec názvu proměnné skutečnou hodnotou proměnné. Tyto vložené proměnné pořadí úkolů nelze použít v pouze číselných polích v souboru odpovědí unattend.xml.

Další informace najdete v tématu Instalace systému Windows a nástroj ConfigMgr.

Viz také