Delen via


Takenreeksvariabelen gebruiken in Configuration Manager

Van toepassing op: Configuration Manager (current branch)

De takenreeksengine in de besturingssysteemimplementatiefunctie van Configuration Manager gebruikt veel variabelen om het gedrag ervan te beheren. Gebruik deze variabelen om het volgende te doen:

  • Voorwaarden instellen voor stappen
  • Gedrag voor specifieke stappen wijzigen
  • Gebruiken in scripts voor complexere acties

Zie Takenreeksvariabelen voor een verwijzing naar alle beschikbare takenreeksvariabelen.

Typen variabelen

Er zijn verschillende typen variabelen:

Ingebouwde variabelen

Ingebouwde variabelen bieden informatie over de omgeving waarin de takenreeks wordt uitgevoerd. Hun waarden zijn gedurende de hele takenreeks beschikbaar. Normaal gesproken initialiseert de takenreeksengine ingebouwde variabelen voordat er stappen worden uitgevoerd.

Is bijvoorbeeld _SMSTSLogPath een omgevingsvariabele die het pad aangeeft waarnaar Configuration Manager-onderdelen logboekbestanden schrijven. Elke takenreeksstap heeft toegang tot deze omgevingsvariabele.

De takenreeks evalueert enkele variabelen vóór elke stap. Geeft bijvoorbeeld _SMSTSCurrentActionName de naam van de huidige stap weer.

Actievariabelen

Variabelen voor takenreeksacties geven configuratie-instellingen op die door één takenreeksstap worden gebruikt. Standaard initialiseert de stap de instellingen voordat deze wordt uitgevoerd. Deze instellingen zijn alleen beschikbaar wanneer de bijbehorende takenreeksstap wordt uitgevoerd. De takenreeks voegt de waarde van de actievariabele toe aan de omgeving voordat de stap wordt uitgevoerd. Vervolgens wordt de waarde uit de omgeving verwijderd nadat de stap is uitgevoerd.

U voegt bijvoorbeeld de stap Opdrachtregel uitvoeren toe aan een takenreeks. Deze stap bevat de eigenschap Start In . In de takenreeks wordt een standaardwaarde voor deze eigenschap opgeslagen als de WorkingDirectory variabele. De takenreeks initialiseert deze waarde voordat de stap Opdrachtregel uitvoeren wordt uitgevoerd. Terwijl deze stap wordt uitgevoerd, opent u de waarde van de eigenschap Start In vanuit de WorkingDirectory waarde. Nadat de stap is voltooid, verwijdert de takenreeks de waarde van de WorkingDirectory variabele uit de omgeving. Als de takenreeks een andere opdrachtregelstap uitvoeren bevat, wordt er een nieuwe WorkingDirectory variabele geïnitialiseerd. Op dat moment stelt de takenreeks de variabele in op de beginwaarde voor de huidige stap. Zie WorkingDirectory voor meer informatie.

De standaardwaarde voor een actievariabele is aanwezig wanneer de stap wordt uitgevoerd. Als u een nieuwe waarde instelt, is deze beschikbaar voor meerdere stappen in de takenreeks. Als u een standaardwaarde overschrijft, blijft de nieuwe waarde in de omgeving. Deze nieuwe waarde overschrijft de standaardwaarde voor andere stappen in de takenreeks. U voegt bijvoorbeeld de stap Takenreeksvariabele instellen toe als eerste stap van de takenreeks. Met deze stap stelt u de WorkingDirectory variabele in op C:\. Elke opdrachtregelstap uitvoeren in de takenreeks maakt gebruik van de nieuwe beginmapwaarde.

Sommige takenreeksstappen markeren bepaalde actievariabelen als uitvoer. In stappen verderop in de takenreeks worden deze uitvoervariabelen gelezen.

Opmerking

