Jak używać zmiennych sekwencji zadań w programie Configuration Manager

Dotyczy: programu Configuration Manager (bieżąca gałąź)

Aparat sekwencji zadań w funkcji wdrażania systemu operacyjnego programu Configuration Manager używa wielu zmiennych do kontrolowania jego zachowań. Użyj tych zmiennych, aby:

  • Ustawianie warunków dotyczących kroków
  • Zmienianie zachowań dla określonych kroków
  • Używanie w skryptach do bardziej złożonych akcji

Aby zapoznać się z odwołaniami do wszystkich dostępnych zmiennych sekwencji zadań, zobacz Zmienne sekwencji zadań.

Typy zmiennych

Istnieje kilka typów zmiennych:

Zmienne wbudowane

Wbudowane zmienne zawierają informacje o środowisku, w którym jest uruchamiana sekwencja zadań. Ich wartości są dostępne w całej sekwencji zadań. Zazwyczaj aparat sekwencji zadań inicjuje wbudowane zmienne przed uruchomieniem jakichkolwiek kroków.

Na przykład jest zmienną środowiskową określającą ścieżkę, _SMSTSLogPath do której składniki programu Configuration Manager zapisują pliki dziennika. Każdy krok sekwencji zadań może uzyskać dostęp do tej zmiennej środowiskowej.

Sekwencja zadań ocenia niektóre zmienne przed każdym krokiem. Na przykład _SMSTSCurrentActionName zawiera nazwę bieżącego etapu.

Zmienne akcji

Zmienne akcji sekwencji zadań określają ustawienia konfiguracji, które są używane przez pojedynczy krok sekwencji zadań. Domyślnie krok inicjuje jego ustawienia przed uruchomieniem. Te ustawienia są dostępne tylko wtedy, gdy jest uruchomiony skojarzony krok sekwencji zadań. Sekwencja zadań dodaje wartość zmiennej akcji do środowiska przed uruchomieniem kroku. Następnie usuwa wartość ze środowiska po uruchomieniu kroku.

Możesz na przykład dodać krok Uruchom wiersz polecenia do sekwencji zadań. Ten krok zawiera właściwość Rozpocznij . Sekwencja zadań przechowuje wartość domyślną tej właściwości jako WorkingDirectory zmienną. Sekwencja zadań inicjuje tę wartość przed uruchomieniem kroku Uruchom wiersz polecenia . Gdy ten krok jest uruchomiony, uzyskaj dostęp do wartości właściwości Rozpocznij w z wartości.WorkingDirectory Po zakończeniu kroku sekwencja zadań usuwa wartość WorkingDirectory zmiennej ze środowiska. Jeśli sekwencja zadań zawiera inny krok Uruchom wiersz polecenia , inicjuje nową WorkingDirectory zmienną. W tym momencie sekwencja zadań ustawia zmienną na wartość początkową dla bieżącego kroku. Aby uzyskać więcej informacji, zobacz WorkingDirectory.

Wartość domyślna zmiennej akcji jest obecna podczas uruchamiania kroku. Jeśli ustawisz nową wartość, będzie ona dostępna dla wielu kroków w sekwencji zadań. W przypadku zastąpienia wartości domyślnej nowa wartość pozostaje w środowisku. Ta nowa wartość zastępuje wartość domyślną dla innych kroków w sekwencji zadań. Na przykład można dodać krok Ustaw zmienną sekwencji zadań jako pierwszy krok sekwencji zadań. Ten krok ustawia zmienną WorkingDirectory na C:\. Każdy krok Uruchom wiersz polecenia w sekwencji zadań używa nowej początkowej wartości katalogu.

Niektóre kroki sekwencji zadań oznaczają określone zmienne akcji jako dane wyjściowe. Kroki później w sekwencji zadań odczytują te zmienne wyjściowe.

Uwaga

Nie wszystkie kroki sekwencji zadań mają zmienne akcji. Na przykład, chociaż istnieją zmienne skojarzone z akcją Włącz funkcję BitLocker , nie ma żadnych zmiennych skojarzonych z akcją Wyłącz funkcję BitLocker .

