Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
modülü, uygun bir birim olarak (genellikle tek bir dizine kaydedilir) birlikte gruplandırılmış ilgili Windows PowerShell işlevleri kümesidir. Modül olarak bir dizi ilgili betik dosyası, derleme ve ilgili kaynak tanımlayarak kodunuzu başvurabilir, yükleyebilir, kalıcı hale getirebilir ve paylaşabilirsiniz.
Modülün temel amacı, Windows PowerShell kodunun modülerleştirilmesine (yeniden kullanım ve soyutlama) izin vermektir. Örneğin, modül oluşturmanın en temel yolu Windows PowerShell betiğini .psm1 dosyası olarak kaydetmektir. Bunu yapmak, betikte yer alan işlevleri ve değişkenleri denetlemenize (genel veya özel yapmanıza) olanak tanır. Betiği .psm1 dosyası olarak kaydetmek, belirli değişkenlerin kapsamını denetlemenize de olanak tanır. Son olarak, betiğinizi düzenlemek, yüklemek ve daha büyük çözümler için yapı taşları olarak kullanmak için Install-Module gibi cmdlet'leri de kullanabilirsiniz.
Modül Bileşenleri ve Türleri
Modül dört temel bileşenden oluşur:
Bir tür kod dosyası - genellikle bir PowerShell betiği veya yönetilen cmdlet derlemesi.
Ek derlemeler, yardım dosyaları veya betikler gibi yukarıdaki kod dosyasının ihtiyaç duyabileceği diğer her şey.
Yukarıdaki dosyaları açıklayan ve yazar ve sürüm oluşturma bilgileri gibi meta verileri depolayan bir bildirim dosyası.
Yukarıdaki içeriğin tümünü içeren ve PowerShell'in makul bir şekilde bulabileceği bir dizin.
Uyarı
Bu bileşenlerin hiçbiri kendi başlarına gerekli değildir. Örneğin, bir modül teknik olarak yalnızca
.psm1dosyasında depolanan bir betik olabilir. Ayrıca, çoğunlukla kuruluş amaçları için kullanılan bildirim dosyasından başka bir şey olmayan bir modüle de sahip olabilirsiniz. Ayrıca, dinamik olarak bir modül oluşturan bir betik de yazabilirsiniz ve bu nedenle herhangi bir şeyi depolamak için bir dizin gerekmez. Aşağıdaki bölümlerde, bir modülün farklı olası parçalarını birleştirip eşleştirerek alabileceğiniz modül türleri açıklanmaktadır.
Betik Modülleri
Adından da anlaşılacağı gibi, betik modülü geçerli bir Windows PowerShell kodu içeren bir dosyadır (.psm1). Betik geliştiricileri ve yöneticileri, üyeleri işlevler, değişkenler ve daha fazlasını içeren modüller oluşturmak için bu modül türünü kullanabilir. Betik modülü, yöneticilerin üzerinde içeri aktarma, dışarı aktarma ve yönetim işlevlerini kullanmasına olanak tanıyan farklı bir uzantıya sahip bir Windows PowerShell betiğidir.
Ayrıca, veri dosyaları, diğer bağımlı modüller veya çalışma zamanı betikleri gibi diğer kaynakları modülünüze eklemek 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şturulmamış diğer modüller gibi bir betik modülünün de PowerShell'in makul bir şekilde keşfedebileceği bir klasöre kaydedilmesi gerekir. Bu genellikle PowerShell modül yolundadır; ancak gerekirse modülünüzün nereye yüklendiğini açıkça açıklayabilirsiniz. Daha fazla bilgi için bkz. PowerShell Betik Modülü Yazma.
İkili Modüller
ikili modül, C# gibi derlenmiş kod içeren bir .NET Framework derlemesidir (.dll).
Cmdlet geliştiricileri cmdlet'leri, sağlayıcıları ve daha fazlasını paylaşmak için bu tür bir modülü kullanabilir. (Mevcut ek bileşenler ikili modüller olarak da kullanılabilir.) Bir betik modülüyle karşılaştırıldığında, ikili modül daha hızlı cmdlet'ler oluşturmanıza veya Windows PowerShell betiklerinde kodlanması o kadar kolay olmayan özellikleri (çoklu iş parçacığı kullanımı gibi) kullanmanıza olanak tanır.
Betik modüllerinde olduğu gibi, modülünüzün kullandığı ek kaynakları açıklamak ve modülünüzle ilgili meta verileri izlemek için bir bildirim dosyası ekleyebilirsiniz. Benzer şekilde, ikili modülünüzü PowerShell modül yolu boyunca bir klasöre yüklemeniz gerekir. Daha fazla bilgi için bkz. How to How to Write a PowerShell Binary Module.
Bildirim Modülleri
bildirim modülü, tüm bileşenlerini açıklamak için bildirim dosyası kullanan ancak herhangi bir çekirdek derlemesi veya betiği olmayan bir modüldür. (Resmi olarak, bildirim modülü bildirimin ModuleToProcess veya RootModule öğesini boş bırakır.) Ancak, bağımlı derlemeleri yükleme veya belirli ön işleme betiklerini otomatik olarak çalıştırma gibi modülün diğer özelliklerini kullanmaya devam edebilirsiniz. İç içe modüller, derlemeler, türler veya biçimler gibi diğer modüllerin kullanacağı kaynakları paketlemek için kullanışlı bir yol olarak bildirim modülünü de kullanabilirsiniz. Daha fazla bilgi için bkz. PowerShell Modülü Bildirimi Yazma.
Dinamik Modüller
dinamik modül, bir dosyadan yüklenmeyen veya dosyaya kaydedilmeyen bir modüldür. Bunun yerine, New-Module cmdlet'i kullanılarak bir betik tarafından dinamik olarak oluşturulurlar. Bu modül türü, betiğin isteğe bağlı olarak yüklenmesi veya kalıcı depolamaya kaydedilmesi gerekmeyen bir modül oluşturmasına olanak tanır. Doğası gereği dinamik modül kısa ömürlü olması amaçlanmıştır ve bu nedenle Get-Module cmdlet'i tarafından erişilemez. Benzer şekilde, genellikle modül bildirimlerine veya ilgili derlemelerini depolamak için kalıcı klasörlere ihtiyaç duymazlar.
Modül Bildirimleri
modül bildirimi, karma tablo içeren bir .psd1 dosyasıdır. Karma tablodaki anahtarlar ve değerler aşağıdaki işlemleri yapar:
Modülün içeriğini ve özniteliklerini açıklama.
Önkoşulları tanımlayın.
Bileşenlerin nasıl işleneceğini belirleyin.
Bir modül için bildirimler gerekli değildir. Modüller betik dosyalarına (
.ps1), betik modülü dosyalarına (.psm1), bildirim dosyalarına (.psd1), biçimlendirme ve tür dosyalarına (.ps1xml), cmdlet ve sağlayıcı derlemelerine (.dll), kaynak dosyalarına, Yardım dosyalarına, yerelleştirme dosyalarına veya modülün bir parçası olarak paketlenmiş diğer dosya veya kaynak türlerine başvurabilir. Uluslararasılaştırılmış bir betik 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.Bildirimin kendisi aşağıdaki bilgi kategorilerini açıklar:
Modül sürümü numarası, yazar ve açıklama gibi modül hakkındaki meta veriler.
Windows PowerShell sürümü, ortak dil çalışma zamanı (CLR) sürümü ve gerekli modüller gibi modülü içeri aktarmak için gereken önkoşullar.
İşlenmek üzere betikler, biçimler ve türler gibi işleme yönergeleri.
Dışarı aktaracak diğer adlar, işlevler, değişkenler ve cmdlet'ler gibi dışarı aktarılması gereken modülün üyelerine yönelik kısıtlamalar.
Daha fazla bilgi için bkz. PowerShell Modülü Bildirimi Yazma.
Modülü Depolama ve Yükleme
Betik, ikili veya bildirim modülü oluşturduktan sonra, çalışmanızı başkalarının erişebileceği bir konuma kaydedebilirsiniz. Örneğin, modülünüz Windows PowerShell'in yüklü olduğu sistem klasöründe veya bir kullanıcı klasöründe depolanabilir.
Genel olarak konuşursak, $Env:PSModulePath değişkeninde depolanan yollardan birini kullanarak modülünüzü nereye yüklemeniz gerektiğini belirleyebilirsiniz. Bu yollardan birini kullanmak, kullanıcı kodunda modüle ç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 depolarsanız, Install-Moduleçağırdığınızda modülünüzün konumunu parametre olarak geçirerek PowerShell'e açıkça bildirebilirsiniz.
Ne olursa olsun, klasörün yolu modülün (ModuleBase) temel olarak adlandırılır ve betik, ikili veya bildirim modülü dosyasının adı modül klasörü adıyla aynı olmalıdır ve aşağıdaki özel durumlar dışında:
New-Modulecmdlet'i tarafından oluşturulan dinamik modüller, cmdlet'inNameparametresi kullanılarak adlandırılabilir.Import-Module -Assemblykomutu tarafından derleme nesnelerinden içeri aktarılan modüller şu söz dizimine 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 dışarı aktarılan üyeleri oturumda hemen kullanılabilir ve oturum kapatılana kadar kullanılabilir durumda kalır.
New-ModuleManifest cmdlet'i Bu cmdlet yeni bir modül bildirimi (.psd1) dosyası oluşturur, değerlerini doldurur ve bildirim dosyasını belirtilen yola kaydeder. Bu cmdlet, el ile doldurulabilen 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ılmış veya içeri aktarılabilen modüllerle ilgili bilgileri alır.
Export-ModuleMember cmdlet'i Bu cmdlet, bir betik modülü (.psm1) dosyasından veya New-Module cmdlet'i kullanılarak oluşturulan dinamik modülden dışarı aktarılan modül üyelerini (cmdlet'ler, işlevler, değişkenler ve diğer adlar gibi) belirtir.
Remove-Module cmdlet'i Bu cmdlet modülleri geçerli oturumdan 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 modül bildiriminin modülün bileşenlerini doğru bir şekilde tanımladığını doğrular.
$PSScriptRoot Bu değişken, betik modülünün yürütülmekte olduğu dizini içerir. Betiklerin modül yolunu kullanarak diğer kaynaklara erişmesini sağlar.
$Env:PSModulePath Bu ortam değişkeni, Windows PowerShell modüllerinin depolandığı dizinlerin 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.
PowerShell