Niet alle takenreeksstappen hebben actievariabelen. Hoewel er bijvoorbeeld variabelen zijn gekoppeld aan de actie BitLocker inschakelen , zijn er geen variabelen gekoppeld aan de actie BitLocker uitschakelen .

Aangepaste variabelen

Deze variabelen zijn allemaal die niet door Configuration Manager worden gemaakt. Initialiseer uw eigen variabelen voor gebruik als voorwaarden, in opdrachtregels of in scripts.

Wanneer u een naam opgeeft voor een nieuwe takenreeksvariabele, volgt u deze richtlijnen:

  • De naam van de takenreeksvariabele kan letters, cijfers, het onderstrepingsteken (_) en een afbreekstreepje (-) bevatten.

  • Namen van takenreeksvariabelen hebben een minimale lengte van één teken en een maximale lengte van 256 tekens.

  • Door de gebruiker gedefinieerde variabelen moeten beginnen met een letter (A-Z of a-z).

  • Door de gebruiker gedefinieerde variabelenamen kunnen niet beginnen met het onderstrepingsteken. Alleen takenreeksvariabelen met het kenmerk Alleen-lezen worden voorafgegaan door het onderstrepingsteken.

  • Namen van takenreeksvariabelen zijn niet hoofdlettergevoelig. En zijn bijvoorbeeld OSDVARosdvar dezelfde takenreeksvariabele.

  • Namen van takenreeksvariabelen kunnen niet beginnen of eindigen met een spatie. Ze kunnen ook geen ingesloten spaties hebben. In de takenreeks worden spaties aan het begin of einde van de naam van een variabele genegeerd.

Er is geen ingestelde limiet voor het aantal takenreeksvariabelen dat u kunt maken. Het aantal variabelen wordt echter beperkt door de grootte van de takenreeksomgeving. De totale groottelimiet voor de takenreeksomgeving is 8 kB. Zie De grootte van takenreeksbeleid verkleinen voor meer informatie.

Alleen-lezenvariabelen

U kunt de waarde van sommige variabelen, die alleen-lezen zijn, niet wijzigen. Meestal begint de naam met een onderstrepingsteken (_). De takenreeks gebruikt deze voor de bewerkingen. Alleen-lezen variabelen zijn zichtbaar in de takenreeksomgeving.

Deze variabelen zijn handig in scripts of opdrachtregels. Bijvoorbeeld door een opdrachtregel uit te voeren en de uitvoer door te geven aan een logboekbestand met _SMSTSLogPath de andere logboekbestanden.

Opmerking

Alleen-lezen takenreeksvariabelen kunnen worden gelezen door stappen in een takenreeks, maar ze kunnen niet worden ingesteld. Gebruik bijvoorbeeld een alleen-lezen variabele als onderdeel van de opdrachtregel voor een opdrachtregelstap Opdrachtregel uitvoeren . U kunt geen alleen-lezen variabele instellen met behulp van de stap Takenreeksvariabele instellen .

Matrixvariabelen

In de takenreeks worden sommige variabelen opgeslagen als een matrix. Elk element in de matrix vertegenwoordigt de instellingen voor één object. Gebruik deze variabelen wanneer een apparaat meer dan één object heeft om te configureren. In de volgende takenreeksstappen worden matrixvariabelen gebruikt:

Variabelen instellen

Voor aangepaste variabelen of variabelen die niet alleen-lezen zijn, zijn er verschillende methoden om de waarde van de variabele te initialiseren en in te stellen:

Verwijder een variabele uit de omgeving met dezelfde methoden als het maken van een variabele. Als u een variabele wilt verwijderen, stelt u de variabelewaarde in op een lege tekenreeks.

U kunt methoden combineren om een takenreeksvariabele in te stellen op verschillende waarden voor dezelfde reeks. Stel bijvoorbeeld de standaardwaarden in met behulp van de takenreekseditor en stel vervolgens aangepaste waarden in met behulp van een script.