Zmienne niestandardowe

Te zmienne to dowolne zmienne, których program Configuration Manager nie tworzy. Zainicjuj własne zmienne, które będą używane jako warunki w wierszach poleceń lub skryptach.

Podczas określania nazwy nowej zmiennej sekwencji zadań postępuj zgodnie z poniższymi wskazówkami:

  • Nazwa zmiennej sekwencji zadań może zawierać litery, cyfry, znak podkreślenia (_) i łącznik (-).

  • Nazwy zmiennych sekwencji zadań mają minimalną długość jednego znaku, a maksymalną 256 znaków.

  • Zmienne zdefiniowane przez użytkownika muszą zaczynać się od litery (A-Z lub a-z).

  • Nazwy zmiennych zdefiniowane przez użytkownika nie mogą rozpoczynać się znakiem podkreślenia. Tylko zmienne sekwencji zadań tylko do odczytu są poprzedzone znakiem podkreślenia.

  • W nazwach zmiennych sekwencji zadań nie jest uwzględniana wielkość liter. Na przykład OSDVAR i osdvar są tą samą zmienną sekwencji zadań.

  • Nazwy zmiennych sekwencji zadań nie mogą rozpoczynać się ani kończyć spacją. Nie mogą też zawierać spacji osadzonych. Sekwencja zadań ignoruje wszelkie spacje na początku lub na końcu nazwy zmiennej.

Nie ma ustawionego limitu liczby zmiennych sekwencji zadań, które można utworzyć. Jednak liczba zmiennych jest ograniczona przez rozmiar środowiska sekwencji zadań. Całkowity limit rozmiaru środowiska sekwencji zadań wynosi 8 KB. Aby uzyskać więcej informacji, zobacz Zmniejszanie rozmiaru zasad sekwencji zadań.

Zmienne tylko do odczytu

Nie można zmienić wartości niektórych zmiennych, które są tylko do odczytu. Zazwyczaj nazwa zaczyna się od znaku podkreślenia (_). Sekwencja zadań używa ich do swoich operacji. Zmienne tylko do odczytu są widoczne w środowisku sekwencji zadań.

Te zmienne są przydatne w skryptach lub wierszach poleceń. Na przykład uruchomienie wiersza polecenia i przesłanie danych wyjściowych do pliku dziennika wraz _SMSTSLogPath z innymi plikami dziennika.

Uwaga

Zmienne sekwencji zadań tylko do odczytu mogą być odczytywane krok w sekwencji zadania, ale nie można ich ustawić. Na przykład należy użyć zmiennej tylko do odczytu jako części wiersza polecenia dla kroku Uruchom wiersz polecenia . Nie można ustawić zmiennej tylko do odczytu przy użyciu kroku Ustaw zmienną sekwencji zadań .

Zmienne tablicowe

Sekwencja zadań przechowuje niektóre zmienne jako tablicę. Każdy element tablicy reprezentuje ustawienia dla pojedynczego obiektu. Tych zmiennych należy używać, gdy urządzenie ma więcej niż jeden obiekt do skonfigurowania. W poniższych krokach sekwencji zadań są używane zmienne tablicowe:

Jak ustawiać zmienne

W przypadku zmiennych niestandardowych lub zmiennych, które nie są przeznaczone tylko do odczytu, istnieje kilka metod inicjowania i ustawiania wartości zmiennej:

Usuń zmienną ze środowiska przy użyciu tych samych metod, co tworzenie zmiennej. Aby usunąć zmienną, ustaw wartość zmiennej na pusty ciąg.

Aby ustawić zmienną sekwencji zadań na różne wartości dla tej samej sekwencji, można łączyć metody. Na przykład ustaw wartości domyślne przy użyciu edytora sekwencji zadań, a następnie ustaw wartości niestandardowe przy użyciu skryptu.

