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 controllare i suoi comportamenti. Usare queste variabili per:

  • Impostare le condizioni per i passaggi
  • Modificare i comportamenti per passaggi specifici
  • Usala negli script per azioni più complesse

Per informazioni di riferimento su tutte le variabili disponibili della sequenza di attività, 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 loro valori sono disponibili durante l'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à associato. 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 . Durante l'esecuzione di questo passaggio, accedere al valore della WorkingDirectory proprietà Start In dal valore. Al termine del passaggio, la sequenza di attività rimuove il WorkingDirectory valore della variabile dall'ambiente. Se la sequenza di attività include un altro passaggio Esegui riga di comando , inizializza una nuova WorkingDirectory variabile. A quel punto, la sequenza di attività imposta la variabile sul valore iniziale per il passaggio corrente. Per ulteriori 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 della sequenza di attività. Se si sovrascrive un valore predefinito, il nuovo valore rimane nell'ambiente. Questo nuovo valore sostituisce il valore predefinito per 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 WorkingDirectory variabile su C:\. Qualsiasi passaggio della riga di comando Esegui nella sequenza di attività usa il nuovo valore della directory iniziale.

Alcuni passaggi della sequenza di attività contrassegnano determinate variabili di azione come output. Passaggi più avanti nella sequenza di attività leggere queste variabili di output.

Nota

Non tutti i passaggi della sequenza di attività hanno variabili di azione. Ad esempio, anche se sono presenti variabili associate all'azione Abilita BitLocker , non esistono variabili associate all'azione Disabilita BitLocker .

Variabili personalizzate

Queste variabili sono quelle che Configuration Manager non crea. Inizializza le tue variabili 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, il 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 o a-z).

  • I nomi di variabili definiti 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 e osdvar 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 un limite prestabilito 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 delle dimensioni totali per l'ambiente della sequenza di attività è 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 sue 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, l'esecuzione di una riga di comando e il reindirizzamento dell'output a un file di log con _SMSTSLogPath gli altri file di log.

Nota

Le variabili della sequenza di attività di sola lettura possono essere lette per passaggi in 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 con il passaggio Imposta variabile per sequenza di attività .

Variabili di matrice

La sequenza di attività archivia alcune variabili come matrice. Ogni elemento della matrice rappresenta le impostazioni per un singolo oggetto. Usare queste variabili quando un dispositivo ha più di un oggetto da configurare. I passaggi seguenti della sequenza di attività usano variabili di matrice:

Come impostare le variabili

Per le variabili personalizzate o le variabili che non sono di sola lettura, esistono diversi metodi per inizializzare e impostare il valore della variabile:

Eliminare una variabile dall'ambiente utilizzando gli stessi metodi previsti per la 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:

  1. Valuta prima le variabili di raccolta.

  2. Le variabili specifiche del dispositivo eseguono l'override dello stesso set di variabili in una raccolta.

  3. Le variabili impostate da qualsiasi metodo durante la sequenza di attività hanno la precedenza sulle variabili di insieme o di dispositivo.

Limitazioni generali per i valori delle variabili della sequenza di attività

  • I valori delle variabili della sequenza di attività non possono contenere più di 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'uso 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.

Imposta 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 della sequenza di attività per impostare una o più variabili della sequenza di attività. In questo passaggio è possibile definire le regole per determinare quali variabili e valori usare.

Per ulteriori informazioni, vedere Impostare variabili dinamiche.

Eseguire script di PowerShell

Usare questo passaggio della 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 PowerShell nel passaggio. Usare quindi la proprietà step per 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, vedi Come usare le variabili in una sequenza di attività in esecuzione nell'SDK di Configuration Manager.

Scenario di esempio con l'istruzione script Esegui PowerShell

