Come usare le variabili della sequenza di attività in Configuration Manager
Si applica a: Configuration Manager (Current Branch)
Il motore della sequenza di attività nella funzionalità di distribuzione del sistema operativo di Configuration Manager usa molte variabili per controllarne i comportamenti. Usare queste variabili per:
- Impostare le condizioni per i passaggi
- Modificare i comportamenti per passaggi specifici
- Usare negli script per azioni più complesse
Per un riferimento a tutte le variabili della sequenza di attività disponibili, vedere Variabili della sequenza di attività.
Tipi di variabili
Esistono diversi tipi di variabili:
Variabili predefinite
Le variabili predefinite forniscono informazioni sull'ambiente in cui viene eseguita la sequenza di attività. I relativi valori sono disponibili nell'intera sequenza di attività. In genere, il motore della sequenza di attività inizializza le variabili predefinite prima di eseguire qualsiasi passaggio.
Ad esempio, _SMSTSLogPath
è una variabile di ambiente che specifica il percorso in cui i componenti di Configuration Manager scrivono i file di log. Qualsiasi passaggio della sequenza di attività può accedere a questa variabile di ambiente.
La sequenza di attività valuta alcune variabili prima di ogni passaggio. Ad esempio, _SMSTSCurrentActionName
elenca il nome del passaggio corrente.
Variabili di azione
Le variabili di azione della sequenza di attività specificano le impostazioni di configurazione usate da un singolo passaggio della sequenza di attività. Per impostazione predefinita, il passaggio inizializza le impostazioni prima dell'esecuzione. Queste impostazioni sono disponibili solo durante l'esecuzione del passaggio della sequenza di attività associata. La sequenza di attività aggiunge il valore della variabile di azione all'ambiente prima di eseguire il passaggio. Rimuove quindi il valore dall'ambiente dopo l'esecuzione del passaggio.
Ad esempio, si aggiunge il passaggio Esegui riga di comando a una sequenza di attività. Questo passaggio include una proprietà Start In . La sequenza di attività archivia un valore predefinito per questa proprietà come WorkingDirectory
variabile. La sequenza di attività inizializza questo valore prima di eseguire il passaggio Esegui riga di comando . Mentre questo passaggio è in esecuzione, accedere al valore della proprietà Start In dal WorkingDirectory
valore . Al termine del passaggio, la sequenza di attività rimuove il valore della WorkingDirectory
variabile dall'ambiente. Se la sequenza di attività include un altro passaggio Esegui riga di comando , inizializza una nuova WorkingDirectory
variabile. In quel momento, la sequenza di attività imposta la variabile sul valore iniziale per il passaggio corrente. Per altre informazioni, vedere WorkingDirectory.
Il valore predefinito per una variabile di azione è presente quando viene eseguito il passaggio. Se si imposta un nuovo valore, è disponibile per più passaggi nella sequenza di attività. Se si esegue l'override di un valore predefinito, il nuovo valore rimane nell'ambiente. Questo nuovo valore sostituisce il valore predefinito per gli altri passaggi della sequenza di attività. Ad esempio, si aggiunge un passaggio Imposta variabile della sequenza di attività come primo passaggio della sequenza di attività. Questo passaggio imposta la variabile su WorkingDirectory
C:\
. Qualsiasi passaggio Esegui riga di comando nella sequenza di attività usa il nuovo valore della directory iniziale.
Alcuni passaggi della sequenza di attività contrassegnano determinate variabili di azione come output. I passaggi successivi della sequenza di attività leggono queste variabili di output.
Nota
Non tutti i passaggi della sequenza di attività hanno variabili di azione. Ad esempio, sebbene siano presenti variabili associate all'azione Abilita BitLocker , non sono associate variabili all'azione Disabilita BitLocker .
Variabili personalizzate
Queste variabili sono tutte le variabili che Configuration Manager non crea. Inizializzare le variabili personalizzate da usare come condizioni, nelle righe di comando o negli script.
Quando si specifica un nome per una nuova variabile della sequenza di attività, seguire queste linee guida:
Il nome della variabile della sequenza di attività può includere lettere, numeri, carattere di sottolineatura (
_
) e un trattino (-
).I nomi delle variabili della sequenza di attività hanno una lunghezza minima di un carattere e una lunghezza massima di 256 caratteri.
Le variabili definite dall'utente devono iniziare con una lettera (
A-Z
oa-z
).I nomi delle variabili definite dall'utente non possono iniziare con il carattere di sottolineatura. Solo le variabili della sequenza di attività di sola lettura sono precedute dal carattere di sottolineatura.
I nomi delle variabili della sequenza di attività non fanno distinzione tra maiuscole e minuscole. Ad esempio,
OSDVAR
eosdvar
sono la stessa variabile della sequenza di attività.I nomi delle variabili della sequenza di attività non possono iniziare o terminare con uno spazio. Inoltre, non possono avere spazi incorporati. La sequenza di attività ignora gli spazi all'inizio o alla fine di un nome di variabile.
Non esiste alcun limite impostato per il numero di variabili della sequenza di attività che è possibile creare. Tuttavia, il numero di variabili è limitato dalle dimensioni dell'ambiente della sequenza di attività. Il limite di dimensioni totali per l'ambiente della sequenza di attività è di 8 KB. Per altre informazioni, vedere Ridurre le dimensioni dei criteri della sequenza di attività.
Variabili di sola lettura
Non è possibile modificare il valore di alcune variabili, che sono di sola lettura. In genere il nome inizia con un carattere di sottolineatura (_
). La sequenza di attività li usa per le relative operazioni. Le variabili di sola lettura sono visibili nell'ambiente della sequenza di attività.
Queste variabili sono utili negli script o nelle righe di comando. Ad esempio, eseguire una riga di comando e inviare tramite pipe l'output a un file di log in _SMSTSLogPath
con gli altri file di log.
Nota
Le variabili della sequenza di attività di sola lettura possono essere lette in base ai passaggi di una sequenza di attività, ma non possono essere impostate. Ad esempio, usare una variabile di sola lettura come parte della riga di comando per un passaggio Esegui riga di comando . Non è possibile impostare una variabile di sola lettura usando il passaggio Imposta variabile della sequenza di attività .
Variabili di matrice
La sequenza di attività archivia alcune variabili come matrice. Ogni elemento nella matrice rappresenta le impostazioni per un singolo oggetto. Usare queste variabili quando un dispositivo ha più di un oggetto da configurare. I passaggi della sequenza di attività seguenti usano variabili di matrice:
Come impostare le variabili
Per variabili personalizzate o variabili non di sola lettura, sono disponibili diversi metodi per inizializzare e impostare il valore della variabile:
- Passaggio Imposta variabile della sequenza di attività
- Passaggio Imposta variabili dinamiche
- Eseguire il passaggio Script di PowerShell
- Variabili di raccolta e dispositivo
- Oggetto COM TSEnvironment
- Comando di preavvio
- Creazione guidata sequenza di attività
- Creazione guidata supporto sequenza attività
Eliminare una variabile dall'ambiente usando gli stessi metodi della creazione di una variabile. Per eliminare una variabile, impostare il valore della variabile su una stringa vuota.
È possibile combinare metodi per impostare una variabile della sequenza di attività su valori diversi per la stessa sequenza. Ad esempio, impostare i valori predefiniti usando l'editor della sequenza di attività e quindi impostare valori personalizzati usando uno script.
Se si imposta la stessa variabile con metodi diversi, il motore della sequenza di attività usa l'ordine seguente:
Valuta prima le variabili di raccolta.
Le variabili specifiche del dispositivo sostituiscono lo stesso set di variabili in una raccolta.
Le variabili impostate da qualsiasi metodo durante la sequenza di attività hanno la precedenza sulle variabili di dispositivo o di raccolta.
Limitazioni generali per i valori delle variabili della sequenza di attività
I valori delle variabili della sequenza di attività non possono superare i 4.000 caratteri.
Non è possibile modificare una variabile della sequenza di attività di sola lettura. Le variabili di sola lettura hanno nomi che iniziano con un carattere di sottolineatura (
_
).I valori delle variabili della sequenza di attività possono fare distinzione tra maiuscole e minuscole a seconda dell'utilizzo del valore. Nella maggior parte dei casi, i valori delle variabili della sequenza di attività non fanno distinzione tra maiuscole e minuscole. Una variabile che include una password fa distinzione tra maiuscole e minuscole.
Impostare la variabile della sequenza di attività
Usare questo passaggio nella sequenza di attività per impostare una singola variabile su un singolo valore.
Per altre informazioni, vedere Impostare la variabile della sequenza di attività.
Impostare variabili dinamiche
Usare questo passaggio nella sequenza di attività per impostare una o più variabili della sequenza di attività. In questo passaggio vengono definite regole per determinare quali variabili e valori usare.
Per altre informazioni, vedere Impostare variabili dinamiche.
Eseguire lo script di PowerShell
Usare questo passaggio nella sequenza di attività per usare uno script di PowerShell per impostare una variabile della sequenza di attività.
È possibile specificare un nome di script da un pacchetto o immettere direttamente uno script di PowerShell nel passaggio . Usare quindi la proprietà step in Output nella variabile della sequenza di attività per salvare l'output dello script in una variabile della sequenza di attività personalizzata.
Per altre informazioni su questo passaggio, vedere Eseguire script di PowerShell.
Nota
È anche possibile usare uno script di PowerShell per impostare una o più variabili con l'oggetto TSEnvironment . Per altre informazioni, vedere Come usare le variabili in una sequenza di attività in esecuzione in Configuration Manager SDK.
Scenario di esempio con il passaggio Esegui script di PowerShell
L'ambiente include utenti in più paesi/aree geografiche, quindi si vuole eseguire una query sulla lingua del sistema operativo per impostare come condizione per più passaggi specifici del sistema operativo .
Aggiungere un'istanza di Esegui script di PowerShell alla sequenza di attività prima della procedura Applica sistema operativo .
Usare l'opzione Immettere uno script di PowerShell per specificare il comando seguente:
(Get-Culture).TwoLetterISOLanguageName
Per altre informazioni sul cmdlet, vedere Get-Culture. Per altre informazioni sui nomi delle lingue ISO a due lettere, vedere Elenco dei codici ISO 639-1.
Per l'opzione Output nella variabile della sequenza di attività, specificare
CurrentOSLanguage
.Nel passaggio Applica sistema operativo per l'immagine in lingua inglese creare la condizione seguente:
Task Sequence Variable CurrentOSLanguage equals "en"
Consiglio
Per altre informazioni su come creare una condizione in un passaggio, vedere Come accedere alle variabili - Condizione passaggio.
Salvare e distribuire la sequenza di attività.
Quando il passaggio Esegui script PowerShell viene eseguito in un dispositivo con la versione in lingua inglese di Windows, il comando restituisce il valore en
. Il valore viene quindi salvato nella variabile personalizzata. Quando il passaggio Applica sistema operativo per l'immagine in lingua inglese viene eseguito nello stesso dispositivo, la condizione restituisce true. Se sono presenti più istanze del passaggio Applica sistema operativo per lingue diverse, la sequenza di attività esegue dinamicamente il passaggio corrispondente al linguaggio del sistema operativo.
Variabili di raccolta e dispositivo
È possibile definire variabili della sequenza di attività personalizzate per dispositivi e raccolte. Le variabili definite per un dispositivo vengono definite variabili della sequenza di attività per dispositivo. Le variabili definite per una raccolta vengono definite variabili della sequenza di attività per raccolta. In caso di conflitto, le variabili per dispositivo hanno la precedenza sulle variabili per raccolta. Questo comportamento significa che le variabili della sequenza di attività assegnate a un dispositivo specifico hanno automaticamente una priorità più alta rispetto alle variabili assegnate alla raccolta che contiene il dispositivo.
Ad esempio, il dispositivo XYZ è un membro della raccolta ABC. Si assegna MyVariable alla raccolta ABC con un valore pari a 1. Si assegna anche MyVariable al dispositivo XYZ con un valore pari a 2. La variabile assegnata a XYZ ha una priorità più alta rispetto alla variabile assegnata alla raccolta ABC. Quando una sequenza di attività con questa variabile viene eseguita su XYZ, MyVariable ha un valore pari a 2.
È possibile nascondere le variabili per dispositivo e per raccolta in modo che non siano visibili nella console di Configuration Manager. Quando si usa l'opzione Non visualizzare questo valore nella console di Configuration Manager, il valore della variabile non viene visualizzato nella console. Il file di log della sequenza di attività (smsts.log) o il debugger della sequenza di attività non visualizzerà nemmeno il valore della variabile. La variabile può comunque essere usata dalla sequenza di attività quando viene eseguita. Se non si vuole più nascondere queste variabili, eliminarle prima. Ridefinire quindi le variabili senza selezionare l'opzione per nasconderle.
Avviso
Se si includono variabili nella riga di comando del passaggio Esegui riga di comando, nel file di log della sequenza di attività viene visualizzata la riga di comando completa, inclusi i valori delle variabili. Per impedire la visualizzazione di dati potenzialmente sensibili nel file di log, impostare la variabile della sequenza di attività OSDDoNotLogCommand su TRUE
.
È possibile gestire le variabili per dispositivo in un sito primario o in un sito di amministrazione centrale. Configuration Manager non supporta più di 1.000 variabili assegnate per un dispositivo.
Importante
Quando si usano variabili per raccolta per le sequenze di attività, considerare i comportamenti seguenti:
Le modifiche alle raccolte vengono sempre replicate in tutta la gerarchia. Tutte le modifiche apportate alle variabili di raccolta si applicano non solo ai membri del sito corrente, ma a tutti i membri della raccolta in tutta la gerarchia.
Quando si elimina una raccolta, questa azione elimina anche le variabili della sequenza di attività configurate per la raccolta.
Creare variabili della sequenza di attività per un dispositivo
Nella console di Configuration Manager passare all'area di lavoro Asset e conformità e selezionare il nodo Dispositivi .
Selezionare il dispositivo di destinazione e selezionare Proprietà.
Nella finestra di dialogo Proprietà passare alla scheda Variabili .
Per ogni variabile che si vuole creare, selezionare l'icona Nuovo . Specificare il nome e il valore della variabile della sequenza di attività. Se si vuole nascondere la variabile in modo che non sia visibile nella console di Configuration Manager, selezionare l'opzione Non visualizzare questo valore nella console di Configuration Manager.
Dopo aver aggiunto tutte le variabili alle proprietà del dispositivo, selezionare OK.
Creare variabili della sequenza di attività per una raccolta
Nella console di Configuration Manager passare all'area di lavoro Asset e conformità e selezionare il nodo Raccolte dispositivi . Selezionare la raccolta di destinazione e scegliere Proprietà.
Nella finestra di dialogo Proprietà passare alla scheda Variabili di raccolta .
Per ogni variabile che si vuole creare, selezionare l'icona Nuovo . Specificare il nome e il valore della variabile della sequenza di attività. Se si vuole nascondere la variabile in modo che non sia visibile nella console di Configuration Manager, selezionare l'opzione Non visualizzare questo valore nella console di Configuration Manager.
Facoltativamente, specificare la priorità da usare per Configuration Manager quando vengono valutate le variabili della sequenza di attività.
Dopo aver aggiunto tutte le variabili alle proprietà della raccolta, selezionare OK.
Oggetto COM TSEnvironment
Per usare le variabili da uno script, usare l'oggetto TSEnvironment .
Per altre informazioni, vedere Come usare le variabili in una sequenza di attività in esecuzione in Configuration Manager SDK.
Comando di preavvio
Il comando di preavvio è uno script o un eseguibile eseguito in Windows PE prima che l'utente selezioni la sequenza di attività. Il comando di preavvio può eseguire una query su una variabile o richiedere informazioni all'utente e quindi salvarlo nell'ambiente. Usare l'oggetto COM TSEnvironment per leggere e scrivere variabili dal comando di preavvio.
Per altre informazioni, vedere Comandi di preavvio per i supporti della sequenza di attività.
Creazione guidata sequenza di attività
Dopo aver selezionato una sequenza di attività nella finestra Creazione guidata sequenza di attività, la pagina per modificare le variabili della sequenza di attività include un pulsante Modifica . È possibile usare tasti di scelta rapida accessibili per modificare le variabili. Questa modifica è utile nei casi in cui un mouse non è disponibile.
Creazione guidata supporto sequenza attività
Specificare le variabili per le sequenze di attività eseguite dai supporti. Quando si usa il supporto per distribuire il sistema operativo, si aggiungono le variabili della sequenza di attività e si specificano i relativi valori quando si crea il supporto. Le variabili e i relativi valori vengono archiviati nel supporto.
Nota
Le sequenze di attività vengono archiviate su supporti autonomi. Tuttavia, tutti gli altri tipi di supporti, ad esempio i supporti pre-installati, recuperano la sequenza di attività da un punto di gestione.
Quando si esegue una sequenza di attività dai supporti, è possibile aggiungere una variabile nella pagina Personalizzazione della procedura guidata.
Usare le variabili multimediali al posto delle variabili per raccolta o per computer. Se la sequenza di attività è in esecuzione da supporti, le variabili per computer e per raccolta non vengono applicate e non vengono usate.
Consiglio
La sequenza di attività scrive l'ID pacchetto e la riga di comando di preavvio nel file CreateTSMedia.log nel computer che esegue la console di Configuration Manager. Questo file di log include il valore per tutte le variabili della sequenza di attività. Esaminare questo file di log per verificare il valore delle variabili della sequenza di attività.
Per altre informazioni, vedere Creare un supporto della sequenza di attività.
Come accedere alle variabili
Dopo aver specificato la variabile e il relativo valore usando uno dei metodi della sezione precedente, usarla nelle sequenze di attività. Ad esempio, accedere ai valori predefiniti per le variabili della sequenza di attività predefinite o rendere condizionale un passaggio sul valore di una variabile.
Usare i metodi seguenti per accedere ai valori delle variabili nell'ambiente della sequenza di attività:
- Usare in un passaggio
- Condizione del passaggio
- Script personalizzato
- File di risposte per l'installazione di Windows
Usare in un passaggio
Specificare un valore variabile per un'impostazione in un passaggio della sequenza di attività. Nell'editor della sequenza di attività modificare il passaggio e specificare il nome della variabile come valore del campo. Racchiudere il nome della variabile nei segni di percentuale (%
).
Ad esempio, usare il nome della variabile come parte del campo Riga di comando del passaggio Esegui riga di comando . La riga di comando seguente scrive il nome del computer in un file di testo.
cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt
Condizione del passaggio
Usare variabili predefinite o personalizzate della sequenza di attività come parte di una condizione in un passaggio o in un gruppo. La sequenza di attività valuta il valore della variabile prima di eseguire il passaggio o il gruppo.
Per aggiungere una condizione che valuta un valore di variabile, seguire questa procedura:
Nell'editor della sequenza di attività selezionare il passaggio o il gruppo a cui si vuole aggiungere la condizione.
Passare alla scheda Opzioni per il passaggio o il gruppo. Fare clic su Aggiungi condizione e selezionare Variabile sequenza di attività.
Nella finestra di dialogo Variabile sequenza di attività specificare le impostazioni seguenti:
Variabile: nome della variabile. Ad esempio,
_SMSTSInWinPE
.Condizione: condizione per valutare il valore della variabile. Sono disponibili le condizioni seguenti:
- Esiste
- Non esiste
- Uguale
- Non uguale a
- Maggiore di
- Maggiore o uguale a
- Minore di
- Minore o uguale a
- Like (supporta caratteri jolly di
*
e?
) - Non simile (versione 2103 o successiva)
Valore: valore della variabile da controllare. Ad esempio,
false
.
I tre esempi precedenti costituiscono una condizione comune per verificare se la sequenza di attività è in esecuzione da un'immagine di avvio in Windows PE:
Variabile della sequenza di attività
_SMSTSInWinPE equals "false"
Vedere questa condizione nel gruppo Acquisisci file e impostazioni del modello di sequenza di attività predefinito per installare un'immagine del sistema operativo esistente.
Per altre informazioni sulle condizioni, vedere Editor della sequenza di attività - Condizioni.
Script personalizzato
Leggere e scrivere variabili usando l'oggetto COM Microsoft.SMS.TSEnvironment mentre la sequenza di attività è in esecuzione.
L'esempio di Windows PowerShell seguente esegue una query sulla variabile _SMSTSLogPath per ottenere il percorso del log corrente. Lo script imposta anche una variabile personalizzata.
# 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"
File di risposte per l'installazione di Windows
Il file di risposte per l'installazione di Windows fornito può avere variabili della sequenza di attività incorporate. Utilizzare il formato %varname%
, dove varname è il nome della variabile. Il passaggio Setup Windows and ConfigMgr sostituisce la stringa del nome della variabile per il valore effettivo della variabile. Queste variabili della sequenza di attività incorporate non possono essere usate nei campi solo numerici in un file di risposte unattend.xml.
Per altre informazioni, vedere Configurare Windows e ConfigMgr.