Configuration Manager'da görev dizisi değişkenlerini kullanma

Uygulama hedefi: Configuration Manager (güncel dalı)

Configuration Manager işletim sistemi dağıtım özelliğindeki görev dizisi altyapısı, davranışlarını denetlemek için birçok değişken kullanır. Şu değişkenleri kullanarak:

  • Adımlarda koşulları ayarlama
  • Belirli adımlar için davranışları değiştirme
  • Daha karmaşık eylemler için betiklerde kullanma

Kullanılabilir tüm görev dizisi değişkenlerine başvuru için bkz . Görev dizisi değişkenleri.

Değişken türleri

Çeşitli değişken türleri vardır:

Yerleşik değişkenler

Yerleşik değişkenler, görev dizisinin çalıştığı ortam hakkında bilgi sağlar. Değerleri tüm görev dizisi boyunca kullanılabilir. Genellikle, görev dizisi altyapısı herhangi bir adım çalıştırmadan önce yerleşik değişkenleri başlatır.

Örneğin, _SMSTSLogPath Configuration Manager bileşenlerinin günlük dosyalarını yazdığı yolu belirten bir ortam değişkenidir. Herhangi bir görev dizisi adımı bu ortam değişkenine erişebilir.

Görev dizisi, her adımdan önce bazı değişkenleri değerlendirir. Örneğin, _SMSTSCurrentActionName geçerli adımın adını listeler.

Eylem değişkenleri

Görev dizisi eylem değişkenleri, tek bir görev dizisi adımının kullandığı yapılandırma ayarlarını belirtir. Varsayılan olarak, adım çalışmadan önce ayarlarını başlatır. Bu ayarlar yalnızca ilişkili görev dizisi adımı çalışırken kullanılabilir. Görev dizisi, adımı çalıştırmadan önce eylem değişkeni değerini ortama ekler. Ardından, adım çalıştırıldıktan sonra değeri ortamdan kaldırır.

Örneğin, Komut Satırını Çalıştır adımını bir görev dizisine eklersiniz. Bu adım bir Start In özelliği içerir. Görev dizisi, bu özellik için varsayılan değeri değişken olarak WorkingDirectory depolar. Görev dizisi, Komut Satırını Çalıştır adımını çalıştırmadan önce bu değeri başlatır. Bu adım çalışırken, değerinden Start In özellik değerine erişin WorkingDirectory . Adım tamamlandıktan sonra görev dizisi değişkenin WorkingDirectory değerini ortamdan kaldırır. Görev dizisi başka bir Komut Satırı Çalıştır adımı içeriyorsa, yeni WorkingDirectory bir değişken başlatır. Bu sırada, görev dizisi değişkeni geçerli adım için başlangıç değerine ayarlar. Daha fazla bilgi için bkz . WorkingDirectory.

Adım çalıştırıldığında eylem değişkeni için varsayılan değer bulunur. Yeni bir değer ayarlarsanız, görev dizisindeki birden çok adımda kullanılabilir. Varsayılan bir değeri geçersiz kılarsanız, yeni değer ortamda kalır. Bu yeni değer, görev dizisindeki diğer adımlar için varsayılan değeri geçersiz kılar. Örneğin, görev dizisinin ilk adımı olarak bir Görev Dizisi Değişkeni Ayarla adımı eklersiniz. Bu adım değişkenini WorkingDirectory olarak C:\ayarlar. Görev dizisindeki herhangi bir Komut Satırını Çalıştır adımı yeni başlangıç dizini değerini kullanır.

Bazı görev dizisi adımları bazı eylem değişkenlerini çıkış olarak işaretler. Görev dizisinin sonraki adımlarında bu çıkış değişkenlerini okuyun.

Not

Tüm görev dizisi adımlarında eylem değişkenleri yoktur. Örneğin, BitLocker'ı Etkinleştir eylemiyle ilişkilendirilmiş değişkenler olsa da, BitLocker'ı Devre Dışı Bırak eylemiyle ilişkilendirilmiş değişken yoktur.