Il tuo ambiente include utenti in più paesi/aree geografiche, quindi vuoi eseguire una query sulla lingua del sistema operativo da impostare come condizione per più passaggi di applicazione del sistema operativo specifici della lingua.

  1. Aggiungere un'istanza dello script Esegui PowerShell alla sequenza di attività prima dei passaggi Applica sistema operativo .

  2. Usare l'opzione per immettere uno script di PowerShell per specificare il comando seguente:

    (Get-Culture).TwoLetterISOLanguageName
    

    Per altre informazioni sul cmdlet, vedere Get-Culture. Per ulteriori informazioni sui nomi delle lingue ISO di due lettere, vedere Elenco dei codici ISO 639-1.

  3. Per l'opzione Output nella variabile della sequenza di attività, specifica.CurrentOSLanguage

    Screenshot dell'istruzione script di esempio Esegui PowerShell

  4. Nel passaggio Applica sistema operativo per l'immagine in lingua inglese, crea la condizione seguente: Task Sequence Variable CurrentOSLanguage equals "en"

    Screenshot della condizione di esempio nel passaggio Applica sistema operativo

    Consiglio

    Per ulteriori informazioni su come creare una condizione in un passaggio, vedere Come accedere alle variabili - Condizione passo.

  5. Salva e distribuisci la sequenza di attività.

Quando il passaggio Esegui script Esegui PowerShell viene eseguito in un dispositivo con la versione in lingua inglese di Windows, il comando restituisce il valore en. Quindi salva tale valore nella variabile personalizzata. Quando il passaggio Applica sistema operativo per l'immagine in lingua inglese viene eseguito sullo 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 alla lingua del sistema operativo.

Raccolta e variabili di dispositivo

È possibile definire variabili personalizzate della sequenza di attività 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 sono dette variabili della sequenza di attività per raccolta. Se si verifica un 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. Assegnare MyVariable alla raccolta ABC con un valore pari a 1. Assegna anche MyVariable al dispositivo XYZ con un valore di 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.

Puoi nascondere le variabili per dispositivo e per raccolta in modo che non siano visibili nella console di Configuration Manager. Quando usi 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 mostreranno il valore della variabile. La variabile può comunque essere usata dalla sequenza di attività quando viene eseguita. Se non vuoi più che queste variabili vengano nascoste, eliminale prima. Quindi ridefinire le variabili senza selezionare l'opzione per nasconderle.

Avviso

Se si includono variabili nella riga di comando del passaggio Esegui riga di comando , il file di log della sequenza di attività visualizza la riga di comando completa, inclusi i valori delle variabili. Per evitare che dati potenzialmente sensibili vengano visualizzati nel file di log, imposta 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 sequenze di attività, prendere in considerazione i comportamenti seguenti:

  • Le modifiche alle raccolte vengono sempre replicate in tutta la gerarchia. Qualsiasi modifica apportata alle variabili della raccolta si applica 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

  1. Nella console di Configuration Manager passare all'area di lavoro Asset e conformità e selezionare il nodo Dispositivi.

  2. Seleziona il dispositivo di destinazione e seleziona Proprietà.

  3. Nella finestra di dialogo Proprietà passare alla scheda Variabili .

  4. Per ogni variabile che si desidera creare, selezionare l'icona Nuovo . Specificare il nome e il valore della variabile della sequenza di attività. Se vuoi nascondere la variabile in modo che non sia visibile nella console di Configuration Manager, seleziona l'opzione Non visualizzare questo valore nella console di Configuration Manager.

  5. Dopo aver aggiunto tutte le variabili alle proprietà del dispositivo, selezionare OK.

Creare variabili della sequenza di attività per una raccolta

  1. 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à.

  2. Nella finestra di dialogo Proprietà passare alla scheda Variabili di raccolta .

  3. Per ogni variabile che si desidera creare, selezionare l'icona Nuovo . Specificare il nome e il valore della variabile della sequenza di attività. Se vuoi nascondere la variabile in modo che non sia visibile nella console di Configuration Manager, seleziona l'opzione Non visualizzare questo valore nella console di Configuration Manager.

  4. Facoltativamente, specifica la priorità per Configuration Manager da usare quando vengono valutate le variabili della sequenza di attività.

  5. Dopo aver aggiunto tutte le variabili alle proprietà della raccolta, selezionare OK.

Oggetto COM TSEnvironment

Per usare le variabili di uno script, usare l'oggetto TSEnvironment .

