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 dla kroków
- Zmienianie zachowań dla określonych kroków
- Używanie w skryptach do bardziej złożonych akcji
Aby zapoznać się ze wszystkimi dostępnymi zmiennymi sekwencji zadań, zobacz Zmienne sekwencji zadań.
Typy zmiennych
Istnieje kilka typów zmiennych:
Wbudowane zmienne
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ą, która określa ś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ń oblicza niektóre zmienne przed każdym krokiem. Na przykład _SMSTSCurrentActionName
wyświetla nazwę bieżącego kroku.
Zmienne akcji
Zmienne akcji sekwencji zadań określają ustawienia konfiguracji używane przez pojedynczy krok sekwencji zadań. Domyślnie krok inicjuje jego ustawienia przed jego uruchomieniem. Te ustawienia są dostępne tylko wtedy, gdy skojarzony krok sekwencji zadań jest uruchamiany. 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 obejmuje właściwość Start In . Sekwencja zadań przechowuje wartość domyślną dla tej właściwości jako zmienną WorkingDirectory
. 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 Start In z WorkingDirectory
wartości. Po zakończeniu kroku sekwencja zadań usuwa wartość zmiennej WorkingDirectory
ze środowiska. Jeśli sekwencja zadań zawiera inny krok uruchom wiersza polecenia , inicjuje nową WorkingDirectory
zmienną. W tym czasie 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 po uruchomieniu kroku. Jeśli ustawisz nową wartość, będzie ona dostępna dla wielu kroków w sekwencji zadań. Jeśli zastąpisz wartość domyślną, nowa wartość pozostanie w środowisku. Ta nowa wartość zastępuje wartość domyślną dla innych kroków w sekwencji zadań. Na przykład należy dodać krok Ustaw zmienną sekwencji zadań jako pierwszy krok sekwencji zadań. Ten krok ustawia zmienną na WorkingDirectory
C:\
. Każdy krok Uruchom wiersz polecenia w sekwencji zadań używa nowej wartości katalogu początkowego.
Niektóre kroki sekwencji zadań oznaczają określone zmienne akcji jako dane wyjściowe. Kroki w dalszej części sekwencji zadań odczytują te zmienne wyjściowe.
Uwaga
Nie wszystkie kroki sekwencji zadań mają zmienne akcji. Chociaż na przykład istnieją zmienne skojarzone z akcją Włącz funkcję BitLocker , nie ma żadnych zmiennych skojarzonych z akcją Wyłącz funkcję BitLocker .
Zmienne niestandardowe
Te zmienne są dowolne, których program Configuration Manager nie tworzy. Inicjowanie własnych zmiennych do użycia jako warunków, w wierszach poleceń lub w skryptach.
Po określeniu nazwy nowej zmiennej sekwencji zadań postępuj zgodnie z następującymi wytycznymi:
Nazwa zmiennej sekwencji zadań może zawierać litery, cyfry, znak podkreślenia (
_
) i łącznik (-
).Nazwy zmiennych sekwencji zadań mają minimalną długość jednego znaku i maksymalną długość 256 znaków.
Zmienne zdefiniowane przez użytkownika muszą zaczynać się literą (
A-Z
luba-z
).Nazwy zmiennych zdefiniowanych przez użytkownika nie mogą zaczynać się znakiem podkreślenia. Tylko zmienne sekwencji zadań tylko do odczytu są poprzedzone znakiem podkreślenia.
Nazwy zmiennych sekwencji zadań nie uwzględniają wielkości liter. Na przykład
OSDVAR
iosdvar
są tą samą zmienną sekwencji zadań.Nazwy zmiennych sekwencji zadań nie mogą zaczynać się ani kończyć spację. Nie mogą również mieć osadzonych przestrzeni. Sekwencja zadań ignoruje wszystkie 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ę znakiem 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 polecenia. Na przykład uruchomienie wiersza polecenia i uruchomienie potoku danych wyjściowych do pliku dziennika z _SMSTSLogPath
innymi plikami dziennika.
Uwaga
Zmienne sekwencji zadań tylko do odczytu mogą być odczytywane przez kroki w sekwencji zadań, ale nie można ich ustawić. Na przykład użyj 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 w tablicy reprezentuje ustawienia pojedynczego obiektu. Użyj tych zmiennych, gdy urządzenie ma więcej niż jeden obiekt do skonfigurowania. W poniższych krokach sekwencji zadań są używane zmienne tablicowe:
Jak ustawić zmienne
W przypadku zmiennych niestandardowych lub zmiennych, które nie są tylko do odczytu, istnieje kilka metod inicjowania i ustawiania wartości zmiennej:
- Ustawianie kroku zmiennej sekwencji zadań
- Krok Ustawianie zmiennych dynamicznych
- Krok uruchamiania skryptu programu PowerShell
- Zmienne kolekcji i urządzenia
- Obiekt TSEnvironment COM
- Polecenie Przeduruchomienie
- Kreator sekwencji zadań
- Kreator nośnika sekwencji zadań
Usuń zmienną ze środowiska przy użyciu tych samych metod, co tworzenie zmiennej. Aby usunąć zmienną, ustaw wartość zmiennej na pusty ciąg.
Metody można łączyć, aby ustawić zmienną sekwencji zadań na różne wartości dla tej samej sekwencji. 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 ustawisz tę samą zmienną przy użyciu różnych metod, aparat sekwencji zadań będzie używać następującej kolejności:
Najpierw oblicza zmienne kolekcji.
Zmienne specyficzne dla urządzenia zastępują ten sam zestaw zmiennych w kolekcji.
Zmienne ustawione przez dowolną metodę w sekwencji zadań mają pierwszeństwo przed kolekcją lub zmiennymi urządzenia.
Ogólne ograniczenia dotyczące wartości zmiennych sekwencji zadań
Wartości zmiennych sekwencji zadań nie mogą być większe niż 4000 znaków.
Nie można zmienić zmiennej sekwencji zadań tylko do odczytu. Zmienne tylko do odczytu mają nazwy rozpoczynające się znakiem podkreślenia (
_
).Wartości zmiennych sekwencji zadań mogą uwzględniać wielkość liter w zależności od użycia wartości. W większości przypadków wartości zmiennych sekwencji zadań nie uwzględniają wielkości liter. Zmienna zawierająca hasło uwzględnia wielkość liter.
Ustawianie zmiennej sekwencji zadań
Użyj tego kroku w sekwencji zadań, aby ustawić pojedynczą zmienną 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, aby określić zmienne i wartości do użycia.
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 do 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 wartości Output 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żesz również użyć skryptu programu PowerShell, aby ustawić co najmniej jedną zmienną z obiektem 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 Uruchamianie skryptu programu PowerShell
Środowisko ma użytkowników w wielu krajach/regionach, dlatego chcesz wysłać zapytanie do języka systemu operacyjnego, aby ustawić go jako warunek dla wielu kroków stosowania systemu operacyjnego specyficznych dla języka.
Dodaj wystąpienie skryptu Uruchom program PowerShell do sekwencji zadań przed wykonaniem kroków Zastosuj system operacyjny .
Użyj opcji , aby wprowadzić 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 List of ISO 639-1 codes (Lista kodów ISO 639-1).
Dla opcji Output to task sequence variable (Dane wyjściowe do zmiennej sekwencji zadań) określ
CurrentOSLanguage
wartość .W kroku Zastosuj system operacyjny dla obrazu języka angielskiego utwórz następujący warunek:
Task Sequence Variable CurrentOSLanguage equals "en"
Porada
Aby uzyskać więcej informacji na temat tworzenia warunku w kroku, zobacz Jak uzyskać dostęp do zmiennych — warunek kroku.
Zapisz i wdróż sekwencję zadań.
Gdy krok Uruchom skrypt programu PowerShell jest uruchamiany na urządzeniu z wersją języka angielskiego 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 zostanie uruchomiony na tym samym urządzeniu, warunek zostanie obliczony na wartość true. 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żna zdefiniować niestandardowe zmienne sekwencji zadań dla urządzeń i kolekcji. Zmienne zdefiniowane 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. W przypadku konfliktu zmienne dla poszczególnych urządzeń mają pierwszeństwo przed zmiennymi dla kolekcji. To zachowanie oznacza, że zmienne sekwencji zadań przypisane do określonego urządzenia mają automatycznie wyższy priorytet niż zmienne przypisane do kolekcji zawierającej urządzenie.
Na przykład urządzenie XYZ jest członkiem kolekcji ABC. Program MyVariable można przypisać do kolekcji ABC z wartością 1. Można również przypisać wartość MyVariable do urządzenia XYZ z wartością 2. Zmienna przypisana do XYZ ma wyższy priorytet niż zmienna przypisana do kolekcji ABC. Gdy sekwencja zadań z tą zmienną jest uruchamiana w środowisku XYZ, wartość MyVariable wynosi 2.
Zmienne dla poszczególnych urządzeń i kolekcji można ukryć, aby nie były widoczne w konsoli programu Configuration Manager. W przypadku korzystania z opcji Nie wyświetlaj tej wartości w konsoli programu Configuration Manager wartość zmiennej nie jest wyświetlana w konsoli programu . Plik dziennika sekwencji zadań (smsts.log) lub debuger sekwencji zadań również nie będą pokazywać wartości zmiennej. Zmienna może być nadal używana przez sekwencję zadań po jej uruchomieniu. Jeśli nie chcesz już ukrywać tych zmiennych, usuń je najpierw. Następnie ponownie zdefiniuj zmienne bez wybierania opcji, aby je ukryć.
Ostrzeżenie
Jeśli uwzględnisz zmienne w wierszu polecenia kroku Uruchom wiersz polecenia , w pliku dziennika sekwencji zadań zostanie wyświetlony pełny wiersz polecenia, w tym wartości zmiennych. Aby zapobiec wyświetlaniu potencjalnie poufnych danych w pliku dziennika, ustaw zmienną sekwencji zadań OSDDoNotLogCommand na TRUE
.
Zmiennymi na urządzenie można zarządzać w lokacji głównej lub centralnej lokacji administracyjnej. Program Configuration Manager nie obsługuje więcej niż 1000 przypisanych zmiennych dla urządzenia.
Ważna
W przypadku używania zmiennych dla kolekcji dla sekwencji zadań należy wziąć pod uwagę następujące zachowania:
Zmiany kolekcji są zawsze replikowane w całej hierarchii. Wszelkie zmiany wprowadzone w zmiennych kolekcji mają zastosowanie nie tylko do elementów członkowskich bieżącej witryny, ale do wszystkich elementów członkowskich kolekcji w całej hierarchii.
Po usunięciu kolekcji ta akcja usuwa również zmienne sekwencji zadań skonfigurowane dla kolekcji.
Tworzenie zmiennych sekwencji zadań dla urządzenia
W konsoli programu Configuration Manager przejdź do obszaru roboczego Zasoby i zgodność , a następnie wybierz węzeł Urządzenia .
Wybierz urządzenie docelowe i wybierz pozycję Właściwości.
W oknie dialogowym Właściwości przejdź do karty Zmienne .
Dla każdej zmiennej, którą chcesz utworzyć, wybierz ikonę Nowa . 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.
Po dodaniu wszystkich zmiennych do właściwości urządzenia wybierz przycisk OK.
Tworzenie zmiennych sekwencji zadań dla kolekcji
W konsoli programu Configuration Manager przejdź do obszaru roboczego Zasoby i zgodność , a następnie wybierz węzeł Kolekcje urządzeń . Wybierz kolekcję docelową i wybierz pozycję Właściwości.
W oknie dialogowym Właściwości przejdź do karty Zmienne kolekcji .
Dla każdej zmiennej, którą chcesz utworzyć, wybierz ikonę Nowa . 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.
Opcjonalnie określ priorytet programu Configuration Manager do użycia podczas obliczania zmiennych sekwencji zadań.
Po dodaniu wszystkich zmiennych do właściwości kolekcji wybierz przycisk OK.
Obiekt TSEnvironment COM
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 Przeduruchomienie
Polecenie przeduruchomienia to skrypt lub plik wykonywalny uruchamiany w systemie Windows PE, zanim użytkownik wybierze sekwencję zadań. Polecenie przeduruchomieniowe może wysyłać zapytania do zmiennej lub monitować użytkownika o informacje, a następnie zapisywać ją w środowisku. Użyj obiektu TSEnvironment COM, aby odczytywać i zapisywać zmienne z polecenia przeduruchomieniowego.
Aby uzyskać więcej informacji, zobacz Polecenia przeduruchomieniowe dla nośnika sekwencji zadań.
Kreator sekwencji zadań
Po wybraniu sekwencji zadań w oknie Kreator sekwencji zadań strona edytowania zmiennych sekwencji zadań zawiera przycisk Edytuj . Możesz użyć dostępnych skrótów klawiaturowych, aby edytować zmienne. Ta zmiana pomaga w przypadkach, gdy mysz nie jest dostępna.
Kreator nośnika sekwencji zadań
Określ zmienne dla sekwencji zadań uruchamianych z nośnika. Podczas wdrażania systemu operacyjnego za pomocą nośnika należy dodać zmienne sekwencji zadań i określić ich wartości podczas tworzenia nośnika. 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 nośniki wstępnie przygotowane, pobierają sekwencję zadań z punktu zarządzania.
Po uruchomieniu sekwencji zadań z nośnika możesz 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 komputerów i kolekcji nie są stosowane i nie są używane.
Porada
Sekwencja zadań zapisuje identyfikator pakietu i wiersz polecenia przed uruchomieniem w pliku CreateTSMedia.log na komputerze z uruchomioną konsolą programu Configuration Manager. Ten plik dziennika zawiera wartość dla dowolnych zmiennych sekwencji zadań. Przejrzyj ten plik dziennika, aby sprawdzić 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ń. Na przykład uzyskaj dostęp do wartości domyślnych dla wbudowanych zmiennych sekwencji zadań lub uzależnij krok od wartości zmiennej.
Użyj następujących metod, aby uzyskać dostęp do wartości zmiennych w środowisku sekwencji zadań:
Użyj 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. Umieść nazwę zmiennej w znakach procentu (%
).
Na przykład użyj nazwy zmiennej jako części pola Wiersz polecenia kroku Uruchom wiersz polecenia . Poniższy wiersz polecenia zapisuje nazwę komputera w pliku tekstowym.
cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt
Warunek kroku
Użyj wbudowanych lub niestandardowych zmiennych sekwencji zadań jako części warunku w kroku lub grupie. Sekwencja zadań oblicza wartość zmiennej przed uruchomieniem kroku lub grupy.
Aby dodać warunek, który oblicza wartość zmiennej, wykonaj następujące kroki:
W edytorze sekwencji zadań wybierz krok lub grupę, do której chcesz dodać warunek.
Przejdź do karty Opcje dla kroku lub grupy. Kliknij pozycję Dodaj warunek i wybierz pozycję Zmienna sekwencji zadań.
W oknie dialogowym Zmienna sekwencji zadań określ następujące ustawienia:
Zmienna: nazwa zmiennej. Na przykład
_SMSTSInWinPE
.Warunek: warunek do oceny wartości zmiennej. Dostępne są następujące warunki:
- Istnieje
- Nie istnieje
- Equals
- Nie równa się
- Większe niż
- Większe niż lub równe
- Mniejsze niż
- Mniejsze niż lub równe
- Like (obsługuje symbole wieloznaczne i
*
?
) - Nie lubię (wersja 2103 lub nowsza)
Wartość: wartość zmiennej do sprawdzenia. Na przykład
false
.
Powyższe trzy przykłady stanowią typowy warunek, aby sprawdzić, czy sekwencja zadań jest uruchomiona z obrazu rozruchowego w systemie Windows PE:
Zmienna sekwencji zadań
_SMSTSInWinPE equals "false"
Zobacz ten warunek w grupie Przechwytywanie plików i ustawień 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
Odczyt i zapis zmiennych przy użyciu obiektu COM Microsoft.SMS.TSEnvironment , gdy sekwencja zadań jest uruchomiona.
Poniższy przykład programu Windows PowerShell wysyła zapytanie do 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 konfiguracji systemu Windows
Dostarczany plik odpowiedzi konfiguracji systemu Windows może zawierać osadzone zmienne sekwencji zadań. Użyj formularza %varname%
, gdzie varname jest nazwą zmiennej. Krok Setup Windows and ConfigMgr (Konfiguracja systemu Windows i programu ConfigMgr ) zastępuje ciąg nazwy zmiennej dla rzeczywistej wartości zmiennej. Tych osadzonych zmiennych sekwencji zadań nie można używać w polach tylko liczbowych w pliku odpowiedzi unattend.xml.
Aby uzyskać więcej informacji, zobacz Konfigurowanie systemu Windows i programu ConfigMgr.