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

Platí pro: Configuration Manager (Current Branch)

Modul pořadí úkolů ve funkci nasazení operačního systému Configuration Manager používá mnoho proměnných k řízení svého chování. Pomocí těchto proměnných můžete:

  • Nastavení podmínek v krocích
  • Změna chování pro konkrétní kroky
  • 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 dostupné v celém pořadí úkolů. Modul pořadí úkolů obvykle inicializuje předdefinované proměnné před spuštěním jakýchkoli kroků.

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

Pořadí úkolů vyhodnocuje některé proměnné před každým krokem. Vypíše _SMSTSCurrentActionName například 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í tento krok inicializuje nastavení před spuštěním. Tato nastavení jsou dostupná jenom v době, kdy se spustí přidružený krok 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 odebere hodnotu z prostředí.

Do pořadí úkolů můžete například přidat 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 Spustit příkazový řádek . Když je tento krok spuštěný, přístup k hodnotě vlastnosti Start In z WorkingDirectory hodnoty. Po dokončení kroku pořadí úkolů odebere hodnotu WorkingDirectory proměnné z prostředí. Pokud pořadí úkolů obsahuje jiný krok Spustit příkazový řádek , inicializuje novou WorkingDirectory proměnnou. V té době pořadí úkolů nastaví proměnnou na počáteční hodnotu pro aktuální krok. Další informace najdete v tématu Pracovní adresář.

Výchozí hodnota proměnné akce je k dispozici 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, zůstane nová hodnota v prostředí. Tato nová hodnota přepíše výchozí hodnotu pro další kroky v pořadí úkolů. Jako první krok pořadí úkolů můžete například přidat krok Nastavit proměnnou pořadí úkolů. Tento krok nastaví proměnnou WorkingDirectory na C:\. Každý krok Spustit příkazový řádek v pořadí úkolů používá hodnotu nového počátečního adresáře.

Některé kroky pořadí úkolů označují určité proměnné akcí jako výstup. Následující kroky v pořadí úkolů načtou tyto výstupní proměnné.

Poznámka

Ne všechny kroky pořadí úkolů mají proměnné akcí. I když jsou například k akci Povolit nástroj BitLocker přidružené proměnné, nejsou k akci Zakázat nástroj BitLocker přidružené žádné proměnné.

Vlastní proměnné

Jedná se o proměnné, které Configuration Manager nevytvoří. Inicializace vlastních proměnných pro použití jako podmínky, na 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, číslice, znak podtržítka (_) a spojovník (-).

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

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

  • Názvy proměnných definované uživatelem nemůžou začínat znakem podtržítka. Proměnným pořadí úkolů jen pro čtení předchází podtržítko.

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

  • Názvy proměnných pořadí úkolů nemůžou začínat ani končit mezerou. Nemůžou mít ani vložené mezery. Pořadí úkolů ignoruje všechny mezery na začátku nebo na 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í, nemůžete změnit. 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í příkazového řádku a propojení výstupu do souboru _SMSTSLogPath protokolu s ostatními soubory protokolu.

Poznámka

Proměnné pořadí úkolů jen pro čtení se dají číst podle kroků v pořadí úkolů, ale nedají se nastavit. Například jako součást příkazového řádku pro krok Spustit příkazový řádek použijte proměnnou jen pro čtení. Proměnnou jen pro čtení nelze 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 poli představuje nastavení pro jeden objekt. Tyto proměnné použijte, pokud má zařízení ke konfiguraci více objektů. Následující kroky pořadí úkolů používají proměnné pole:

Nastavení proměnných

U vlastních proměnných nebo proměnných, které nejsou jen pro čtení, existuje několik metod, jak inicializovat a nastavit hodnotu proměnné:

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

Kombinací metod můžete nastavit proměnnou pořadí úkolů na různé hodnoty pro stejnou sekvenci. Například pomocí editoru pořadí úkolů nastavte výchozí hodnoty a pak pomocí skriptu nastavte vlastní hodnoty.

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

  1. Nejprve vyhodnocuje proměnné kolekce.

  2. Proměnné specifické pro zařízení přepisují 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ů nesmí 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ů se v hodnotách proměnných pořadí úkolů nerozlišuje velká a malá písmena. Proměnná, která obsahuje heslo, rozlišuje velká a malá písmena.

Nastavit proměnnou pořadí úkolů

Pomocí tohoto kroku v pořadí úkolů nastavíte jednu proměnnou na jednu hodnotu.

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

Nastavení dynamických proměnných

Pomocí tohoto kroku v pořadí úkolů můžete nastavit jednu nebo více proměnných pořadí úkolů. V tomto kroku definujete pravidla, která určí, které proměnné a hodnoty se mají použít.

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

Spuštění skriptu PowerShellu

Pomocí tohoto kroku v pořadí úkolů můžete použít skript PowerShellu k nastavení proměnné pořadí úkolů.

V kroku můžete zadat název skriptu z balíčku nebo přímo zadat skript PowerShellu. Potom pomocí vlastnosti step na výstupu do proměnné pořadí úkolů 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 Configuration Manager SDK.

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

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

  1. Přidejte instanci powershellového skriptu spustit do pořadí úloh před kroky Použít operační systém.

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

    (Get-Culture).TwoLetterISOLanguageName
    

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

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

    Snímek obrazovky s ukázkovým krokem Spustit skript PowerShellu

  4. V kroku Apply OS for the English language image (Použít operační systém) vytvořte následující podmínku: Task Sequence Variable CurrentOSLanguage equals "en"

    Snímek obrazovky s ukázkou podmínky v kroku Použít operační systém

    Tip

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

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