Jeśli ta sama zmienna zostanie ustawiona przy użyciu różnych metod, aparat sekwencji zadań użyje następującej kolejności:

  1. Najpierw oblicza zmienne kolekcji.

  2. Zmienne specyficzne dla urządzenia zastępują tę samą zmienną ustawioną w kolekcji.

  3. Zmienne ustawiane dowolną metodą podczas sekwencji zadań mają pierwszeństwo przed zmiennymi kolekcji lub urządzenia.

Ogólne ograniczenia wartości zmiennych sekwencji zadań

  • Wartości zmiennych sekwencji zadań nie mogą być dłuższe niż 4000 znaków.

  • Nie można zmienić zmiennej sekwencji zadań tylko do odczytu. Zmienne tylko do odczytu mają nazwy zaczynające się od znaku podkreślenia (_).

  • W wartościach zmiennych sekwencji zadań może być uwzględniana wielkość liter w zależności od użycia wartości. W większości przypadków w wartościach zmiennych sekwencji zadań nie jest uwzględniana wielkość liter. W zmiennej zawierającej hasło jest uwzględniana wielkość liter.

Ustawianie zmiennej sekwencji zadań

Ten krok w sekwencji zadań służy do ustawiania pojedynczej zmiennej na pojedynczą wartość.

Aby uzyskać więcej informacji, zobacz Ustawianie zmiennej sekwencji zadań.

Ustawianie zmiennych dynamicznych

Użyj tego kroku w sekwencji zadań, aby ustawić co najmniej jedną zmienną sekwencji zadań. W tym kroku definiujesz reguły określające zmienne i wartości, których należy użyć.

Aby uzyskać więcej informacji, zobacz Ustawianie zmiennych dynamicznych.

Uruchamianie skryptu programu PowerShell

Użyj tego kroku w sekwencji zadań, aby użyć skryptu programu PowerShell w celu ustawienia zmiennej sekwencji zadań.

Możesz określić nazwę skryptu z pakietu lub bezpośrednio wprowadzić skrypt programu PowerShell w kroku. Następnie użyj właściwości step do danych wyjściowych do zmiennej sekwencji zadań , aby zapisać dane wyjściowe skryptu w niestandardowej zmiennej sekwencji zadań.

Aby uzyskać więcej informacji na temat tego kroku, zobacz Uruchamianie skryptu programu PowerShell.

Uwaga

Można również użyć skryptu programu PowerShell, aby ustawić jedną lub więcej zmiennych za pomocą obiektu TSEnvironment . Aby uzyskać więcej informacji, zobacz Jak używać zmiennych w uruchomionej sekwencji zadań w zestawie SDK programu Configuration Manager.

Przykładowy scenariusz z krokiem Uruchom skrypt programu PowerShell

Twoje środowisko ma użytkowników w wielu krajach/regionach, dlatego chcesz wysłać zapytanie dotyczące języka systemu operacyjnego, aby ustawić jako warunek w wielu krokach stosowania systemu operacyjnego specyficznych dla języka.

  1. Dodaj wystąpienie polecenia Uruchom skrypt programu PowerShell do sekwencji zadań przed wykonaniem kroków Zastosuj system operacyjny .

  2. Użyj opcji Wprowadź skrypt programu PowerShell , aby określić następujące polecenie:

    (Get-Culture).TwoLetterISOLanguageName
    

    Aby uzyskać więcej informacji na temat polecenia cmdlet, zobacz Get-Culture. Aby uzyskać więcej informacji na temat dwuliterowych nazw języków ISO, zobacz Lista kodów ISO 639-1.

  3. Dla opcji Dane wyjściowe do zmiennej sekwencji zadań określ CurrentOSLanguage.

    Zrzut ekranu przedstawiający przykład uruchamiania kroku skryptu programu PowerShell

  4. W kroku Zastosuj system operacyjny dla obrazu w języku angielskim utwórz następujący warunek: Task Sequence Variable CurrentOSLanguage equals "en"

    Zrzut ekranu przykładowego warunku w kroku Zastosuj system operacyjny

    Porada

    Aby uzyskać więcej informacji na temat tworzenia warunku w kroku, zobacz Jak uzyskać dostęp do zmiennych — warunek kroku.

  5. Zapisz i wdróż sekwencję zadań.

