Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Configuration Manager (aktuell gren)
Aktivitetssekvensmotorn i OS-distributionsfunktionen i Configuration Manager använder många variabler för att styra dess beteenden. Använd dessa variabler för att:
- Ange villkor för steg
- Ändra beteenden för specifika steg
- Användning i skript för mer komplexa åtgärder
En referens till alla tillgängliga aktivitetssekvensvariabler finns i Aktivitetssekvensvariabler.
Typer av variabler
Det finns flera typer av variabler:
Inbyggda variabler
Inbyggda variabler ger information om miljön där aktivitetssekvensen körs. Värdena är tillgängliga under hela aktivitetssekvensen. Vanligtvis initierar aktivitetssekvensmotorn inbyggda variabler innan den kör några steg.
Är till exempel _SMSTSLogPath en miljövariabel som anger den sökväg till vilken Configuration Manager komponenter skriver loggfiler. Alla aktivitetssekvenssteg kan komma åt den här miljövariabeln.
Aktivitetssekvensen utvärderar vissa variabler före varje steg. Till exempel _SMSTSCurrentActionName listas namnet på det aktuella steget.
Åtgärdsvariabler
Aktivitetssekvensåtgärdsvariabler anger konfigurationsinställningar som används i ett enda aktivitetssekvenssteg. Som standard initieras inställningarna i steget innan det körs. De här inställningarna är endast tillgängliga när det associerade aktivitetssekvenssteget körs. Aktivitetssekvensen lägger till åtgärdsvariabelns värde i miljön innan den kör steget. Sedan tas värdet bort från miljön när steget har körts.
Du kan till exempel lägga till steget Kör kommandorad i en aktivitetssekvens. Det här steget innehåller en Starta in-egenskap . Aktivitetssekvensen lagrar ett standardvärde för den här egenskapen som variabeln WorkingDirectory . Aktivitetssekvensen initierar det här värdet innan den kör steget Kör kommandorad . Medan det här steget körs kan du komma åt egenskapsvärdet Starta i från WorkingDirectory värdet. När steget har slutförts tar aktivitetssekvensen bort värdet för variabeln WorkingDirectory från miljön. Om aktivitetssekvensen innehåller ett annat Kör kommandoradssteg initierar den en ny WorkingDirectory variabel. Då anger aktivitetssekvensen variabeln till startvärdet för det aktuella steget. Mer information finns i WorkingDirectory.
Standardvärdet för en åtgärdsvariabel finns när steget körs. Om du anger ett nytt värde är det tillgängligt för flera steg i aktivitetssekvensen. Om du åsidosätter ett standardvärde finns det nya värdet kvar i miljön. Det här nya värdet åsidosätter standardvärdet för andra steg i aktivitetssekvensen. Du kan till exempel lägga till steget Ange aktivitetssekvensvariabel som det första steget i aktivitetssekvensen. Det här steget anger variabeln WorkingDirectory till C:\. Alla Kör kommandoradssteg i aktivitetssekvensen använder det nya startkatalogvärdet.
Vissa aktivitetssekvenssteg markerar vissa åtgärdsvariabler som utdata. Senare i aktivitetssekvensen läser du dessa utdatavariabler.
Obs!
Alla aktivitetssekvenssteg har inte åtgärdsvariabler. Även om det till exempel finns variabler associerade med åtgärden Aktivera BitLocker , finns det inga variabler associerade med åtgärden Inaktivera BitLocker .
Anpassade variabler
Dessa variabler är alla som Configuration Manager inte skapar. Initiera egna variabler som villkor, kommandorader eller skript.
Följ dessa riktlinjer när du anger ett namn för en ny aktivitetssekvensvariabel:
Namnet på aktivitetssekvensvariabeln kan innehålla bokstäver, siffror, understreck (
_) och ett bindestreck (-).Aktivitetssekvensvariabelnamn har en minsta längd på ett tecken och en maximal längd på 256 tecken.
Användardefinierade variabler måste börja med en bokstav ( eller
A-Za-z).Användardefinierade variabelnamn får inte börja med understreck. Endast skrivskyddade aktivitetssekvensvariabler föregås av understreckstecknet.
Aktivitetssekvensvariabelnamn är inte skiftlägeskänsliga. Till exempel
OSDVARochosdvarär samma aktivitetssekvensvariabel.Variabelnamn för aktivitetssekvens får inte börja eller sluta med blanksteg. De kan inte heller ha inbäddade blanksteg. Uppgiftssekvensen ignorerar blanksteg i början eller slutet av ett variabelnamn.
Det finns ingen fastställd gräns för hur många aktivitetssekvensvariabler du kan skapa. Antalet variabler begränsas dock av storleken på aktivitetssekvensmiljön. Den totala storleksgränsen för aktivitetssekvensmiljön är 8 kB. Mer information finns i Minska storleken på aktivitetssekvensprincipen.
Skrivskyddade variabler
Du kan inte ändra värdet för vissa variabler, som är skrivskyddade. Vanligtvis börjar namnet med ett understreck (_). Aktivitetssekvensen använder dem för sina åtgärder. Skrivskyddade variabler visas i aktivitetssekvensmiljön.
Dessa variabler är användbara i skript eller kommandorader. Du kan till exempel köra en kommandorad och skicka utdata till en loggfil in _SMSTSLogPath med de andra loggfilerna.
Obs!
Skrivskyddade aktivitetssekvensvariabler kan läsas av steg i en aktivitetssekvens, men de kan inte anges. Använd till exempel en skrivskyddad variabel som en del av kommandoraden för ett Kör kommandoradssteg . Du kan inte ange en skrivskyddad variabel med hjälp av steget Ange aktivitetssekvensvariabel .
Matrisvariabler
I aktivitetssekvensen lagras vissa variabler som en matris. Varje element i matrisen representerar inställningarna för ett enskilt objekt. Använd dessa variabler när en enhet har mer än ett objekt att konfigurera. I följande aktivitetssekvenssteg används matrisvariabler:
Så här ställer du in variabler
För anpassade variabler eller variabler som inte är skrivskyddade finns det flera metoder för att initiera och ange värdet för variabeln:
- Ange variabelsteg för uppgiftssekvens
- Steg för att ange dynamiska variabler
- Kör PowerShell-skriptsteg
- Samlings- och enhetsvariabler
- TSEnvironment COM-objekt
- Kommandot Förinläsning
- Guiden Uppgiftsföljd
- Guiden Aktivitetssekvensmedia
Ta bort en variabel från miljön på samma sätt som när du skapar en variabel. Om du vill ta bort en variabel anger du variabelvärdet till en tom sträng.
Du kan kombinera metoder för att ange olika värden för en aktivitetssekvensvariabel för samma sekvens. Du kan till exempel ange standardvärden med hjälp av aktivitetssekvensredigeraren och sedan ange anpassade värden med hjälp av ett skript.
Om du anger samma variabel med olika metoder använder aktivitetssekvensmotorn följande ordning:
Den utvärderar insamlingsvariabler först.
Enhetsspecifika variabler åsidosätter samma variabel som angetts för en samling.
Variabler som anges av någon metod under aktivitetssekvensen har företräde framför samlings- eller enhetsvariabler.
Allmänna begränsningar för variabelvärden för aktivitetssekvens
Variabelvärden för aktivitetssekvens får inte innehålla mer än 4 000 tecken.
Du kan inte ändra en skrivskyddad aktivitetssekvensvariabel. Skrivskyddade variabler har namn som börjar med ett understreck (
_).Variabelvärden för aktivitetssekvens kan vara skiftlägeskänsliga, beroende på hur värdet används. I de flesta fall är variabelvärden för aktivitetssekvens inte skiftlägeskänsliga. En variabel som innehåller ett lösenord är skiftlägeskänslig.
Ange aktivitetssekvensvariabel
Använd det här steget i aktivitetssekvensen för att ange en enskild variabel till ett enda värde.
Mer information finns i Ange aktivitetssekvensvariabel.
Ange dynamiska variabler
Använd det här steget i aktivitetssekvensen för att ange en eller flera aktivitetssekvensvariabler. Du definierar regler i det här steget för att avgöra vilka variabler och värden som ska användas.
Mer information finns i Ange dynamiska variabler.
Kör PowerShell-skript
Använd det här steget i aktivitetssekvensen om du vill använda ett PowerShell-skript för att ange en aktivitetssekvensvariabel.
Du kan ange ett skriptnamn från ett paket eller ange ett PowerShell-skript direkt i steget. Använd sedan egenskapen step för att mata ut till aktivitetssekvensvariabeln för att spara skriptutdata till en anpassad aktivitetssekvensvariabel.
Mer information om det här steget finns i Kör PowerShell-skript.
Obs!
Du kan också använda ett PowerShell-skript för att ange en eller flera variabler med TSEnvironment-objektet . Mer information finns i Så här använder du variabler i en aktivitetssekvens som körs i Configuration Manager SDK.
Exempelscenario med steget Kör PowerShell-skript
Din miljö har användare i flera länder/regioner, så du vill fråga operativsystemspråket som ska anges som ett villkor i flera språkspecifika tillämpningssteg .
Lägg till en instans av Kör PowerShell-skriptet i aktivitetssekvensen före stegen för att tillämpa OS .
Använd alternativet Ange ett PowerShell-skript för att ange följande kommando:
(Get-Culture).TwoLetterISOLanguageNameMer information om cmdleten finns i Get-Culture. Mer information om ISO-språknamn med två bokstäver finns i Lista över ISO 639-1-koder.
För alternativet Utdata till aktivitetssekvensvariabeln anger du
CurrentOSLanguage.
I steget Använd operativsystem för den engelska språkavbildningen skapar du följande villkor:
Task Sequence Variable CurrentOSLanguage equals "en"
Tips
Mer information om hur du skapar ett villkor i ett steg finns i Så här kommer du åt variabler – Stegvillkor.
Spara och distribuera aktivitetssekvensen.
När steget Kör PowerShell-skript körs på en enhet med den engelska versionen av Windows returnerar kommandot värdet en. Sedan sparas det värdet i den anpassade variabeln. När steget Använd operativsystem för den engelska språkavbildningen körs på samma enhet utvärderas villkoret till sant. Om du har flera instanser av steget Använd OS för olika språk kör aktivitetssekvensen dynamiskt det steg som matchar OS-språket.
Samlings- och enhetsvariabler
Du kan definiera anpassade aktivitetssekvensvariabler för enheter och samlingar. Variabler som du definierar för en enhet kallas aktivitetssekvensvariabler per enhet. Variabler som definierats för en samling kallas för aktivitetssekvensvariabler per samling. Om det uppstår en konflikt har variabler per enhet företräde framför variabler per samling. Det här beteendet innebär att aktivitetssekvensvariabler som tilldelas till en specifik enhet automatiskt har högre prioritet än variabler som har tilldelats till samlingen som innehåller enheten.
Enheten XYZ är till exempel medlem i samlingen ABC. Du tilldelar MyVariable till samlingen ABC med värdet 1. Du tilldelar också MyVariable till enheten XYZ med värdet 2. Variabeln som tilldelas XYZ har högre prioritet än variabeln som tilldelas till samlingen ABC. När en aktivitetssekvens med den här variabeln körs på XYZ har MyVariable värdet 2.
Du kan dölja variabler per enhet och per samling så att de inte visas i Configuration Manager-konsolen. När du använder alternativet Visa inte det här värdet i Configuration Manager-konsolen visas inte variabelns värde i konsolen. Aktivitetssekvensloggfilen (smsts.log) eller felsökningsverktyget för aktivitetssekvens visar inte heller variabelvärdet. Variabeln kan fortfarande användas av aktivitetssekvensen när den körs. Om du inte längre vill att dessa variabler ska vara dolda kan du ta bort dem först. Definiera sedan om variablerna utan att välja alternativet för att dölja dem.
Varning
Om du inkluderar variabler i kommandoraden för steget Kör kommandorad visar aktivitetssekvensloggfilen den fullständiga kommandoraden inklusive variabelvärdena. Om du vill förhindra att potentiellt känsliga data visas i loggfilen anger du aktivitetssekvensvariabeln OSDDoNotLogCommand till TRUE.
Du kan hantera variabler per enhet på en primär plats eller på en central administrationsplats. Configuration Manager stöder inte fler än 1 000 tilldelade variabler för en enhet.
Viktigt
När du använder variabler per samling för aktivitetssekvenser bör du tänka på följande beteenden:
Ändringar i samlingar replikeras alltid i hela hierarkin. Alla ändringar som du gör i samlingsvariabler gäller inte bara för medlemmar på den aktuella webbplatsen, utan för alla medlemmar i samlingen i hela hierarkin.
När du tar bort en samling tar den här åtgärden även bort de aktivitetssekvensvariabler som du har konfigurerat för samlingen.
Skapa aktivitetssekvensvariabler för en enhet
I konsolen Configuration Manager går du till arbetsytan Tillgångar och efterlevnad och väljer noden Enheter.
Välj målenheten och välj Egenskaper.
Växla till fliken Variabler i dialogrutan Egenskaper.
För varje variabel som du vill skapa väljer du ikonen Nytt . Ange namn och värde för aktivitetssekvensvariabeln. Om du vill dölja variabeln så att den inte visas i konsolen Configuration Manager väljer du alternativet Visa inte det här värdet i konsolen Configuration Manager.
När du har lagt till alla variabler i enhetsegenskaperna väljer du OK.
Skapa aktivitetssekvensvariabler för en samling
I konsolen Configuration Manager går du till arbetsytan Tillgångar och efterlevnad och väljer noden Enhetssamlingar. Markera målsamlingen och välj Egenskaper.
I dialogrutan Egenskaper växlar du till fliken Samlingsvariabler .
För varje variabel som du vill skapa väljer du ikonen Nytt . Ange namn och värde för aktivitetssekvensvariabeln. Om du vill dölja variabeln så att den inte visas i konsolen Configuration Manager väljer du alternativet Visa inte det här värdet i konsolen Configuration Manager.
Du kan också ange prioriteten för Configuration Manager som ska användas när aktivitetssekvensvariablerna utvärderas.
När du har lagt till alla variabler i samlingsegenskaperna väljer du OK.
TSEnvironment COM-objekt
Om du vill arbeta med variabler från ett skript använder du TSEnvironment-objektet .
Mer information finns i Så här använder du variabler i en aktivitetssekvens som körs i Configuration Manager SDK.
Kommandot Förinläsning
Förinläsningskommandot är ett skript eller en körbar fil som körs i Windows PE innan användaren väljer aktivitetssekvensen. Förinläsningskommandot kan fråga en variabel eller fråga användaren om information och sedan spara den i miljön. Använd COM-objektet TSEnvironment för att läsa och skriva variabler från förstartskommandot.
Mer information finns i Förstartskommandon för aktivitetssekvensmedia.
Guiden Uppgiftsföljd
När du har valt en aktivitetssekvens i aktivitetssekvensguidens fönster innehåller sidan för att redigera aktivitetssekvensvariabler en Redigera-knapp . Du kan använda tillgängliga kortkommandon för att redigera variablerna. Den här ändringen är till hjälp när en mus inte är tillgänglig.
Guiden Aktivitetssekvensmedia
Ange variabler för aktivitetssekvenser som körs från media. När du använder media för att distribuera operativsystemet lägger du till aktivitetssekvensvariablerna och anger deras värden när du skapar mediet. Variablerna och deras värden lagras på mediet.
Obs!
Aktivitetssekvenser lagras på fristående medier. Alla andra typer av media, till exempel förinstallerade medier, hämtar dock aktivitetssekvensen från en hanteringsplats.
När du kör en uppgiftssekvens från media kan du lägga till en variabel på sidan Anpassning i guiden.
Använd medievariablerna i stället för variabler per samling eller per dator. Om aktivitetssekvensen körs från media gäller inte variabler per dator och per samling och används inte.
Tips
Aktivitetssekvensen skriver paket-ID:t och förinläsningskommandoraden till CreateTSMedia.log-filen på datorn där Configuration Manager-konsolen körs. Den här loggfilen innehåller värdet för alla aktivitetssekvensvariabler. Granska den här loggfilen för att verifiera värdet för aktivitetssekvensvariablerna.
Mer information finns i Skapa aktivitetssekvensmedia.
Så här kommer du åt variabler
När du har angett variabeln och dess värde med hjälp av någon av metoderna från föregående avsnitt använder du den i dina aktivitetssekvenser. Du kan till exempel komma åt standardvärden för inbyggda aktivitetssekvensvariabler eller göra ett steg villkorligt av värdet för en variabel.
Använd följande metoder för att komma åt variabelvärden i aktivitetssekvensmiljön:
Använd i ett steg
Ange ett variabelvärde för en inställning i ett aktivitetssekvenssteg. Redigera steget i aktivitetssekvensredigeraren och ange variabelnamnet som fältvärde. Omge variabelnamnet med procenttecken (%).
Använd till exempel variabelnamnet som en del av fältet Kommandorad i steget Kör kommandorad . Följande kommandorad skriver datornamnet till en textfil.
cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt
Stegvillkor
Använd inbyggda eller anpassade aktivitetssekvensvariabler som en del av ett villkor i ett steg eller en grupp. Aktivitetssekvensen utvärderar variabelvärdet innan steget eller gruppen körs.
Så här lägger du till ett villkor som utvärderar ett variabelvärde:
I aktivitetssekvensredigeraren väljer du det steg eller den grupp som du vill lägga till villkoret i.
Växla till fliken Alternativ för steget eller gruppen. Klicka på Lägg till villkor och välj Aktivitetssekvensvariabel.
I dialogrutan Aktivitetssekvensvariabel anger du följande inställningar:
Variabel: Namnet på variabeln. Till exempel
_SMSTSInWinPE.Villkor: Villkoret för att utvärdera variabelvärdet. Följande villkor är tillgängliga:
- Finns
- Inte finns
- Lika med
- Inte lika med
- Större än
- Större än eller lika med
- Mindre än
- Mindre än eller lika med
- Som (stöder jokertecken för
*och?) - Inte som (version 2103 eller senare)
Värde: Värdet för variabeln som ska kontrolleras. Till exempel
false.
De tre exemplen ovan utgör ett vanligt villkor för att testa om aktivitetssekvensen körs från en startavbildning i Windows PE:
Variabel för aktivitetssekvens
_SMSTSInWinPE equals "false"
Se det här villkoret i gruppen Notera Files och inställningar i standardmallen för aktivitetssekvenser för att installera en befintlig OS-avbildning.
Mer information om villkor finns i Aktivitetssekvensredigeraren – Villkor.
Anpassat skript
Läs och skriv variabler med hjälp av COM-objektet Microsoft.SMS.TSEnvironment medan aktivitetssekvensen körs.
I följande Windows PowerShell exempel ställs frågor mot variabeln _SMSTSLogPath för att hämta den aktuella loggplatsen. Skriptet anger även en anpassad variabel.
# 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"
Svarsfil för installationsprogrammet för Windows
Svarsfilen för Windows-installationsprogrammet som du anger kan ha inbäddade aktivitetssekvensvariabler. Använd formen %varname%, där var_namn är namnet på variabeln.
Steget Installera Windows och ConfigMgr ersätter variabelnamnsträngen för det faktiska variabelvärdet. Dessa inbäddade aktivitetssekvensvariabler kan inte användas i numeriska fält i en unattend.xml svarsfil.
Mer information finns i Konfigurera Windows och ConfigMgr.