Özel değişkenler

Bu değişkenler, Configuration Manager oluşturmadığı değişkenlerdir. Koşul olarak, komut satırlarında veya betiklerde kullanmak için kendi değişkenlerinizi başlatın.

Yeni bir görev dizisi değişkeni için bir ad belirttiğinizde şu yönergeleri izleyin:

  • Görev dizisi değişkeni adı harf, sayı, alt çizgi karakteri (_) ve kısa çizgi (-) içerebilir.

  • Görev dizisi değişken adları en az bir karakter uzunluğunda ve en fazla 256 karakter uzunluğundadır.

  • Kullanıcı tanımlı değişkenler bir harfle (A-Z veya a-z) başlamalıdır.

  • Kullanıcı tanımlı değişken adları alt çizgi karakteriyle başlayamaz. Yalnızca salt okunur görev dizisi değişkenleri, alt çizgi karakterinden öncedir.

  • Görev dizisi değişken adları büyük/küçük harfe duyarlı değildir. Örneğin ve OSDVARosdvar aynı görev dizisi değişkenidir.

  • Görev dizisi değişken adları boşlukla başlayamaz veya bitemez. Ekli alanlar da olamaz. Görev dizisi, değişken adının başında veya sonundaki boşlukları yoksayar.

Oluşturabileceğiniz görev dizisi değişkenlerinin sınırı yoktur. Ancak, değişken sayısı görev dizisi ortamının boyutuyla sınırlıdır. Görev dizisi ortamı için toplam boyut sınırı 8 KB'tır. Daha fazla bilgi için bkz. Görev dizisi ilkesinin boyutunu küçültme.

Salt okunur değişkenler

Salt okunur olan bazı değişkenlerin değerini değiştiremezsiniz. Genellikle ad bir alt çizgi karakteriyle (_) başlar. Görev dizisi bunları işlemleri için kullanır. Salt okunur değişkenler görev dizisi ortamında görünür.

Bu değişkenler betiklerde veya komut satırlarında kullanışlıdır. Örneğin, bir komut satırı çalıştırmak ve çıkışı diğer günlük dosyalarıyla birlikte bir günlük dosyasına _SMSTSLogPath göndermek.

Not

Salt okunur görev dizisi değişkenleri bir görev dizisindeki adımlarla okunabilir ancak ayarlanamaz. Örneğin, Komut Satırını Çalıştır adımı için komut satırının parçası olarak salt okunur bir değişken kullanın. Görev Dizisi Değişkenini Ayarla adımını kullanarak salt okunur değişken ayarlayamazsınız.

Dizi değişkenleri

Görev dizisi bazı değişkenleri dizi olarak depolar. Dizideki her öğe, tek bir nesnenin ayarlarını temsil eder. Bir cihazın yapılandıracak birden fazla nesnesi olduğunda bu değişkenleri kullanın. Aşağıdaki görev dizisi adımları dizi değişkenlerini kullanır:

Değişkenleri ayarlama

Salt okunur olmayan özel değişkenler veya değişkenler için değişkenin değerini başlatmak ve ayarlamak için birkaç yöntem vardır:

Değişken oluşturma ile aynı yöntemleri kullanarak bir değişkeni ortamdan silin. Bir değişkeni silmek için değişken değerini boş bir dize olarak ayarlayın.

Bir görev dizisi değişkenini aynı sıra için farklı değerlere ayarlamak için yöntemleri birleştirebilirsiniz. Örneğin, görev dizisi düzenleyicisini kullanarak varsayılan değerleri ayarlayın ve ardından bir betik kullanarak özel değerler ayarlayın.

Aynı değişkeni farklı yöntemlerle ayarlarsanız, görev dizisi altyapısı aşağıdaki sırayı kullanır:

  1. Önce koleksiyon değişkenlerini değerlendirir.

  2. Cihaza özgü değişkenler bir koleksiyonda aynı değişken kümesini geçersiz kılar.

  3. Görev dizisi sırasında herhangi bir yöntemle ayarlanan değişkenler koleksiyon veya cihaz değişkenlerinden önceliklidir.

