Feladatütemezési változók használata a Configuration Managerben
A következőre vonatkozik: Configuration Manager (aktuális ág)
A Configuration Manager operációsrendszer-telepítési funkciójának feladatütemezési motorja számos változót használ a viselkedésének szabályozásához. Ezeket a változókat a következőkre használhatja:
- Feltételek beállítása lépésekhez
- Adott lépések viselkedésének módosítása
- Használat szkriptekben összetettebb műveletekhez
Az összes elérhető feladatütemezési változóra vonatkozó referencia: Feladatütemezési változók.
Változótípusok
Többféle változótípus létezik:
Beépített változók
A beépített változók információt nyújtanak arról a környezetről, ahol a feladatütemezés fut. Az értékük a teljes feladatütemezésben elérhető. A feladatütemezési motor általában a lépések futtatása előtt inicializálja a beépített változókat.
A például egy környezeti változó, _SMSTSLogPath
amely meghatározza, hogy a Configuration Manager-összetevők milyen elérési utat írnak naplófájlok írásához. Bármely feladatütemezési lépés hozzáférhet ehhez a környezeti változóhoz.
A feladatütemezés minden lépés előtt kiértékel néhány változót. Például az _SMSTSCurrentActionName
aktuális lépés nevét listázza.
Műveleti változók
A feladatütemezési művelet változói olyan konfigurációs beállításokat határoznak meg, amelyeket egyetlen feladatütemezési lépés használ. Alapértelmezés szerint a lépés a futtatás előtt inicializálja a beállításait. Ezek a beállítások csak a kapcsolódó feladatütemezési lépés futtatásakor érhetők el. A feladatütemezés hozzáadja a műveleti változó értékét a környezethez a lépés futtatása előtt. Ezután eltávolítja az értéket a környezetből a lépés futtatása után.
Hozzáadhatja például a Parancssor futtatása lépést egy feladatütemezéshez. Ez a lépés tartalmaz egy Start In tulajdonságot. A feladatütemezés a tulajdonság alapértelmezett értékét tárolja változóként WorkingDirectory
. A feladatütemezés inicializálja ezt az értéket a Parancssor futtatása lépés futtatása előtt. Amíg ez a lépés fut, a Start In tulajdonság értékét az értékből érheti el WorkingDirectory
. A lépés befejezése után a feladatütemezés eltávolítja a WorkingDirectory
változó értékét a környezetből. Ha a feladatütemezés tartalmaz egy másik Parancssor futtatása lépést, inicializál egy új WorkingDirectory
változót. Ekkor a feladatütemezés az aktuális lépés kezdőértékére állítja be a változót. További információ: WorkingDirectory.
A műveletváltozó alapértelmezett értéke jelen van a lépés futtatásakor. Ha új értéket állít be, az a feladatütemezés több lépése számára is elérhető. Ha felülbírál egy alapértelmezett értéket, az új érték a környezetben marad. Ez az új érték felülírja a feladatütemezés többi lépésének alapértelmezett értékét. A Feladatütemezési változó beállítása lépés például a feladatütemezés első lépése. Ez a lépés a változót értékre WorkingDirectory
állítja C:\
. A feladatütemezésben a Parancssor futtatása lépés az új kezdőkönyvtár-értéket használja.
Egyes feladatütemezési lépések kimenetként jelölnek meg bizonyos műveletváltozókat. A feladatütemezés későbbi lépései beolvassák ezeket a kimeneti változókat.
Megjegyzés:
Nem minden feladatütemezési lépés rendelkezik műveleti változókkal. Bár például vannak változók társítva a BitLocker engedélyezése művelethez, a BitLocker letiltása művelethez nincs változó társítva.
Egyéni változók
Ezek a változók olyan változók, amelyeket a Configuration Manager nem hoz létre. Inicializálja a saját változóit, hogy feltételekként, parancssorokban vagy szkriptekben használják.
Amikor új feladatütemezési változó nevét adja meg, kövesse az alábbi irányelveket:
A feladatütemezési változó neve betűket, számokat, aláhúzásjelet (
_
) és kötőjelet (-
) tartalmazhat.A feladatütemezési változók nevei legalább egy karakterből és legfeljebb 256 karakterből állhatnak.
A felhasználó által definiált változóknak betűvel ( vagy
a-z
)A-Z
kell kezdődniük.A felhasználó által definiált változónevek nem kezdődhetnek aláhúzásjellel. Csak az írásvédett feladatütemezési változókat előzi meg az aláhúzásjel.
A feladatütemezési változók nevei nem különböztetik meg a kis- és nagybetűket. A és
osdvar
a példáulOSDVAR
ugyanaz a feladatütemezési változó.A feladatütemezési változók neve nem kezdődhet és nem végződhet szóközzel. Beágyazott szóközöket sem tartalmazhatnak. A feladatütemezés figyelmen kívül hagyja a változónév elején vagy végén található szóközöket.
Nincs korlátozva, hogy hány feladatütemezési változót hozhat létre. A változók számát azonban a feladatütemezési környezet mérete korlátozza. A feladatütemezési környezet teljes méretkorlátja 8 KB. További információ: A feladatütemezési szabályzat méretének csökkentése.
Írásvédett változók
Egyes, írásvédett változók értékét nem módosíthatja. A név általában aláhúzásjellel (_
) kezdődik. A feladatütemezés ezeket használja a műveleteihez. Az írásvédett változók a feladatütemezési környezetben láthatók.
Ezek a változók szkriptekben vagy parancssorokban hasznosak. Futtathat például egy parancssort, és a kimenetet egy naplófájlba _SMSTSLogPath
irányíthatja a többi naplófájllal.
Megjegyzés:
Az írásvédett feladatütemezési változók a feladatütemezés lépései alapján olvashatók, de nem állíthatók be. Használjon például egy írásvédett változót a parancssor részeként a Parancssor futtatása lépéshez. A Feladatütemezési változó beállítása lépéssel nem állíthat be írásvédett változót.
Tömbváltozók
A feladatütemezés tömbként tárol néhány változót. A tömb minden eleme egyetlen objektum beállításait jelöli. Ezeket a változókat akkor használja, ha egy eszköz több konfigurálható objektummal rendelkezik. A következő feladatütemezési lépések tömbváltozókat használnak:
Változók beállítása
A nem írásvédett egyéni változók vagy változók esetében több módszer is létezik a változó inicializálására és értékének beállítására:
- Feladatütemezési változó beállítása lépés
- Dinamikus változók beállítása lépés
- PowerShell-szkript futtatása lépés
- Gyűjtemény- és eszközváltozók
- TSEnvironment COM-objektum
- Indítás előtti parancs
- Feladatütemezési varázsló
- Feladatütemezési adathordozó varázsló
Töröljön egy változót a környezetből ugyanazokkal a metódusokkal, mint egy változó létrehozása. Változó törléséhez állítsa a változó értékét egy üres sztringre.
A metódusok kombinálásával a feladatütemezési változók ugyanazon sorozat különböző értékeire állíthatók be. Állítsa be például az alapértelmezett értékeket a feladatütemezési szerkesztővel, majd állítson be egyéni értékeket egy szkripttel.
Ha ugyanazt a változót különböző módszerekkel állítja be, a feladatütemezési motor a következő sorrendet használja:
Először a gyűjteményváltozókat értékeli ki.
Az eszközspecifikus változók felülbírálják ugyanazt a változókészletet egy gyűjteményen.
A feladatütemezés során bármely módszerrel beállított változók elsőbbséget élveznek a gyűjtemény- vagy eszközváltozókkal szemben.
A feladatütemezési változók értékeinek általános korlátozásai
A feladatütemezési változók értéke nem lehet hosszabb 4000 karakternél.
Írásvédett feladatütemezési változó nem módosítható. A csak olvasható változók neve aláhúzásjellel (
_
) kezdődik.A feladatütemezési változók értékei az érték használatától függően megkülönböztethetik a kis- és nagybetűket. A legtöbb esetben a feladatütemezési változók értékei nem különböztetik meg a kis- és nagybetűket. A jelszót tartalmazó változók megkülönböztetik a kis- és nagybetűk megkülönböztetésével.
Feladatütemezési változó beállítása
Ezzel a lépéssel egyetlen változót állíthat be egyetlen értékre a feladatütemezésben.
További információ: Feladatütemezési változó beállítása.
Dinamikus változók beállítása
Ezt a lépést a feladatütemezésben egy vagy több feladatütemezési változó beállításához használhatja. Ebben a lépésben szabályokat határozhat meg a használandó változók és értékek meghatározásához.
További információ: Dinamikus változók beállítása.
PowerShell-szkript futtatása
Ezzel a lépéssel a feladatütemezésben powershell-szkripttel állíthat be feladatütemezési változót.
Megadhat egy parancsfájlnevet egy csomagból, vagy közvetlenül beírhat egy PowerShell-szkriptet a lépésben. Ezután a Kimenet feladatütemezési változó lépés tulajdonságával mentse a szkript kimenetét egy egyéni feladatütemezési változóba.
További információ erről a lépésről: PowerShell-szkript futtatása.
Megjegyzés:
Egy PowerShell-szkripttel egy vagy több változót is beállíthat a TSEnvironment objektummal. További információ: Változók használata futó feladatütemezésben a Configuration Manager SDK-ban.
Példaforgatókönyv a PowerShell-szkript futtatása lépéssel
A környezetében több országban/régióban vannak felhasználók, ezért le szeretné kérdezni az operációs rendszer nyelvét, hogy több nyelvspecifikus operációsrendszer-alkalmazáslépés feltételeként legyen beállítva.
Adja hozzá a PowerShell-szkript futtatásának egy példányát a feladatütemezéshez az Operációs rendszer alkalmazása lépés előtt.
A Következő parancs megadásához használja a PowerShell-szkript megadása lehetőséget:
(Get-Culture).TwoLetterISOLanguageName
A parancsmaggal kapcsolatos további információkért lásd: Get-Culture. A kétbetűs ISO-nyelvek nevével kapcsolatos további információkért lásd: ISO 639-1-kódok listája.
A Kimenet feladatütemezési változóba beállításnál adja meg a következőt
CurrentOSLanguage
: .Az Operációs rendszer alkalmazása lépésben az angol nyelvű rendszerképhez hozza létre a következő feltételt:
Task Sequence Variable CurrentOSLanguage equals "en"
Tipp
A feltételek lépésenkénti létrehozásával kapcsolatos további információkért lásd: Változók elérése – Lépésfeltétel.
Mentse és helyezze üzembe a feladatütemezést.
Ha a PowerShell-szkript futtatása lépés a Windows angol nyelvű verziójával rendelkező eszközön fut, a parancs a értéket en
adja vissza. Ezután menti ezt az értéket az egyéni változóba. Amikor az Operációs rendszer alkalmazása lépés az angol nyelvű lemezképre ugyanazon az eszközön fut, a feltétel igaz értéket ad vissza. Ha az Operációs rendszer alkalmazása lépésnek több példánya van különböző nyelvekre, a feladatütemezés dinamikusan futtatja az operációs rendszer nyelvének megfelelő lépést.
Gyűjtemény- és eszközváltozók
Egyéni feladatütemezési változókat határozhat meg az eszközökhöz és gyűjteményekhez. Az eszközhöz definiált változókat eszközönkénti feladatütemezési változóknak nevezzük. A gyűjteményekhez definiált változókat gyűjteményenkénti feladatütemezési változóknak nevezzük. Ütközés esetén az eszközönkénti változók elsőbbséget élveznek a gyűjteményenkénti változókkal szemben. Ez a viselkedés azt jelenti, hogy az adott eszközhöz rendelt feladatütemezési változók automatikusan magasabb prioritással rendelkeznek, mint az eszközt tartalmazó gyűjteményhez rendelt változók.
Az XYZ eszköz például az ABC gyűjtemény tagja. A MyVariable értéket az ABC gyűjteményhez rendeli 1 értékkel. A MyVariable értéket is hozzárendeli az XYZ eszközhöz 2 értékkel. Az XYZ-hez rendelt változó prioritása magasabb, mint az ABC gyűjteményhez rendelt változóé. Ha egy ilyen változóval rendelkező feladatütemezés XYZ-n fut, a MyVariable értéke 2.
Elrejtheti az eszközönkénti és gyűjteményenkénti változókat, hogy azok ne legyenek láthatók a Configuration Manager-konzolon. Ha a Ne jelenítse meg ezt az értéket a Configuration Manager konzolon beállítást használja, a változó értéke nem jelenik meg a konzolon. A feladatütemezési naplófájl (smsts.log) vagy a feladatütemezési hibakereső sem jeleníti meg a változó értékét. A változót futtatáskor a feladatütemezés továbbra is használhatja. Ha már nem szeretné, hogy ezek a változók rejtve legyenek, először törölje őket. Ezután újradefiniálhatja a változókat anélkül, hogy bejelölné az elrejtésüket.
Figyelmeztetés
Ha változókat tartalmaz a Parancssor futtatása lépés parancssorában, a feladatütemezési naplófájlban megjelenik a teljes parancssor a változóértékekkel együtt. Ha meg szeretné akadályozni, hogy bizalmas adatok jelenjenek meg a naplófájlban, állítsa az OSDDoNotLogCommand feladatütemezési változót értékre TRUE
.
Az eszközönkénti változókat egy elsődleges helyen vagy egy központi adminisztrációs helyen kezelheti. A Configuration Manager egy eszközhöz legfeljebb 1000 hozzárendelt változót támogat.
Fontos
Ha gyűjteményenkénti változókat használ a feladatütemezésekhez, vegye figyelembe a következő viselkedéseket:
A gyűjtemények módosításait a rendszer mindig replikálja a teljes hierarchiában. A gyűjteményváltozókon végzett módosítások nem csak az aktuális webhely tagjaira vonatkoznak, hanem a gyűjtemény összes tagjára a hierarchiában.
Gyűjtemény törlésekor ez a művelet a gyűjteményhez konfigurált feladatütemezési változókat is törli.
Feladatütemezési változók létrehozása egy eszközhöz
A Configuration Manager konzolon lépjen az Eszközök és megfelelőség munkaterületre, és válassza az Eszközök csomópontot.
Válassza ki a céleszközt, és válassza a Tulajdonságok lehetőséget.
A Tulajdonságok párbeszédpanelen váltson a Változók lapra.
Minden létrehozni kívánt változónál válassza az Új ikont. Adja meg a feladatütemezési változó nevét és értékét . Ha el szeretné rejteni a változót, hogy az ne jelenjen meg a Configuration Manager konzolon, válassza a Ne jelenjen meg ez az érték a Configuration Manager konzolon lehetőséget.
Miután hozzáadta az összes változót az eszköztulajdonságokhoz, kattintson az OK gombra.
Feladatütemezési változók létrehozása gyűjteményhez
A Configuration Manager konzolon lépjen az Eszközök és megfelelőség munkaterületre, és válassza az Eszközgyűjtemények csomópontot. Válassza ki a célgyűjteményt, és válassza a Tulajdonságok lehetőséget.
A Tulajdonságok párbeszédpanelen váltson a Gyűjteményváltozók lapra.
Minden létrehozni kívánt változónál válassza az Új ikont. Adja meg a feladatütemezési változó nevét és értékét . Ha el szeretné rejteni a változót, hogy az ne jelenjen meg a Configuration Manager konzolon, válassza a Ne jelenjen meg ez az érték a Configuration Manager konzolon lehetőséget.
Igény szerint megadhatja a Configuration Manager prioritását a feladatütemezési változók kiértékelésekor.
Miután hozzáadta az összes változót a gyűjtemény tulajdonságaihoz, kattintson az OK gombra.
TSEnvironment COM-objektum
Ha egy szkript változóival szeretne dolgozni, használja a TSEnvironment objektumot.
További információ: Változók használata futó feladatütemezésben a Configuration Manager SDK-ban.
Indítás előtti parancs
Az indítás előtti parancs egy parancsfájl vagy végrehajtható fájl, amely a Windows PE környezetben fut, mielőtt a felhasználó kiválasztja a feladatütemezést. Az indítás előtti parancs lekérdezhet egy változót, vagy információt kér a felhasználótól, majd mentheti azt a környezetben. Használja a TSEnvironment COM objektumot változók olvasásához és írásához az indítás előtti parancsból.
További információ: Indítás előtti parancsok feladatütemezési adathordozóhoz.
Feladatütemezési varázsló
Miután kiválasztott egy feladatütemezést a Feladatütemezés varázsló ablakában, a feladatütemezési változók szerkesztésére használt lap tartalmaz egy Szerkesztés gombot. A változók szerkesztéséhez akadálymentes billentyűparancsokat használhat. Ez a módosítás segít azokban az esetekben, amikor az egér nem érhető el.
Feladatütemezési adathordozó varázsló
Adja meg az adathordozóról futó feladatütemezések változóit. Amikor adathordozót használ az operációs rendszer üzembe helyezéséhez, a feladatütemezési változókat hozzáadja, és az adathordozó létrehozásakor megadhatja azok értékeit. A változók és azok értékei az adathordozón vannak tárolva.
Megjegyzés:
A feladatütemezések különálló adathordozón vannak tárolva. Azonban minden más típusú adathordozó, például az előkészített adathordozó lekéri a feladatütemezést egy felügyeleti pontról.
Amikor adathordozóról futtat egy feladatütemezést, hozzáadhat egy változót a varázsló Testreszabás lapján.
Használja a médiaváltozókat gyűjteményenként vagy számítógépenként változók helyett. Ha a feladatütemezés adathordozóról fut, a számítógépenkénti és gyűjteményenkénti változók nem érvényesek, és nem lesznek használatban.
Tipp
A feladatütemezés beírja a csomagazonosítót és az indítás előtti parancssort a Configuration Manager-konzolt futtató számítógép CreateTSMedia.log fájljába. Ez a naplófájl tartalmazza a feladatütemezési változók értékét. Tekintse át ezt a naplófájlt a feladatütemezési változók értékének ellenőrzéséhez.
További információ: Feladatütemezési adathordozó létrehozása.
Változók elérése
Miután meghatározta a változót és annak értékét az előző szakasz egyik metódusával, használja azt a feladatütemezésekben. Hozzáférhet például a beépített feladatütemezési változók alapértelmezett értékeihez, vagy feltételessé tehet egy lépést egy változó értékétől.
A következő módszerekkel érheti el a változóértékeket a feladatütemezési környezetben:
Használat lépésben
Adjon meg egy változóértéket egy feladatütemezési lépésben megadott beállításhoz. A feladatütemezési szerkesztőben szerkessze a lépést, és adja meg a változó nevét mezőértékként. Foglalja a változó nevét százalékjelek közé (%
).
Használja például a változó nevét a Parancssor futtatása lépés Parancssor mezőjének részeként. A következő parancssor írja a számítógép nevét egy szövegfájlba.
cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt
Lépésfeltétel
Egy lépés vagy csoport feltételének részeként használjon beépített vagy egyéni feladatütemezési változókat. A feladatütemezés kiértékeli a változó értékét, mielőtt futtatja a lépést vagy csoportot.
Változóértékeket kiértékelő feltétel hozzáadásához hajtsa végre az alábbi lépéseket:
A feladatütemezési szerkesztőben válassza ki azt a lépést vagy csoportot, amelyhez hozzá szeretné adni a feltételt.
Váltson a lépés vagy csoport Beállítások lapjára. Kattintson a Feltétel hozzáadása elemre, és válassza a Feladatütemezési változó lehetőséget.
A Feladatütemezési változó párbeszédpanelen adja meg a következő beállításokat:
Változó: A változó neve. Használja például a
_SMSTSInWinPE
címet.Feltétel: A változó értékének kiértékelésére vonatkozó feltétel. A következő feltételek érhetők el:
- Létezik
- Nem létezik
- Egyenlő
- Nem egyenlő
- Nagyobb, mint
- Nagyobb vagy egyenlő
- Kisebb, mint
- Kisebb vagy egyenlő
- Like (támogatja a és
?
a helyettesítő karaktereit*
) - Nem tetszik (2103-es vagy újabb verzió)
Érték: Az ellenőrizendő változó értéke. Használja például a
false
címet.
A fenti három példa gyakori feltételt képez annak teszteléséhez, hogy a feladatütemezés windowsos PE rendszerindító lemezképből fut-e:
Feladatütemezési változó
_SMSTSInWinPE equals "false"
Egy meglévő operációsrendszer-lemezkép telepítéséhez tekintse meg ezt a feltételt az alapértelmezett feladatütemezési sablon Fájlok és beállítások rögzítése csoportjában.
További információ a feltételekről: Feladatütemezés-szerkesztő – Feltételek.
Egyéni szkript
Változók olvasása és írása a Microsoft.SMS.TSEnvironment COM objektum használatával, miközben a feladatütemezés fut.
Az alábbi Windows PowerShell-példa lekérdezi a _SMSTSLogPath változót az aktuális naplóhely lekéréséhez. A szkript egyéni változót is beállít.
# 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"
A Windows telepítési válaszfájlja
A windowsos telepítési válaszfájl beágyazott feladatütemezési változókkal rendelkezhet. Használja az űrlapot %varname%
, ahol a varname a változó neve. A Windows és a ConfigMgr beállítása lépés lecseréli a változó tényleges értékének változónév-sztringjét. Ezek a beágyazott feladatütemezési változók nem használhatók csak numerikus mezőkben egy unattend.xml válaszfájlban.
További információ: A Windows és a ConfigMgr beállítása.