Als u dezelfde variabele op verschillende methoden instelt, gebruikt de takenreeksengine de volgende volgorde:

  1. Eerst worden verzamelingsvariabelen geëvalueerd.

  2. Apparaatspecifieke variabelen overschrijven dezelfde variabele die is ingesteld voor een verzameling.

  3. Variabelen die tijdens de takenreeks door een methode zijn ingesteld, hebben voorrang op verzamelings- of apparaatvariabelen.

Algemene beperkingen voor waarden van takenreeksvariabelen

  • Waarden van takenreeksvariabelen mogen niet langer zijn dan 4000 tekens.

  • U kunt een alleen-lezen takenreeksvariabele niet wijzigen. Alleen-lezen variabelen hebben namen die beginnen met een onderstrepingsteken (_).

  • Waarden van takenreeksvariabelen kunnen hoofdlettergevoelig zijn, afhankelijk van het gebruik van de waarde. In de meeste gevallen zijn waarden van takenreeksvariabelen niet hoofdlettergevoelig. Een variabele met een wachtwoord is hoofdlettergevoelig.

Takenreeksvariabele instellen

Gebruik deze stap in de takenreeks om één variabele in te stellen op één waarde.

Zie Takenreeksvariabele instellen voor meer informatie.

Dynamische variabelen instellen

Gebruik deze stap in de takenreeks om een of meer takenreeksvariabelen in te stellen. In deze stap definieert u regels om te bepalen welke variabelen en waarden u wilt gebruiken.

Zie Dynamische variabelen instellen voor meer informatie.

PowerShell-script uitvoeren

Gebruik deze stap in de takenreeks om een PowerShell-script te gebruiken om een takenreeksvariabele in te stellen.

U kunt een scriptnaam van een pakket opgeven of rechtstreeks een PowerShell-script invoeren in de stap. Gebruik vervolgens de stapeigenschap voor Uitvoer naar takenreeksvariabele om de scriptuitvoer op te slaan in een aangepaste takenreeksvariabele.

Zie PowerShell-script uitvoeren voor meer informatie over deze stap.

Opmerking

U kunt ook een PowerShell-script gebruiken om een of meer variabelen in te stellen met het TSEnvironment-object . Zie Variabelen gebruiken in een actieve takenreeks in de Configuration Manager SDK voor meer informatie.

Voorbeeldscenario met powershell-scriptstap uitvoeren

Uw omgeving heeft gebruikers in meerdere landen/regio's, dus u wilt de taal van het besturingssysteem opvragen als voorwaarde voor meerdere taalspecifieke stappen voor het toepassen van het besturingssysteem .

  1. Voeg een exemplaar van het PowerShell-script uitvoeren toe aan de takenreeks vóór de stappen van het besturingssysteem toepassen .

  2. Gebruik de optie Voer een PowerShell-script in om de volgende opdracht op te geven:

    (Get-Culture).TwoLetterISOLanguageName
    

    Zie Get-Culture voor meer informatie over de cmdlet. Zie Lijst met ISO 639-1-codes voor meer informatie over de TWEEletterige ISO-taalnamen.

  3. Geef voor de optie Uitvoer naar takenreeksvariabele op CurrentOSLanguage.

    Schermopname van een voorbeeld van powershell-scriptstap uitvoeren

  4. Maak in de stap Besturingssysteem toepassen voor de engelse taal de volgende voorwaarde: Task Sequence Variable CurrentOSLanguage equals "en"

    Schermopname van een voorbeeldvoorwaarde in de stap Besturingssysteem toepassen

    Tip

    Zie Toegang krijgen tot variabelen - Stapvoorwaarde voor meer informatie over het maken van een voorwaarde voor een stap.

  5. Sla de takenreeks op en implementeer deze.