Görev dizisi değişken değerleri için genel sınırlamalar

  • Görev dizisi değişken değerleri 4.000 karakterden fazla olamaz.

  • Salt okunur görev dizisi değişkenini değiştiremezsiniz. Salt okunur değişkenlerin alt çizgi karakteriyle (_ ) başlayan adları vardır.

  • Görev dizisi değişkeni değerleri, değerin kullanımına bağlı olarak büyük/küçük harfe duyarlı olabilir. Çoğu durumda, görev dizisi değişken değerleri büyük/küçük harfe duyarlı değildir. Parola içeren bir değişken büyük/küçük harfe duyarlıdır.

Görev Dizisi Değişkenini Ayarla

Tek bir değişkeni tek bir değere ayarlamak için görev dizisindeki bu adımı kullanın.

Daha fazla bilgi için bkz. Görev Dizisi Değişkenini Ayarlama.

Dinamik Değişkenleri Ayarlama

Bir veya daha fazla görev dizisi değişkeni ayarlamak için görev dizisindeki bu adımı kullanın. Hangi değişkenlerin ve değerlerin kullanılacağını belirlemek için bu adımda kurallar tanımlarsınız.

Daha fazla bilgi için bkz. Dinamik Değişkenleri Ayarlama.

PowerShell Betiğini Çalıştırma

Görev dizisi değişkeni ayarlamak için PowerShell betiğini kullanmak için görev dizisindeki bu adımı kullanın.

Paketten bir betik adı belirtebilir veya adıma doğrudan bir PowerShell betiği girebilirsiniz. Ardından betik çıkışını özel bir görev dizisi değişkenine kaydetmek için Step özelliğini kullanarak Görev dizisi değişkenine çıkış yapın.

Bu adım hakkında daha fazla bilgi için bkz. PowerShell Betiğini Çalıştırma.

Not

TSEnvironment nesnesiyle bir veya daha fazla değişken ayarlamak için bir PowerShell betiği de kullanabilirsiniz. Daha fazla bilgi için bkz. Configuration Manager SDK'sında çalışan bir görev dizisinde değişkenleri kullanma.

PowerShell Betiği Çalıştırma adımıyla örnek senaryo

Ortamınızda birden çok ülkede/bölgede kullanıcı olduğundan, işletim sistemi dilini, dile özgü birden çok işletim sistemi uygulama adımında koşul olarak ayarlamak üzere sorgulamak istiyorsunuz.

  1. İşletim sistemi uygulama adımlarından önce görev dizisine PowerShell Betiğini Çalıştır örneğini ekleyin.

  2. Aşağıdaki komutu belirtmek için PowerShell betiği girme seçeneğini kullanın:

    (Get-Culture).TwoLetterISOLanguageName
    

    Cmdlet hakkında daha fazla bilgi için bkz. Get-Culture. İki harfli ISO dil adları hakkında daha fazla bilgi için bkz. ISO 639-1 kodları listesi.

  3. Görev dizisi değişkenine çıkış seçeneği için belirtinCurrentOSLanguage.

    PowerShell Betiğini Çalıştır adımı örneğinin ekran görüntüsü

  4. İngilizce dil görüntüsü için işletim sistemini uygula adımında aşağıdaki koşulu oluşturun: Task Sequence Variable CurrentOSLanguage equals "en"

    İşletim sistemi uygulama adımındaki örnek koşulun ekran görüntüsü

    İpucu

    Bir adımda koşul oluşturma hakkında daha fazla bilgi için bkz. Değişkenlere erişme - Adım koşulu.

  5. Görev dizisini kaydedin ve dağıtın.

