Windows PowerShell Modülünü Anlama

modül , uygun bir birim (genellikle tek bir dizinde kaydedilir) olarak gruplanmış bir ilgili Windows PowerShell işlevleri kümesidir. Bir dizi ilgili betik dosyası, derleme ve ilgili kaynakları bir modül olarak tanımlayarak, kodunuzu daha kolay bir şekilde başvurabilir, yükleyebilir, kalıcı hale getirebilirsiniz ve daha kolay bir şekilde paylaşabilirsiniz.

bir modülün ana amacı, Windows PowerShell kodun modüle (ıe, yeniden kullanımı ve soyutlama) izin vermenizdir. örneğin, bir modül oluşturmanın en temel yolu bir Windows PowerShell betiğini. psm1 dosyası olarak kaydetmaktır. Bunun yapılması, betikte bulunan işlevleri ve değişkenleri denetlemenizi (IE, genel veya özel hale getirme) sağlar. Betiği bir. psm1 dosyası olarak kaydetmek, belirli değişkenlerin kapsamını denetlemenize de olanak tanır. Son olarak, komut dosyanızı daha büyük çözümler için yapı taşları olarak düzenlemek, yüklemek ve kullanmak üzere Install-Module gibi cmdlet 'leri de kullanabilirsiniz.

Modül bileşenleri ve türleri

Modül dört temel bileşenden oluşur:

  1. Kod dosyası bir sıralama-genellikle bir PowerShell betiği veya yönetilen bir cmdlet bütünleştirilmiş kodu.

  2. Yukarıdaki kod dosyasına ek derlemeler, yardım dosyaları veya komut dosyaları gibi, başka her şeyi de gerektirebilir.

  3. Yukarıdaki dosyaları açıklayan ve yazar ve sürüm bilgileri gibi meta verileri depolayan bir bildirim dosyası.

  4. Yukarıdaki içeriğin tümünü içeren ve PowerShell 'in makul bir şekilde bulabileceği bir dizin.

    Not

    Bu bileşenlerden hiçbiri gerçekte gerekli değildir. Örneğin, bir modül Teknik olarak yalnızca bir. psm1 dosyasında depolanan bir betik olabilir. Genellikle kurumsal amaçlar için kullanılan bir bildirim dosyası olan hiçbir şey olmayan bir modüle da sahip olabilirsiniz. Ayrıca, dinamik olarak bir modülün oluşturduğu bir komut dosyası yazabilirsiniz ve bu nedenle, aslında içinde herhangi bir şeyi depolamak için bir dizine ihtiyaç kalmaz. Aşağıdaki bölümlerde, bir modülün farklı olası parçalarını karıştırarak ve eşleştirerek alabileceğiniz modül türleri açıklanır.

Betik modülleri

adından da anlaşılacağı gibi, bir komut dosyası modülü .psm1 geçerli Windows PowerShell kod içeren bir dosyadır (). Betik geliştiricileri ve Yöneticiler, üyeleri işlevleri, değişkenleri ve daha fazlasını içeren modüller oluşturmak için bu modül türünü kullanabilir. bir komut dosyası modülü, farklı bir uzantıya sahip Windows PowerShell bir betiktir ve bu sayede yöneticiler üzerinde içeri aktarma, dışarı aktarma ve yönetim işlevlerini kullanabilir.

Ayrıca, modüldeki veri dosyaları, diğer bağımlı modüller veya çalışma zamanı betikleri gibi diğer kaynakları dahil etmek için bir bildirim dosyası kullanabilirsiniz. Bildirim dosyaları, yazma ve sürüm oluşturma bilgileri gibi meta verileri izlemek için de kullanışlıdır.

Son olarak, dinamik olarak oluşturulmayan diğer tüm modüller gibi bir betik modülünün, PowerShell 'in makul bir şekilde bulabildiği bir klasöre kaydedilmesi gerekir. Genellikle bu, PowerShell modülünün yoludur; Ancak gerekirse modülünüzün yüklendiği yeri açıkça tanımlayabilirsiniz. Daha fazla bilgi için bkz. PowerShell betik modülü yazma.

İkili modüller