Po uruchomieniu kroku Uruchom skrypt programu PowerShell na urządzeniu z angielską wersją językową systemu Windows polecenie zwraca wartość en. Następnie zapisuje tę wartość w zmiennej niestandardowej. Gdy krok Zastosuj system operacyjny dla obrazu w języku angielskim jest uruchamiany na tym samym urządzeniu, warunek jest oceniany jako prawdziwy. Jeśli masz wiele wystąpień kroku Zastosuj system operacyjny dla różnych języków, sekwencja zadań dynamicznie uruchamia krok zgodny z językiem systemu operacyjnego.

Zmienne kolekcji i urządzenia

Możesz zdefiniować niestandardowe zmienne sekwencji zadań dla urządzeń i kolekcji. Zmienne definiowane dla urządzenia są określane jako zmienne sekwencji zadań dla poszczególnych urządzeń. Zmienne zdefiniowane dla kolekcji są określane jako zmienne sekwencji zadań dla kolekcji. Jeśli wystąpi konflikt, zmienne dla urządzenia mają pierwszeństwo przed zmiennymi dla kolekcji. Takie zachowanie oznacza, że zmienne sekwencji zadań, które są automatycznie przypisane do określonego urządzenia, mają wyższy priorytet niż zmienne przypisane do kolekcji zawierającej urządzenie.

Na przykład urządzenie XYZ należy do kolekcji ABC. MojaZmienna jest przypisywana do kolekcji ABC o wartości 1. MojaZmienna jest również przypisana do urządzenia XYZ z wartością 2. Zmienna przypisana do funkcji XYZ ma wyższy priorytet niż zmienna przypisana do kolekcji ABC. Gdy sekwencja zadań z tą zmienną działa na XYZ, MojaZmienna ma wartość 2.

Zmienne dla poszczególnych urządzeń i kolekcji można ukryć, aby nie były widoczne w konsoli programu Configuration Manager. W przypadku użycia opcji Nie wyświetlaj tej wartości w konsoli programu Configuration Manager, wartość zmiennej nie będzie wyświetlana w konsoli. Plik dziennika sekwencji zadań (smsts.log) lub debuger sekwencji zadań również nie będą wyświetlać wartości zmiennej. Zmienna może być nadal używana przez sekwencję zadań podczas jej uruchamiania. Jeśli nie chcesz, aby te zmienne były już ukrywane, usuń je najpierw. Następnie zdefiniuj zmienne ponownie, nie wybierając opcji ich ukrycia.

Ostrzeżenie

Jeśli w wierszu polecenia polecenia zostaną uwzględnione zmienne, w pliku dziennika sekwencji zadań zostanie wyświetlony pełny wiersz polecenia wraz z wartościami zmiennych. Aby zapobiec wyświetlaniu potencjalnie poufnych danych w pliku dziennika, ustaw zmienną sekwencji zadań OSDDoNotLogCommand na TRUE.

Zmiennymi dla poszczególnych urządzeń można zarządzać w lokacji głównej lub w centralnej lokacji administracyjnej. Program Configuration Manager nie obsługuje więcej niż 1000 zmiennych przypisanych do urządzenia.

Ważna

W przypadku używania zmiennych dla kolekcji dla sekwencji zadań należy wziąć pod uwagę następujące zachowania:

  • Zmiany w kolekcjach są zawsze powielane w hierarchii. Wszelkie zmiany zmiennych kolekcji zostaną zastosowane nie tylko do elementów członkowskich bieżącej witryny, ale do wszystkich elementów kolekcji w hierarchii.

  • Usunięcie kolekcji spowoduje również usunięcie zmiennych sekwencji zadań skonfigurowanych dla kolekcji.