PowerShell Betiğini Çalıştır adımı Windows'un İngilizce sürümüne sahip bir cihazda çalıştırıldığında, komutu değerini endöndürür. Ardından bu değeri özel değişkene kaydeder. İngilizce dil görüntüsü için işletim sistemini uygula adımı aynı cihazda çalıştırıldığında koşul true olarak değerlendirilir. Farklı diller için işletim sistemini uygula adımının birden çok örneğine sahipseniz, görev dizisi işletim sistemi diliyle eşleşen adımı dinamik olarak çalıştırır.

Koleksiyon ve cihaz değişkenleri

Cihazlar ve koleksiyonlar için özel görev dizisi değişkenleri tanımlayabilirsiniz. Bir cihaz için tanımladığınız değişkenler, cihaz başına görev dizisi değişkenleri olarak adlandırılır. Bir koleksiyon için tanımlanan değişkenler koleksiyon başına görev dizisi değişkenleri olarak adlandırılır. Bir çakışma varsa, cihaz başına değişkenler koleksiyon başına değişkenlerden önceliklidir. Bu davranış, belirli bir cihaza atanan görev dizisi değişkenlerinin otomatik olarak cihazı içeren koleksiyona atanan değişkenlerden daha yüksek önceliğe sahip olduğu anlamına gelir.

Örneğin, XYZ cihazı ABC koleksiyonunun bir üyesidir. MyVariable'ı ABC koleksiyonuna 1 değeriyle atarsınız. Ayrıca MyVariable'ı XYZ cihazına 2 değeriyle atarsınız. XYZ'ye atanan değişken, ABC koleksiyonuna atanan değişkenden daha yüksek önceliğe sahiptir. Bu değişkene sahip bir görev dizisi XYZ üzerinde çalıştırıldığında, MyVariable değeri 2 olur.

Configuration Manager konsolunda görünmemeleri için cihaz başına ve koleksiyon başına değişkenleri gizleyebilirsiniz. Bu değeri Configuration Manager konsolunda görüntüleme seçeneğini kullandığınızda, değişkenin değeri konsolda görüntülenmez. Görev dizisi günlük dosyası (smsts.log) veya görev dizisi hata ayıklayıcısı değişken değerini de göstermez. Değişken, çalıştırıldığında görev dizisi tarafından kullanılmaya devam edebilir. Bu değişkenlerin artık gizlenmesini istemiyorsanız, önce bunları silin. Ardından, değişkenleri gizleme seçeneğini belirtmeden yeniden tanımlayın.

Uyarı

Komut Satırını Çalıştır adımının komut satırına değişkenleri eklerseniz, görev dizisi günlük dosyası değişken değerlerini içeren tam komut satırını görüntüler. Olası hassas verilerin günlük dosyasında görünmesini önlemek için , OSDDoNotLogCommand görev dizisi değişkenini olarak TRUEayarlayın.

Cihaz başına değişkenleri birincil sitede veya merkezi yönetim sitesinde yönetebilirsiniz. Configuration Manager, bir cihaz için 1.000'den fazla atanmış değişkeni desteklemez.

Önemli

Görev dizileri için koleksiyon başına değişkenleri kullandığınızda aşağıdaki davranışları göz önünde bulundurun:

  • Koleksiyonlarda yapılan değişiklikler her zaman hiyerarşi boyunca çoğaltılır. Koleksiyon değişkenlerinde yaptığınız tüm değişiklikler yalnızca geçerli sitenin üyelerine değil, hiyerarşideki koleksiyonun tüm üyelerine de uygulanır.

  • Bir koleksiyonu sildiğinizde, bu eylem koleksiyon için yapılandırdığınız görev dizisi değişkenlerini de siler.

Bir cihaz için görev dizisi değişkenleri oluşturma

  1. Configuration Manager konsolunda Varlıklar ve Uyumluluk çalışma alanına gidin ve Cihazlar düğümünü seçin.

  2. Hedef cihazı seçin ve Özellikler'i seçin.

  3. Özellikler iletişim kutusunda Değişkenler sekmesine geçin.

  4. Oluşturmak istediğiniz her değişken için Yeni simgesini seçin. Görev dizisi değişkeninin Adını ve Değerini belirtin. değişkenin Configuration Manager konsolunda görünmemesi için değişkeni gizlemek istiyorsanız Bu değeri Configuration Manager konsolunda görüntüleme seçeneğini belirleyin.

  5. Tüm değişkenleri cihaz özelliklerine ekledikten sonra Tamam'ı seçin.