ikili modül , .dll C# gibi derlenmiş kod içeren bir .NET Framework derlemesidir (). Cmdlet geliştiricileri cmdlet 'leri, sağlayıcıları ve daha fazlasını paylaşmak için bu modül türünü kullanabilir. (Mevcut ek bileşenler, ikili modüller olarak da kullanılabilir.) bir komut dosyası modülüyle karşılaştırıldığında, ikili bir modül daha hızlı olan veya Windows PowerShell betiklerdeki kodun kolay olmayan özelliklerini (çoklu iş parçacıklı) kullanmanıza olanak tanır.

Betik modüllerinde olduğu gibi, modülünüzün kullandığı ek kaynakları ve modülünüz hakkındaki meta verileri izlemek için bir bildirim dosyası ekleyebilirsiniz. Benzer şekilde, ikili modülünüzü PowerShell modülü yolu üzerinde bir yere yüklemelisiniz. Daha fazla bilgi için bkz. PowerShell Ikili modülü nasıl yazılır.

Bildirim modülleri

Bildirim modülü , tüm bileşenlerini anlatmak için bir bildirim dosyası kullanan bir modüldür, ancak herhangi bir çekirdek derleme veya betik sıralaması yoktur. (Resmi olarak, bildirim modülü ModuleToProcess RootModule bildirimin veya öğesinin öğesini boş bırakır.) Ancak, bağımlı derlemeleri yükleme veya belirli ön işleme betiklerini otomatik olarak çalıştırma gibi bir modülün diğer özelliklerini kullanmaya devam edebilirsiniz. Bildirim modülünü, iç içe geçmiş modüller, derlemeler, türler veya biçimler gibi diğer modüllerin kullanacağı kaynakları paketlemek için kullanışlı bir yol olarak da kullanabilirsiniz. Daha fazla bilgi için bkz. PowerShell modülü bildirimi yazma.

Dinamik modüller

Dinamik modül bir dosya üzerinden yüklenmeyen veya ' a kaydedilmiş bir modüldür. Bunun yerine, New-Module cmdlet 'i kullanılarak bir komut dosyası tarafından dinamik olarak oluşturulur. Bu tür bir modül, bir betiğin, istek üzerine yüklenmesi veya kalıcı depolamaya kaydedilmesi gerekmeyen bir modül oluşturmasını sağlar. Doğası gereği, dinamik bir modülün kısa süreli olması amaçlanmıştır ve bu nedenle Get-Module cmdlet 'i tarafından erişilemez. Benzer şekilde, genellikle modül bildirimlerine gerek kalmaz veya ilgili derlemelerini depolamak için büyük olasılıkla kalıcı klasörlere ihtiyacı yoktur.

Modül bildirimleri

Modül bildirimi , .psd1 karma tablo içeren bir dosyadır. Karma tablodaki anahtarlar ve değerler aşağıdaki işlemleri yapar:

  • Modülün içeriğini ve özniteliklerini açıkla.

  • Önkoşulları tanımlayın.

  • Bileşenlerin nasıl işlendiğini belirleme.

    Bir modül için bildirimler gerekli değildir. Modüller, komut dosyaları ( .ps1 ), komut dosyası modül dosyaları ( .psm1 ), bildirim dosyaları ( .psd1 ), biçimlendirme ve tür dosyaları ( .ps1xml ), cmdlet ve sağlayıcı derlemeleri ( .dll ), kaynak dosyaları, yardım dosyaları, yerelleştirme dosyaları ya da modülün bir parçası olarak paketlenmiş başka herhangi bir dosya veya kaynak türü ile başvurabilir. Uluslararası bir komut dosyası için modül klasörü, bir dizi ileti kataloğu dosyası da içerir. Modül klasörüne bir bildirim dosyası eklerseniz, bildirime başvurarak birden çok dosyaya tek bir birim olarak başvurabilirsiniz.

    Bildirim, aşağıdaki bilgi kategorilerini açıklar:

  • Modülle ilgili modül Sürüm numarası, yazar ve açıklama gibi meta veriler.

  • modülün içeri aktarılması için Windows PowerShell sürümü, ortak dil çalışma zamanı (CLR) sürümü ve gerekli modüller gibi önkoşullar gerekir.

  • İşlenecek betikler, biçimler ve türler gibi işleme yönergeleri.

  • Dışarı aktarılacak modül üyeleri, diğer adlar, işlevler, değişkenler ve verilecek cmdlet 'ler gibi kısıtlamalar.

    Daha fazla bilgi için bkz. PowerShell modülü bildirimi yazma.