Tworzenie zmiennych sekwencji zadań dla urządzenia

  1. W konsoli programu Configuration Manager przejdź do obszaru roboczego Zasoby i zgodność i wybierz węzeł Urządzenia.

  2. Wybierz urządzenie docelowe i wybierz pozycję Właściwości.

  3. W oknie dialogowym Właściwości przejdź na kartę Zmienne .

  4. Dla każdej zmiennej, którą chcesz utworzyć, wybierz ikonę Nowy . Określ nazwę i wartość zmiennej sekwencji zadań. Jeśli chcesz ukryć zmienną, aby nie była widoczna w konsoli programu Configuration Manager, wybierz opcję Nie wyświetlaj tej wartości w konsoli programu Configuration Manager.

  5. Po dodaniu wszystkich zmiennych do właściwości urządzenia wybierz przycisk OK.

Tworzenie zmiennych sekwencji zadań dla kolekcji

  1. W konsoli programu Configuration Manager przejdź do obszaru roboczego Zasoby i zgodność i wybierz węzeł Kolekcje urządzeń. Wybierz kolekcję docelową, a następnie wybierz pozycję Właściwości.

  2. W oknie dialogowym Właściwości przejdź do karty Zmienne kolekcji .

  3. Dla każdej zmiennej, którą chcesz utworzyć, wybierz ikonę Nowy . Określ nazwę i wartość zmiennej sekwencji zadań. Jeśli chcesz ukryć zmienną, aby nie była widoczna w konsoli programu Configuration Manager, wybierz opcję Nie wyświetlaj tej wartości w konsoli programu Configuration Manager.

  4. Opcjonalnie określ priorytet dla programu Configuration Manager do użycia podczas oceniania zmiennych sekwencji zadań.

  5. Po dodaniu wszystkich zmiennych do właściwości kolekcji wybierz przycisk OK.

Obiekt COM TSEnvironment

Aby pracować ze zmiennymi ze skryptu, użyj obiektu TSEnvironment .

Aby uzyskać więcej informacji, zobacz Jak używać zmiennych w uruchomionej sekwencji zadań w zestawie SDK programu Configuration Manager.

Polecenie Uruchom wstępnie

Polecenie prestart to skrypt lub plik wykonywalny, który jest uruchamiany w środowisku Windows PE przed wybraniem sekwencji zadań przez użytkownika. Polecenie prestart może wysłać zapytanie do zmiennej lub zapytać użytkownika o informacje, a następnie zapisać je w środowisku. Użyj obiektu COM TSEnvironment do odczytu i zapisu zmiennych z polecenia prestart.

Aby uzyskać więcej informacji, zobacz Polecenia przeduruchomieniowe dla nośnika sekwencji zadań.

Kreator sekwencji zadań

Po wybraniu sekwencji zadań w oknie Kreatora sekwencji zadań na stronie edytowania zmiennych sekwencji zadań znajduje się przycisk Edytuj . Zmienne można edytować za pomocą skrótów klawiaturowych z ułatwieniami dostępu. Ta zmiana pomaga w sytuacjach, gdy mysz jest niedostępna.

Kreator nośników sekwencji zadań

Określ zmienne dla sekwencji zadań uruchamianych z nośnika. W przypadku wdrażania systemu operacyjnego przy użyciu nośnika dodaje się zmienne sekwencji zadań i określa ich wartości podczas tworzenia multimediów. Zmienne i ich wartości są przechowywane na nośniku.

Uwaga

Sekwencje zadań są przechowywane na nośnikach autonomicznych. Jednak wszystkie inne typy nośników, takie jak wstępnie przygotowane nośniki, pobierają sekwencję zadań z punktu zarządzania.

Podczas uruchamiania sekwencji zadań z multimediów można dodać zmienną na stronie Dostosowywanie kreatora.

Użyj zmiennych multimedialnych zamiast zmiennych dla kolekcji lub dla komputera. Jeśli sekwencja zadań jest uruchomiona z nośnika, zmienne dla poszczególnych komputerów i kolekcji nie mają zastosowania i nie są używane.

Porada

Sekwencja zadań zapisuje identyfikator pakietu i wiersz polecenia prestart w pliku CreateTSMedia.log na komputerze, na którym jest uruchomiona konsola Configuration Manager. Ten plik dziennika zawiera wartości wszystkich zmiennych sekwencji zadań. Przejrzyj ten plik dziennika, aby zweryfikować wartość zmiennych sekwencji zadań.