Koleksiyon için görev dizisi değişkenleri oluşturma

  1. Configuration Manager konsolunda Varlıklar ve Uyumluluk çalışma alanına gidin ve Cihaz Koleksiyonları düğümünü seçin. Hedef koleksiyonu seçin ve Özellikler'i seçin.

  2. Özellikler iletişim kutusunda Koleksiyon Değişkenleri sekmesine geçin.

  3. Oluşturmak istediğiniz her değişken için Yeni simgesini seçin. Görev dizisi değişkeninin Adını ve Değerini belirtin. değişkenin Configuration Manager konsolunda görünmemesi için değişkeni gizlemek istiyorsanız Bu değeri Configuration Manager konsolunda görüntüleme seçeneğini belirleyin.

  4. İsteğe bağlı olarak, görev dizisi değişkenleri değerlendirilirken kullanılacak Configuration Manager önceliğini belirtin.

  5. Tüm değişkenleri koleksiyon özelliklerine ekledikten sonra Tamam'ı seçin.

TSEnvironment COM nesnesi

Betikten değişkenlerle çalışmak için TSEnvironment nesnesini kullanın.

Daha fazla bilgi için bkz. Configuration Manager SDK'sında çalışan bir görev dizisinde değişkenleri kullanma.

Başlatma öncesi komutu

Başlangıç öncesi komutu, kullanıcı görev dizisini seçmeden önce Windows PE'de çalışan bir betik veya yürütülebilir dosyadır. Başlangıç öncesi komutu bir değişkeni sorgulayabilir veya kullanıcıdan bilgi isteyebilir ve ardından bunu ortama kaydedebilir. Başlangıç öncesi komutundan değişkenleri okumak ve yazmak için TSEnvironment COM nesnesini kullanın.

Daha fazla bilgi için bkz. Görev dizisi medyası için başlatma öncesi komutları.

Görev Dizisi Sihirbazı

Görev Dizisi Sihirbazı penceresinde bir görev dizisi seçtikten sonra, görev dizisi değişkenlerini düzenleme sayfası bir Düzenle düğmesi içerir. Değişkenleri düzenlemek için erişilebilir klavye kısayollarını kullanabilirsiniz. Bu değişiklik, farenin kullanılamadığı durumlarda yardımcı olur.

Görev Dizisi Medya Sihirbazı

Medyadan çalıştırılacak görev dizileri için değişkenleri belirtin. İşletim sistemini dağıtmak için medya kullanırken, görev dizisi değişkenlerini ekler ve medyayı oluştururken bunların değerlerini belirtirsiniz. Değişkenler ve değerleri medyada depolanır.

Not

Görev dizileri tek başına medyada depolanır. Ancak, önceden hazırlanmış medya gibi diğer tüm medya türleri, görev dizisini bir yönetim noktasından alır.

Medyadan bir görev dizisi çalıştırdığınızda, sihirbazın Özelleştirme sayfasına bir değişken ekleyebilirsiniz.

Koleksiyon başına veya bilgisayar başına değişkenlerin yerine medya değişkenlerini kullanın. Görev dizisi medyadan çalışıyorsa, bilgisayar başına ve koleksiyon başına değişkenler uygulanmaz ve kullanılmaz.

İpucu

Görev dizisi, paket kimliğini ve başlatma öncesi komut satırını Configuration Manager konsolunu çalıştıran bilgisayardaki CreateTSMedia.log dosyasına yazar. Bu günlük dosyası, herhangi bir görev dizisi değişkeninin değerini içerir. Görev dizisi değişkenlerinin değerini doğrulamak için bu günlük dosyasını gözden geçirin.