Modül depolama ve yükleme

Bir betik, ikili veya bildirim modülünü oluşturduktan sonra, işinizi başkalarının erişebileceği bir konuma kaydedebilirsiniz. örneğin modülünüzün Windows PowerShell yüklendiği sistem klasöründe depolanabilir veya bir kullanıcı klasöründe depolanabilir.

Genel anlamda, değişkende depolanan yollardan birini kullanarak modülünüzü nereye yükleyeceğini belirleyebilirsiniz $ENV:PSModulePath . Bu yollardan birini kullanmak, bir Kullanıcı kendi kodunda bir çağrı yaptığında, PowerShell 'in modülünüzü otomatik olarak bulabileceği ve yükleyebileceği anlamına gelir. Modülünüzü başka bir yerde depoluorsanýz, ' ı çağırdığınızda modülün konumunu bir parametre olarak geçirerek PowerShell 'e açıkça izin verebilirsiniz Install-Module .

Ne olursa olsun, klasörün yolu modülün (ModuleBase) temeli olarak adlandırılır ve betik, ikili ya da bildirim modülü dosyasının adı modül klasörü adı ile aynı olmalıdır ve aşağıdaki özel durumlarla aynı olmalıdır:

  • Cmdlet 'i tarafından oluşturulan Dinamik modüller, New-Module Name cmdlet 'in parametresi kullanılarak adlandırılabilir.

  • Komut tarafından, derleme nesnelerinden içeri aktarılan modüller Import-Module -Assembly aşağıdaki sözdizimine göre adlandırılır: "dynamic_code_module_" + assembly.GetName() .

    Daha fazla bilgi için bkz. PowerShell modülü yükleme ve about_PSModulePath.

Modül cmdlet 'Leri ve değişkenleri

aşağıdaki cmdlet 'ler ve değişkenler, modüllerin oluşturulması ve yönetilmesi için Windows PowerShell tarafından sağlanır.

New-Module cmdlet 'i bu cmdlet yalnızca bellekte bulunan yeni bir dinamik modül oluşturur. Modül bir betik bloğundan oluşturulur ve işlevleri ve değişkenleri gibi, bu üye, oturumda hemen kullanılabilir ve oturum kapatılana kadar kullanılabilir kalır.

New-ModuleManifest cmdlet 'i bu cmdlet yeni bir modül bildirim (. psd1) dosyası oluşturur, değerlerini doldurur ve bildirim dosyasını belirtilen yola kaydeder. Bu cmdlet, el ile doldurulabilecek bir modül bildirim şablonu oluşturmak için de kullanılabilir.

Import-Module cmdlet 'i bu cmdlet geçerli oturuma bir veya daha fazla modül ekler.

Get-Module cmdlet 'i bu cmdlet, geçerli oturuma aktarılabilecek olan veya olmayan modüller hakkında bilgi alır.

Export-Modülemeclienttarget cmdlet 'i bu cmdlet, bir betik modülü (. psm1) dosyasından veya cmdlet kullanılarak oluşturulan dinamik bir modülden dışarı aktarılmış modül üyelerini (cmdlet, işlevler, değişkenler ve diğer adlar gibi) belirtir New-Module .

Remove-Module cmdlet 'i bu cmdlet geçerli oturumdan modülleri kaldırır.

Test-modulemanifest cmdlet 'i bu cmdlet, modül bildirim dosyasında (. psd1) listelenen dosyaların gerçekten belirtilen yollarda mevcut olduğunu doğrulayarak bir modül bildiriminin bir modülün bileşenlerini doğru şekilde açıkladığını doğrular.

$PSScriptRoot bu değişken, komut dosyası modülünün yürütüldüğü dizini içerir. Betiklerin diğer kaynaklara erişmek için modül yolunu kullanmasına olanak sağlar.

$env:P smodulepath bu ortam değişkeni Windows PowerShell modüllerinin depolandığı dizinlerin bir listesini içerir. Windows PowerShell, modülleri otomatik olarak içeri aktarırken ve modüller için yardım konularını güncelleştirirken bu değişkenin değerini kullanır.

Ayrıca Bkz.

Windows PowerShell Modülü Yazma