Wanneer de stap PowerShell-script uitvoeren wordt uitgevoerd op een apparaat met de Engelse taalversie van Windows, retourneert de opdracht de waarde en. Deze waarde wordt vervolgens opgeslagen in de aangepaste variabele. Wanneer de stap Besturingssysteem toepassen voor de Engelse taalinstallatiekopieën op hetzelfde apparaat wordt uitgevoerd, wordt de voorwaarde geëvalueerd als waar. Als u meerdere exemplaren van de stap Besturingssysteem toepassen voor verschillende talen hebt, voert de takenreeks dynamisch de stap uit die overeenkomt met de taal van het besturingssysteem.

Verzamelings- en apparaatvariabelen

U kunt aangepaste takenreeksvariabelen definiëren voor apparaten en verzamelingen. Variabelen die u voor een apparaat definieert, worden takenreeksvariabelen per apparaat genoemd. Variabelen die voor een verzameling zijn gedefinieerd, worden takenreeksvariabelen per verzameling genoemd. Als er een conflict is, hebben variabelen per apparaat voorrang op variabelen per verzameling. Dit gedrag betekent dat takenreeksvariabelen die zijn toegewezen aan een specifiek apparaat automatisch een hogere prioriteit hebben dan variabelen die zijn toegewezen aan de verzameling die het apparaat bevat.

Apparaat XYZ is bijvoorbeeld lid van verzameling ABC. U wijst MyVariable toe aan verzameling ABC met de waarde 1. U wijst ook MyVariable toe aan apparaat XYZ met de waarde 2. De variabele die is toegewezen aan XYZ heeft een hogere prioriteit dan de variabele die is toegewezen aan verzameling ABC. Wanneer een takenreeks met deze variabele wordt uitgevoerd op XYZ, heeft MyVariable de waarde 2.

U kunt variabelen per apparaat en per verzameling verbergen, zodat ze niet zichtbaar zijn in de Configuration Manager-console. Wanneer u de optie Deze waarde niet weergeven in de Configuration Manager-console gebruikt, wordt de waarde van de variabele niet weergegeven in de console. Het logboekbestand van de takenreeks (smsts.log) of het foutopsporingsprogramma voor takenreeksen geeft de variabelewaarde ook niet weer. De variabele kan nog steeds worden gebruikt door de takenreeks wanneer deze wordt uitgevoerd. Als u niet meer wilt dat deze variabelen worden verborgen, verwijdert u ze eerst. Definieer vervolgens de variabelen opnieuw zonder de optie te selecteren om ze te verbergen.

Waarschuwing

Als u variabelen opneemt in de opdrachtregel van de opdrachtregelstap Uitvoeren , wordt in het logboekbestand van de takenreeks de volledige opdrachtregel weergegeven, inclusief de variabelewaarden. Als u wilt voorkomen dat mogelijk gevoelige gegevens in het logboekbestand worden weergegeven, stelt u de takenreeksvariabele OSDDoNotLogCommand in op TRUE.

U kunt variabelen per apparaat beheren op een primaire site of op een centrale beheersite. Configuration Manager ondersteunt niet meer dan 1000 toegewezen variabelen voor een apparaat.

Belangrijk

Wanneer u variabelen per verzameling gebruikt voor takenreeksen, moet u rekening houden met het volgende gedrag:

  • Wijzigingen in verzamelingen worden altijd in de hiërarchie gerepliceerd. Wijzigingen die u aanbrengt in verzamelingsvariabelen zijn niet alleen van toepassing op leden van de huidige site, maar op alle leden van de verzameling in de hiërarchie.

  • Wanneer u een verzameling verwijdert, worden met deze actie ook de takenreeksvariabelen verwijderd die u voor de verzameling hebt geconfigureerd.