Daha fazla bilgi için bkz. Görev dizisi medyası oluşturma.

Değişkenlere erişme

Değişkeni ve değerini, önceki bölümdeki yöntemlerden birini kullanarak belirttikten sonra, görev dizilerinizde kullanın. Örneğin, yerleşik görev dizisi değişkenleri için varsayılan değerlere erişin veya bir değişkenin değeri üzerinde bir adım koşullu hale getirin.

Görev dizisi ortamındaki değişken değerlerine erişmek için aşağıdaki yöntemleri kullanın:

Bir adımda kullanma

Görev dizisi adımındaki bir ayar için değişken değeri belirtin. Görev dizisi düzenleyicisinde adımı düzenleyin ve alan değeri olarak değişken adını belirtin. Değişken adını yüzde işaretleri (%) içine alın.

Örneğin, Komut Satırını Çalıştır adımının Komut Satırı alanının bir parçası olarak değişken adını kullanın. Aşağıdaki komut satırı bilgisayar adını bir metin dosyasına yazar.

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

Adım koşulu

Bir adım veya gruptaki bir koşulun parçası olarak yerleşik veya özel görev dizisi değişkenlerini kullanın. Görev dizisi, değişken değerini adımı veya grubu çalıştırmadan önce değerlendirir.

Değişken değerini değerlendiren bir koşul eklemek için aşağıdaki adımları uygulayın:

  1. Görev dizisi düzenleyicisinde, koşulu eklemek istediğiniz adımı veya grubu seçin.

  2. Adım veya grup için Seçenekler sekmesine geçin. Koşul Ekle'ye tıklayın ve Görev Dizisi Değişkeni'ne tıklayın.

  3. Görev Dizisi Değişkeni iletişim kutusunda aşağıdaki ayarları belirtin:

    • Değişken: Değişkenin adı. Örneğin, _SMSTSInWinPE.

    • Koşul: Değişken değerini değerlendirme koşulu. Aşağıdaki koşullar kullanılabilir:

      • Var
      • Yok
      • Eşit -tir
      • Eşit değil
      • Büyüktür
      • Büyüktür veya eşittir
      • Küçüktür
      • Küçüktür veya eşittir
      • Like (ve ?joker karakterlerini * destekler)
      • Benzer değil (sürüm 2103 veya üzeri)
    • Değer: Denetlenecek değişkenin değeri. Örneğin, false.

Yukarıdaki üç örnek, görev dizisinin Windows PE'deki bir önyükleme görüntüsünden çalışıp çalışmadığını test etmek için ortak bir koşul oluşturur:

Görev Dizisi Değişkeni_SMSTSInWinPE equals "false"

Var olan bir işletim sistemi görüntüsünü yüklemek için varsayılan görev dizisi şablonunun Yakalama Dosyaları ve Ayarlar grubunda bu koşula bakın.

Koşullar hakkında daha fazla bilgi için bkz . Görev dizisi düzenleyicisi - Koşullar.

Özel betik

Microsoft.SMS kullanarak değişkenleri okuyun ve yazın. Görev dizisi çalışırken TSEnvironment COM nesnesi.

Aşağıdaki Windows PowerShell örnek, geçerli günlük konumunu almak için _SMSTSLogPath değişkenini sorgular. Betik ayrıca özel bir değişken ayarlar.

# 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 kurulumu yanıt dosyası

Sağladığınız Windows kurulum yanıt dosyasında eklenmiş görev dizisi değişkenleri olabilir. biçimini %varname%kullanın. Burada varname değişkenin adıdır. Windows ve ConfigMgr Kurulumu adımı, gerçek değişken değeri için değişken adı dizesinin yerini alır. Bu eklenmiş görev dizisi değişkenleri, unattend.xml yanıt dosyasındaki yalnızca sayısal alanlarda kullanılamaz.

Daha fazla bilgi için bkz . Windows ve ConfigMgr'yi ayarlama.

Ayrıca bkz.