Per altre informazioni, vedi Come usare le variabili in una sequenza di attività in esecuzione nell'SDK di Configuration Manager.

Comando di preavvio

Il comando prestart è uno script o un eseguibile che viene eseguito in Windows PE prima che l'utente selezioni la sequenza di attività. Il comando prestart può eseguire una query su una variabile o richiedere informazioni all'utente per poi salvarle nell'ambiente. Usare l'oggetto COM TSEnvironment per leggere e scrivere variabili dal comando prestart.

Per altre informazioni, vedere Comandi di preavvio per i contenuti multimediali della sequenza di attività.

Creazione guidata della 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 . Per modificare le variabili, è possibile usare le scelte rapide da tastiera accessibili. Questa modifica è utile nei casi in cui il mouse non è disponibile.

Creazione guidata elementi multimediali per sequenza di attività

Specifica le variabili per le sequenze di attività eseguite dai supporti. Quando si usano i supporti per distribuire il sistema operativo, si aggiungono le variabili della sequenza di attività e si specificano i loro valori quando si creano i supporti. Le variabili e i loro valori vengono memorizzati nel supporto.

Nota

Le sequenze di attività vengono archiviate in 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.

Usa le variabili multimediali al posto delle variabili per raccolta o per computer. Se la sequenza di attività viene eseguita da supporti, le variabili per computer e per raccolta non si applicano 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 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 supporti per sequenze di attività.

Come accedere alle variabili

Dopo aver specificato la variabile e il relativo valore usando uno dei metodi della sezione precedente, usala nelle sequenze di attività. Ad esempio, accedere ai valori predefiniti per le variabili predefinite della sequenza di attività o impostare un passaggio condizionale dal valore di una variabile.

Usa i metodi seguenti per accedere ai valori delle variabili nell'ambiente della sequenza di attività:

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 tra 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 passaggio

Usare le variabili della sequenza di attività predefinite o personalizzate come parte di una condizione in un passaggio o un gruppo. La sequenza di attività valuta il valore della variabile prima di eseguire il passaggio o il gruppo.

Per aggiungere una condizione che valuti un valore di variabile, seguire questa procedura:

  1. Nell'editor della sequenza di attività selezionare il passaggio o il gruppo a cui si vuole aggiungere la condizione.

  2. Passare alla scheda Opzioni per il passaggio o il gruppo. Fare clic su Aggiungi condizione e selezionare Variabile sequenza di attività.

  3. Nella finestra di dialogo Variabile della sequenza di attività specificare le impostazioni seguenti:

    • Variabile: il nome della variabile. Ad esempio, _SMSTSInWinPE.

    • Condizione: condizione per valutare il valore della variabile. Sono disponibili le seguenti condizioni:

      • Esiste
      • Non esistente
      • Uguale
      • Diverso da
      • Maggiore di
      • Maggiore o uguale a
      • Minore di
      • Minore o uguale a
      • Like (supporta caratteri jolly di * e ?)
      • Not like (versione 2103 o successiva)
    • Valore: il valore della variabile da controllare. Ad esempio, false.

I tre esempi precedenti formano 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 Trascrivi Files e impostazioni del modello predefinito della sequenza di attività per installare un'immagine del sistema operativo esistente.

Per altre informazioni sulle condizioni, vedere Editor sequenza di attività - Condizioni.

Script personalizzato

Leggere e scrivere variabili utilizzando l'oggetto COM Microsoft.SMS.TSEnvironment mentre la sequenza di attività è in esecuzione.

Nell'esempio di Windows PowerShell seguente viene eseguita una query sulla variabile _SMSTSLogPath per ottenere il percorso di 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 del programma di installazione di Windows fornito può avere variabili della sequenza di attività incorporate. Utilizzate la forma %varname%, dove varname è il nome della variabile. Il passaggio Setup Windows and ConfigMgr sostituisce la stringa del nome della variabile con il valore effettivo della variabile. Queste variabili incorporate della sequenza di attività non possono essere usate in campi solo numerici in un file di risposte unattend.xml.

Per altre informazioni, vedi Configurare Windows e ConfigMgr.

Vedere anche