Aby uzyskać więcej informacji, zobacz Tworzenie nośnika sekwencji zadań.

Jak uzyskać dostęp do zmiennych

Po określeniu zmiennej i jej wartości przy użyciu jednej z metod z poprzedniej sekcji użyj jej w sekwencjach zadań. Możesz na przykład uzyskać dostęp do wartości domyślnych wbudowanych zmiennych sekwencji zadań lub uzależnić krok od wartości zmiennej.

Aby uzyskać dostęp do wartości zmiennych w środowisku sekwencji zadań, użyj następujących metod:

Używanie w kroku

Określ wartość zmiennej dla ustawienia w kroku sekwencji zadań. W edytorze sekwencji zadań edytuj krok i określ nazwę zmiennej jako wartość pola. Nazwę zmiennej należy umieścić między znakami procentu (%).

Na przykład użyj nazwy zmiennej jako części pola Wiersz polecenia kroku Uruchom wiersz polecenia . Następujący wiersz polecenia zapisuje nazwę komputera w pliku tekstowym.

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

Warunek kroku

Używanie wbudowanych lub niestandardowych zmiennych sekwencji zadań jako części warunku w kroku lub grupie. Sekwencja zadań ocenia wartość zmiennej przed uruchomieniem kroku lub grupy.

Aby dodać warunek sprawdzający wartość zmiennej, wykonaj następujące czynności:

  1. W edytorze sekwencji zadań wybierz krok lub grupę, do której chcesz dodać warunek.

  2. Przejdź do karty Opcje dla kroku lub grupy. Kliknij pozycję Dodaj warunek i wybierz pozycję Zmienna sekwencji zadań.

  3. W oknie dialogowym Zmienna sekwencji zadań określ następujące ustawienia:

    • Zmienna: nazwa zmiennej. Na przykład _SMSTSInWinPE.

    • Warunek: warunek obliczania wartości zmiennej. Dostępne są następujące warunki:

      • Exists
      • Nie istnieje
      • Równa się
      • Nie równa się
      • Większe niż
      • Większe niż lub równe
      • Mniejsze niż
      • Mniejsze lub równe
      • Like (obsługuje symbole wieloznaczne i *?)
      • Not like (wersja 2103 lub nowsza)
    • Wartość: Wartość zmiennej do sprawdzenia. Na przykład false.

Trzy powyższe przykłady tworzą typowy warunek do przetestowania, czy sekwencja zadań jest uruchomiona z obrazu rozruchowego w środowisku Windows PE:

Zmienna sekwencji zadań_SMSTSInWinPE equals "false"

Zobacz ten warunek w grupie Rejestrator Files i ustawienia domyślnego szablonu sekwencji zadań, aby zainstalować istniejący obraz systemu operacyjnego.

Aby uzyskać więcej informacji na temat warunków, zobacz Edytor sekwencji zadań — warunki.

Skrypt niestandardowy

Odczytywanie i zapisywanie zmiennych przy użyciu obiektu COM Microsoft.SMS.TSEnvironment podczas działania sekwencji zadań.

W poniższym przykładzie Windows PowerShell zapytanie dotyczące zmiennej _SMSTSLogPath w celu uzyskania bieżącej lokalizacji dziennika. Skrypt ustawia również zmienną niestandardową.

# 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"

Plik odpowiedzi instalatora systemu Windows

Podany plik odpowiedzi instalatora systemu Windows może zawierać osadzone zmienne sekwencji zadań. Użyj formy %varname%, gdzie nazwa_zmiennej jest nazwą zmiennej. Krok Konfiguruj system Windows i program ConfigMgr zastępuje ciąg nazwy zmiennej rzeczywistą wartością zmiennej. Tych osadzonych zmiennych sekwencji zadań nie można używać w polach zawierających tylko liczby w pliku odpowiedzi unattend.xml.

Aby uzyskać więcej informacji, zobacz Konfigurowanie systemu Windows i programu ConfigMgr.

Zobacz też