Takenreeksvariabelen voor een apparaat maken

  1. Ga in de Configuration Manager-console naar de werkruimte Activa en naleving en selecteer het knooppunt Apparaten .

  2. Selecteer het doelapparaat en selecteer Eigenschappen.

  3. Ga in het dialoogvenster Eigenschappen naar het tabblad Variabelen .

  4. Selecteer voor elke variabele die u wilt maken het pictogram Nieuw . Geef de naam en waarde van de takenreeksvariabele op. Als u de variabele wilt verbergen zodat deze niet zichtbaar is in de Configuration Manager-console, selecteert u de optie Deze waarde niet weergeven in de Configuration Manager-console.

  5. Nadat u alle variabelen aan de apparaateigenschappen hebt toegevoegd, selecteert u OK.

Takenreeksvariabelen maken voor een verzameling

  1. Ga in de Configuration Manager-console naar de werkruimte Activa en naleving en selecteer het knooppunt Apparaatverzamelingen . Selecteer de doelverzameling en kies Eigenschappen.

  2. Ga in het dialoogvenster Eigenschappen naar het tabblad Verzamelingsvariabelen .

  3. Selecteer voor elke variabele die u wilt maken het pictogram Nieuw . Geef de naam en waarde van de takenreeksvariabele op. Als u de variabele wilt verbergen zodat deze niet zichtbaar is in de Configuration Manager-console, selecteert u de optie Deze waarde niet weergeven in de Configuration Manager-console.

  4. Geef eventueel de prioriteit op die Configuration Manager moet gebruiken wanneer de takenreeksvariabelen worden geëvalueerd.

  5. Nadat u alle variabelen aan de eigenschappen van de verzameling hebt toegevoegd, selecteert u OK.

TSEnvironment COM-object

Als u wilt werken met variabelen uit een script, gebruikt u het TSEnvironment-object .

Zie Variabelen gebruiken in een actieve takenreeks in de Configuration Manager SDK voor meer informatie.

Prestart-opdracht

De prestart-opdracht is een script of uitvoerbaar bestand dat wordt uitgevoerd in Windows PE voordat de gebruiker de takenreeks selecteert. De prestart-opdracht kan een query uitvoeren op een variabele of de gebruiker om informatie vragen en deze vervolgens opslaan in de omgeving. Gebruik het COM-object TSEnvironment om variabelen te lezen en te schrijven vanuit de prestart-opdracht.

Zie Prestart-opdrachten voor takenreeksmedia voor meer informatie.

Wizard Takenreeks

Nadat u een takenreeks hebt geselecteerd in het venster Wizard Takenreeks, bevat de pagina voor het bewerken van takenreeksvariabelen een knop Bewerken . U kunt toegankelijke sneltoetsen gebruiken om de variabelen te bewerken. Deze wijziging helpt in gevallen waarin een muis niet beschikbaar is.

Wizard Takenreeksmedia

Geef variabelen op voor takenreeksen die worden uitgevoerd vanaf media. Wanneer u media gebruikt om het besturingssysteem te implementeren, voegt u de takenreeksvariabelen toe en geeft u de bijbehorende waarden op wanneer u de media maakt. De variabelen en hun waarden worden opgeslagen op de media.

Opmerking

Takenreeksen worden opgeslagen op zelfstandige media. Alle andere typen media, zoals voorbereide media, halen de takenreeks echter op van een beheerpunt.

Wanneer u een takenreeks uitvoert vanaf media, kunt u een variabele toevoegen op de pagina Aanpassen van de wizard.

Gebruik de mediavariabelen in plaats van variabelen per verzameling of per computer. Als de takenreeks wordt uitgevoerd vanaf media, zijn variabelen per computer en per verzameling niet van toepassing en worden ze niet gebruikt.

Tip

De takenreeks schrijft de pakket-id en de prestart-opdrachtregel naar het CreateTSMedia.log-bestand op de computer waarop de Configuration Manager-console wordt uitgevoerd. Dit logboekbestand bevat de waarde voor takenreeksvariabelen. Controleer dit logboekbestand om de waarde voor de takenreeksvariabelen te controleren.

Zie Takenreeksmedia maken voor meer informatie.