Když se krok Spustit skript PowerShellu spustí na zařízení s anglickou jazykovou verzí Windows, vrátí příkaz hodnotu en. Potom uloží hodnotu do vlastní proměnné. Když se krok Použít operační systém pro image anglického jazyka spustí na stejném zařízení, vyhodnotí se podmínka jako pravda. 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.

Proměnné kolekce a zařízení

Pro zařízení a kolekce můžete definovat vlastní proměnné pořadí úkolů. Proměnné, které definujete pro zařízení, se označují jako proměnné pořadí úkolů podle zařízení. Proměnné definované pro kolekci se označují jako proměnné pořadí úkolů pro jednotlivé kolekce. Pokud dojde ke konfliktu, mají proměnné pro jednotlivá zařízení 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 ke konkrétnímu zařízení, mají automaticky vyšší prioritu než proměnné přiřazené kolekci obsahující zařízení.

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

Proměnné pro jednotlivá zařízení a kolekci můžete skrýt, aby nebyly viditelné v konzole Configuration Manager. Pokud použijete možnost Nezobrazovat tuto hodnotu v konzole Configuration Manager, hodnota proměnné se v konzole nezobrazí. Soubor protokolu pořadí úkolů (smsts.log) ani ladicí program pořadí úkolů nezobrazí hodnotu proměnné. Proměnnou může pořadí úkolů používat i při spuštění. Pokud už nechcete, aby tyto proměnné byly skryté, nejprve je odstraňte. Potom proměnné předefinujte bez výběru možnosti 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é

Pokud pro pořadí úkolů používáte proměnné pro jednotlivé kolekce, zvažte následující chování:

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

  • Když odstraníte kolekci, odstraní tato akce 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 Configuration Manager přejděte do pracovního prostoru Prostředky a kompatibilita 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 Configuration Manager přejděte do pracovního prostoru Prostředky a kompatibilita 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 Configuration Manager, která se má 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.

TSEnvironment – objekt COM

Pokud chcete pracovat 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 Configuration Manager SDK.

Předstartovní příkaz

Předstartovní příkaz je skript nebo spustitelný soubor, který se spustí v prostředí Windows PE předtím, než uživatel vybere pořadí úkolů. Předstartovní příkaz se může dotazovat na proměnnou nebo uživatele vyzvat k zadání informací a pak je uložit do prostředí. Pomocí objektu MODELU COM TSEnvironment načtěte a zapisujte proměnné z předstartovního příkazu.

Další informace najdete v tématu Příkazy před spuštěním 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ů bude stránka pro úpravu proměnných pořadí úkolů obsahovat tlačítko Upravit . K úpravě proměnných můžete použít klávesové zkratky pro usnadnění přístupu. Tato změna pomáhá v případech, kdy není k dispozici myš.

Průvodce médií pořadí úkolů

Zadejte proměnné pro pořadí úkolů, která se spouští 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 zadáte jejich hodnoty při vytváření média. Proměnné a jejich hodnoty jsou uloženy na médiu.

Poznámka

Pořadí úkolů se ukládají na samostatné médium. Všechny ostatní typy médií, například předpřipravená média, však načítají pořadí úkolů z bodu správy.

Když spustíte pořadí úkolů z média, můžete přidat proměnnou na stránce Vlastní nastavení průvodce.

Použijte proměnné médií místo proměnných pro kolekci nebo pro jednotlivé počítače. Pokud pořadí úkolů běží 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 v počítači, na kterém běží konzola Configuration Manager. Tento soubor protokolu obsahuje hodnotu pro všechny proměnné 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ů.

Přístup k proměnným

Jakmile zadáte proměnnou a její hodnotu pomocí jedné z metod z předchozí části, použijte ji v pořadí úkolů. Můžete například získat přístup k výchozím hodnotám pro předdefinované proměnné pořadí úkolů nebo nastavit krok podmíněný 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é. Uzavřete název proměnné do znaků procenta (%).

Název proměnné můžete například použít jako součást pole Příkazového řádku 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

Podmínka kroku

Použijte předdefinované nebo vlastní proměnné pořadí úkolů jako součást podmínky v kroku nebo skupině. 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 následovně:

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

  2. Přepněte na kartu Možnosti pro 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á
      • Nerovná se
      • Větší než
      • Větší než nebo rovno
      • Menší než
      • Menší než nebo rovno
      • Like (podporuje zástupné é *?a )
      • Ne jako (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 otestování, jestli je pořadí úkolů spuštěné ze spouštěcí bitové kopie 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ě Zaznamenat soubory 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í Microsoft.SMS. TSEnvironment com objektu, zatímco pořadí úkolů je spuštěno.

Následující Windows PowerShell příklad se dotazuje proměnné _SMSTSLogPath, aby získal 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 Nastavit systém Windows a nástroj ConfigMgr nahradí řetězec názvu proměnné pro skutečnou hodnotu proměnné. Tyto vložené proměnné pořadí úkolů nelze použít v číselných polích v souboru odpovědí unattend.xml.

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

Viz také