Toegang krijgen tot variabelen

Nadat u de variabele en de bijbehorende waarde hebt opgegeven met behulp van een van de methoden uit de vorige sectie, gebruikt u deze in uw takenreeksen. U kunt bijvoorbeeld toegang krijgen tot standaardwaarden voor ingebouwde takenreeksvariabelen of een stap afhankelijk maken van de waarde van een variabele.

Gebruik de volgende methoden om toegang te krijgen tot variabele waarden in de takenreeksomgeving:

Gebruiken in een stap

Geef een variabelewaarde op voor een instelling in een takenreeksstap. Bewerk de stap in de takenreekseditor en geef de naam van de variabele op als veldwaarde. Plaats de naam van de variabele tussen procenttekens (%).

Gebruik bijvoorbeeld de naam van de variabele als onderdeel van het veld Opdrachtregel van de stap Opdrachtregel uitvoeren . De volgende opdrachtregel schrijft de computernaam naar een tekstbestand.

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

Stapvoorwaarde

Gebruik ingebouwde of aangepaste takenreeksvariabelen als onderdeel van een voorwaarde voor een stap of groep. De takenreeks evalueert de variabelewaarde voordat de stap of groep wordt uitgevoerd.

Voer de volgende stappen uit om een voorwaarde toe te voegen waarmee een variabelewaarde wordt geëvalueerd:

  1. Selecteer in de takenreekseditor de stap of groep waaraan u de voorwaarde wilt toevoegen.

  2. Ga naar het tabblad Opties voor de stap of groep. Klik op Voorwaarde toevoegen en selecteer Takenreeksvariabele.

  3. Geef in het dialoogvenster Takenreeksvariabele de volgende instellingen op:

    • Variabele: de naam van de variabele. Bijvoorbeeld _SMSTSInWinPE.

    • Voorwaarde: de voorwaarde voor het evalueren van de variabelewaarde. De volgende voorwaarden zijn beschikbaar:

      • Bestaat
      • Bestaat niet
      • Is gelijk aan
      • Niet is gelijk aan
      • Groter dan
      • Groter dan of gelijk aan
      • Kleiner dan
      • Kleiner dan of gelijk aan
      • Like (ondersteunt jokertekens van * en ?)
      • Niet leuk (versie 2103 of hoger)
    • Waarde: de waarde van de variabele die moet worden gecontroleerd. Bijvoorbeeld false.

De drie bovenstaande voorbeelden vormen een algemene voorwaarde om te testen of de takenreeks wordt uitgevoerd vanuit een opstartinstallatiekopie in Windows PE:

Takenreeksvariabele_SMSTSInWinPE equals "false"

Zie deze voorwaarde in de groep Bestanden en instellingen vastleggen van de standaardtakenreekssjabloon om een bestaande installatiekopieën van het besturingssysteem te installeren.

Zie Takenreekseditor - Voorwaarden voor meer informatie over voorwaarden.

Aangepast script

Lees- en schrijfvariabelen met behulp van het COM-object Microsoft.SMS.TSEnvironment terwijl de takenreeks wordt uitgevoerd.

In het volgende Windows PowerShell-voorbeeld wordt een query uitgevoerd op de variabele _SMSTSLogPath om de huidige logboeklocatie op te halen. Met het script wordt ook een aangepaste variabele ingesteld.

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

Windows Setup-antwoordbestand

Het windows-installatieantwoordbestand dat u opgeeft, kan ingesloten takenreeksvariabelen bevatten. Gebruik het formulier %varname%, waarbij varname de naam van de variabele is. De stap Windows en ConfigMgr instellen vervangt de variabelenaamtekenreeks voor de werkelijke variabelewaarde. Deze ingesloten takenreeksvariabelen kunnen niet worden gebruikt in alleen numerieke velden in een unattend.xml antwoordbestand.

Zie Windows en ConfigMgr instellen voor meer informatie.

Zie ook