about_Modules

Kısa Açıklama

PowerShell modüllerini yükleme, içeri aktarma ve kullanma hakkında bilgi sağlar.

Uzun Açıklama

Modül; cmdlet'ler, sağlayıcılar, işlevler, iş akışları, değişkenler ve diğer adlar gibi PowerShell üyelerini içeren bir pakettir.

Komutlar yazan kişiler, komutlarını düzenlemek ve başkalarıyla paylaşmak için modülleri kullanabilir. Modül alan kişiler, modüllerde yer alan komutları PowerShell oturumlarına ekleyebilir ve bunları yerleşik komutlar gibi kullanabilir.

Bu konuda PowerShell modüllerinin nasıl kullanıldığı açıklanmıştır. PowerShell modülleri yazma hakkında bilgi için bkz. PowerShell Modülü Yazma.

Modül Nedir?

Modül; cmdlet'ler, sağlayıcılar, işlevler, iş akışları, değişkenler ve diğer adlar gibi PowerShell üyelerini içeren bir pakettir. Bu paketin üyeleri bir PowerShell betiğinde, derlenmiş DLL'de veya her ikisinin birleşiminde uygulanabilirsiniz. Bu dosyalar genellikle tek bir dizinde birlikte gruplanır. Daha fazla bilgi için SDK belgelerinde Windows PowerShell Modülünü Anlama konusuna bakın.

Modül Otomatik Yükleme

PowerShell 3.0'dan itibaren PowerShell, yüklü bir modülde herhangi bir komutu ilk kez çalıştırarak modülleri otomatik olarak içeri aktarıyor. Artık herhangi bir kurulum veya profil yapılandırması olmadan bir modülde komutları kullanabilirsiniz, bu nedenle modülleri bilgisayarınıza yükledikten sonra yönetmenize gerek yoktur.

Bir modülde yer alan komutları daha kolay bulabilirsiniz. Get-Commandcmdlet'i, henüz oturumda yer alamasa bile tüm yüklü modüllerde tüm komutları alır. Komutu bulabilir ve modülü içeri aktarmaya gerek kalmadan kullanabilirsiniz.

Aşağıdaki örneklerin her biri, içeren CimCmdlets modülünün Get-CimInstance oturuma aktarılmış olmasına neden olur.

  • Komutu Çalıştırma

    Get-CimInstance Win32_OperatingSystem
    
  • Komutu Al

    Get-Command Get-CimInstance
    
  • Yardım Alın için komut

    Get-Help Get-CimInstance
    

Get-Command joker karakteri ( ) içeren komutlar bulma için kabul * edilir, kullanmaz ve hiçbir modülü içeri aktarmaz.

Yalnızca PSModulePath ortam değişkeni tarafından belirtilen konumda depolanan modüller otomatik olarak içe aktarılır. Diğer konumlarda yer alan modüllerin Import-Module cmdlet'i çalıştırarak içe aktarılmış olması gerekir.

Ayrıca, PowerShell sağlayıcıları kullanan komutlar bir modülü otomatik olarak içeri aktarmaz. Örneğin, CMDlet gibi WSMan: sürücüsü gerektiren bir komut kullanıyorsanız, sürücüyü içeren Get-PSSessionConfiguration Import-Module Microsoft.WSMan.Management modülünü içeri aktaracak cmdlet'i çalıştırması WSMan: gerekir.

Yine de komutunu çalıştırarak modülü içeri aktarabilirsiniz ve modüllerde otomatik içeri aktarmayı etkinleştirmek, devre dışı bırakmak ve yapılandırmak Import-Module $PSModuleAutoloadingPreference için değişkenlerini kullanabilirsiniz. Daha fazla bilgi için bkz. about_Preference_Variables.

Modül Kullanma

Bir modülü kullanmak için aşağıdaki görevleri gerçekleştirin:

  1. Modülü yükleyin. (Bu genellikle sizin için yapılır.)
  2. Modülün ekli olduğu komutları bulun.
  3. Modülün ekli olduğu komutları kullanın.

Bu konuda, bu görevlerin nasıl gerçekleştirecekleri açıklanmıştır. Ayrıca modülleri yönetmeye ilişkin diğer yararlı bilgileri de içerir.

Modül Yükleme

Bir modülü dosya içeren bir klasör olarak alırsanız, PowerShell'de kullanamadan önce modülü bilgisayarınıza yüklemeniz gerekir.

Modüllerin çoğu sizin için yüklenir. PowerShell, bazen çekirdek modüller olarak da adlandırılan önceden yüklenmiş birkaç modülle birlikte gelir. Bu Windows tabanlı bilgisayarlarda, işletim sistemine dahil edilen özelliklerin bunları yönetmek için cmdlet'leri varsa, bu modüller önceden yüklenmiştir. Bir Windows özelliğini, örneğin, Sunucu Yöneticisi'daki Rol ve Özellik Ekleme Sihirbazı'nı veya Denetim Masası'daki Windows özelliklerini aç veya kapat iletişim kutusunu kullanarak yükleyebilirsiniz. Bu özellik, özelliğin parçası olan tüm PowerShell modülleri yüklenir. Diğer birçok modül, modülü yüken bir yükleyicide veya Kurulum programında gelir.

Geçerli kullanıcı için bir Modules dizini oluşturmak üzere aşağıdaki komutu kullanın:

New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules

Modül klasörünün tamamını Modules dizinine kopyalayın. Klasörü kopyalamak için Windows Explorer ve Cmd.exe PowerShell de dahil olmak üzere herhangi bir yöntemi kullanabilirsiniz. PowerShell'de Copy-Item cmdlet'ini kullanın. Örneğin, MyModule klasörünü modules dizinine C:\ps-test\MyModule kopyalamak için yazın:

Copy-Item -Path C:\ps-test\MyModule -Destination `
    $HOME\Documents\PowerShell\Modules

Modülü herhangi bir konuma yükleyebilirsiniz, ancak modüllerinizi varsayılan modül konumlarına yüklemek, modüllerin daha kolay yönetilenemlerini sağlar. Varsayılan modül konumları hakkında daha fazla bilgi için Module ve DSC Kaynak Konumları ve PSModulePath bölümüne bakın.

Yüklü Modülleri Bulma

Varsayılan modül konumda yüklü olan ancak henüz oturuma aktarılmış olan modülleri bulmak için şunları yazın:

Get-Module -ListAvailable

Oturuma zaten aktarılmış modülleri bulmak için PowerShell isteminde yazın:

Get-Module

Get-Modulecmdlet'i hakkında daha fazla bilgi için bkz. Get-Module.

Modülde Komutları Bulma

Kullanılabilir tüm Get-Command komutları bulmak için cmdlet'ini kullanın. Modül, ad ve isim gibi komutları Get-Command filtrelemek için cmdlet'in parametrelerini kullanabilirsiniz.

Bir modülde tüm komutları bulmak için yazın:

Get-Command -Module <module-name>

Örneğin, BitsTransfer modülünde komutları bulmak için yazın:

Get-Command -Module BitsTransfer

Get-Commandcmdlet'i hakkında daha fazla bilgi için bkz. Get-Command.

Bir Yardım Alın Komutlar için Nasıl Kullanılır?

Modül dışarı aktaran komutlar için Yardım dosyaları Get-Help içeriyorsa, cmdlet Yardım konularını görüntüler. Get-HelpPowerShell'de herhangi bir komut için yardım almak üzere kullanabileceğiniz komut biçimini kullanın.

PowerShell 3.0'dan itibaren, bir modül için Yardım dosyalarını indirebilir ve güncelleştirmeleri Yardım dosyalarına indirebilirsiniz, böylece bunlar hiçbir zaman eskir.

Modülde komutlar için yardım almak için şunları yazın:

Get-Help <command-name>

Bir modülde komutun çevrimiçi yardım almak için yazın:

Get-Help <command-name> -Online

Modülde yer alan komutların yardım dosyalarını indirmek ve yüklemek için şunları yazın:

Update-Help -Module <module-name>

Daha fazla bilgi için bkz. Get-Help ve Update-Help.

Modülü İçeri Aktarma

Bir modülü içeri aktarmanız veya bir modül dosyasını içeri aktarmanız gerekir. Bir modül PSModulePath ortam değişkeni tarafından belirtilen konumlara yüklenmemişse veya modül klasör olarak teslim edilen tipik modül yerine .dll veya .psm1 dosyası gibi dosyalardan oluşursa, içeri aktarma $env:PSModulePath gereklidir.

Modülü içeri aktararak komutun parametrelerini (içeri aktarılan tüm komutların ad adlarında önek ekleyen Ön Ek parametresi veya modülün oturumda mevcut komutları gizleyecek veya değiştirecek komutlar eklemesini ön ekleyen Import-Module NoClocloclo parametresi gibi) kullanabilirsiniz.

Modülleri içeri aktarma için Import-Module cmdlet'ini kullanın.

PSModulePath konumundaki modülleri geçerli oturuma içeri aktarın, aşağıdaki komut biçimini kullanın.

Import-Module <module-name>

Örneğin, aşağıdaki komut BitsTransfer modülünü geçerli oturuma içeri aktarıyor.

Import-Module BitsTransfer

Varsayılan modül konumu içinde yer alan bir modülü içeri almak için komutunda modül klasörünün tam yolunu kullanın.

Örneğin, dizininde TestCmdlets modülünü C:\ps-test oturuma eklemek için yazın:

Import-Module C:\ps-test\TestCmdlets

Bir modül klasöründe yer almamış bir modül dosyasını içeri aktarın, komutunda modül dosyasının tam yolunu kullanın.

Örneğin, TestCmdlets.dll modülünü C:\ps-test oturuma eklemek için yazın:

Import-Module C:\ps-test\TestCmdlets.dll

Oturuma modül ekleme hakkında daha fazla bilgi için bkz. Import-Module.

Modülü Her Oturuma Aktarma

komutu Import-Module modülleri geçerli PowerShell oturuma içeri aktarıyor. Bir modülü başlatan her PowerShell oturumuna içeri aktarın, komutunu Import-Module PowerShell profilinize ekleyin.

Profiller hakkında daha fazla bilgi için bkz. about_Profiles.

Modülü Kaldırma

Bir modülü kaldırabilirsiniz, modülün ekli komutları oturumdan silinir.

Oturumdan bir modülü kaldırmak için aşağıdaki komut biçimini kullanın.

Remove-Module <module-name>

Örneğin, aşağıdaki komut BitsTransfer modülünü geçerli oturumdan kaldırır.

Remove-Module BitsTransfer

Bir modülün kaldırılması, modülü içeri aktarma işlemi tersine çevrilir. Modül kaldırılarak modül kaldırılmaz. Daha fazla bilgi için bkz. Remove-Module.

Module ve DSC Kaynak Konumları ve PSModulePath

Ortam $env:PSModulePath değişkeni, modülleri ve kaynakları bulmak için aranan klasör konumlarının listesini içerir.

Varsayılan olarak, atanan geçerli $env:PSModulePath konumlar:

  • Sistem genelinde konumlar: $PSHOME\Modules

    bu klasörler Windows ve PowerShell ile birlikte gelen modüller içerir.

    PowerShell 'e dahil edilen DSC kaynakları $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources klasöründe depolanır.

  • Kullanıcıya özgü modüller: Bu modüller, kullanıcının kapsamındaki Kullanıcı tarafından yüklenir. Install-Module , modülün geçerli kullanıcı için mi yoksa tüm kullanıcılar için mi yükleneceğini belirtmenize izin veren bir kapsam parametresine sahiptir. Daha fazla bilgi için bkz. Install-Module.

    Windows üzerindeki kullanıcıya özgü currentuser konumu, PowerShell\Modules kullanıcı profilinizdeki belgeler konumunda bulunan klasördür. bu konumun belirli yolu, Windows sürümüne göre değişiklik gösterir ve klasör yeniden yönlendirme kullanıp kullanmayacağınızı de kullanmamalıdır. Microsoft OneDrive, belgeler klasörünüzün konumunu da değiştirebilir.

    varsayılan olarak, Windows 10, bu konum olur $HOME\Documents\PowerShell\Modules . Linux veya Mac üzerinde, CurrentUser konumu olur $HOME/.local/share/powershell/Modules .

    Not

    Şu komutu kullanarak Belgeler klasörünüzün konumunu doğrulayabilirsiniz: [Environment]::GetFolderPath('MyDocuments') .

  • ALLUSERS konumu $env:PROGRAMFILES\PowerShell\Modules Windows. Linux veya Mac üzerinde modüller ' de depolanır /usr/local/share/powershell/Modules .

Not

Dizindeki dosyaları eklemek veya değiştirmek için $env:Windir\System32 PowerShell 'i yönetici olarak çalıştır seçeneğiyle başlatın.

PSModulePath ortam değişkeninin değerini değiştirerek sisteminizdeki varsayılan modül konumlarını değiştirebilirsiniz $Env:PSModulePath . PSModulePath ortam değişkeni, PATH ortam değişkeninde modellenmiştir ve aynı biçimde olur.

Varsayılan modül konumlarını görüntülemek için şunu yazın:

$Env:PSModulePath

Varsayılan modül konumu eklemek için aşağıdaki komut biçimini kullanın.

$Env:PSModulePath = $Env:PSModulePath + ";<path>"

Komutdaki noktalı virgül ( ; ), yeni yolu listedeki kendisinden önceki yoldan ayırır.

Örneğin, dizini eklemek için C:\ps-test\Modules şunu yazın:

$Env:PSModulePath + ";C:\ps-test\Modules"

Linux veya MacOS 'ta varsayılan modül konumu eklemek için aşağıdaki komut biçimini kullanın:

$Env:PSModulePath += ":<path>"

Örneğin, /usr/local/Fabrikam/Modules dizini PSModulePath ortam değişkeninin değerine eklemek için şunu yazın:

$Env:PSModulePath += ":/usr/local/Fabrikam/Modules"

Linux veya MacOS 'ta, komutta iki nokta üst üste işareti ( : ), yeni yolu listede kendisinden önceki yoldan ayırır.

PSModulePath için bir yol eklediğinizde Get-Module ve Import-Module komutları bu yoldaki modülleri içerir.

Ayarladığınız değer yalnızca geçerli oturumu etkiler. Değişikliği kalıcı hale getirmek için PowerShell profilinize komutunu ekleyin veya kayıt defterindeki PSModulePath ortam değişkeninin değerini değiştirmek Için Denetim Masası 'ndaki sistem ' i kullanın.

Ayrıca, değişikliği kalıcı hale getirmek için, PSModulePath ortam değişkenine bir yol eklemek için System. Environment sınıfının SetEnvironmentVariable yöntemini de kullanabilirsiniz.

PSModulePath değişkeni hakkında daha fazla bilgi için bkz. about_Environment_Variables.

Modüller ve ad çakışmaları

Oturumda birden fazla komut aynı ada sahip olduğunda ad çakışmaları oluşur. Modülün içeri aktarılması, Modüldeki komutlar ya da oturumdaki öğelerle aynı ada sahip olduğunda bir ad çakışmasına neden olur.

Ad çakışmaları komutların gizli veya değiştirilmiş olmasını sağlayabilir.

Gizli

Komutu, komut adını yazdığınızda çalıştırılan komut olmadığında gizlenir, ancak komut adını, onun kaynaklandığı modülün veya ek bileşenin adıyla niteleyerek gibi başka bir yöntem kullanarak çalıştırabilirsiniz.

Silinmeyecek

Aynı ada sahip bir komut tarafından geçersiz kılındığından, bir komut bu dosyayı çalıştıramadıkça değiştirilmiştir. Çakışmaya neden olan modülü kaldırdığınızda bile, oturumu yeniden başlatmadığınız takdirde, değiştirilmiş bir komutu çalıştıramazsınız.

Import-Module geçerli oturumdaki komutları gizleyen ve değiştirecek komutları ekleyebilir. Ayrıca, oturuminizdeki komutlar modülün eklediği komutları gizleyebilir.

Ad çakışmalarını algılamak için cmdlet 'in Tüm parametresini kullanın Get-Command . PowerShell 3,0 ' den başlayarak, Get-Command yalnızca komut adını yazdığınızda çalışan komutları alır. All parametresi, oturumdaki belirli bir ada sahip tüm komutları alır.

Ad çakışmalarını engellemek için cmdlet 'in NoClobber veya önek parametrelerini kullanın Import-Module . Önek parametresi, içeri aktarılan komutların adlarına bir ön ek ekler, böylece oturumda benzersiz olmaları sağlanır. NoClobber parametresi, oturumdaki mevcut komutları gizleyen veya değiştirecek komutları içeri aktarmaz.

Ayrıca, yalnızca içeri aktarmak istediğiniz komutları seçmek için diğer ad, cmdlet, işlev ve değişken parametrelerini de kullanabilirsiniz Import-Module ve oturumunuzda ad çakışmalarına neden olan komutları dışlayabilirsiniz.

Modül yazarları, tüm komut adlarına varsayılan bir ön ek eklemek için modül bildiriminin Defaultcommandprefix özelliğini kullanarak ad çakışmalarını önleyebilirler. Önek parametresinin değeri, defaultcommandprefix değerinin önüne geçer.

Bir komut gizli olsa bile, komut adını, kaynaklandığı modülün veya ek bileşenin adıyla niteleyerek çalıştırabilirsiniz.

PowerShell komut önceliği kuralları, oturum aynı ada sahip komutlar içerdiğinde hangi komutun çalıştırılacağını belirlenir.

Örneğin, bir oturum aynı ada sahip bir işlev ve bir cmdlet içerdiğinde, PowerShell işlevi varsayılan olarak çalıştırır. Oturum, aynı ada sahip aynı türde komutlar içerdiğinde (aynı ada sahip iki cmdlet gibi), varsayılan olarak en son eklenen komutu çalıştırır.

Gizli komutları çalıştırmaya ilişkin öncelik kurallarının ve yönergelerinin açıklaması dahil daha fazla bilgi için bkz. about_Command_Precedence.

Modüller ve Ek Bileşenler

Oturumlarınıza ve ek bileşenlere komutlar ekleyebilirsiniz. Modüller cmdlet 'leri, sağlayıcıları ve işlevleri, değişkenler, diğer adlar ve PowerShell sürücüleri gibi öğeler de dahil olmak üzere tüm komut türlerini ekleyebilir. Ek bileşenler, yalnızca cmdlet 'leri ve sağlayıcıları ekleyebilirler.

Oturumınızdan bir modül veya ek bileşeni kaldırmadan önce, hangi komutların kaldırılacağını öğrenmek için aşağıdaki komutları kullanın.

Oturuminizdeki bir cmdlet kaynağını bulmak için aşağıdaki komut biçimini kullanın:

Get-Command <cmdlet-name> | Format-List -Property verb,noun,pssnapin,module

Örneğin, cmdlet kaynağını bulmak için Get-Date şunu yazın:

Get-Command Get-Date | Format-List -Property verb,noun,module

Modülün dışarı aktardığı komutlar PowerShell komutu adlandırma kurallarını izlemelidir. İçeri aktardığınız modül, adlarında onaylanmamış fiiller olan cmdlet 'leri veya işlevleri dışa aktardığında, Import-Module cmdlet aşağıdaki uyarı iletisini görüntüler.

Uyarı: bazı içeri aktarılan komut adları onaylanmamış fiiller içeriyor, bu da daha az bulunabilir hale gelebilir. Daha fazla ayrıntı için verbose parametresini kullanın veya onaylanan fiillerin listesini görmek için Get-Verb yazın.

Bu ileti yalnızca bir uyarıdır. Uyumsuz komutlar da dahil olmak üzere tam modül içeri aktarılmakta. İleti, modül kullanıcılarına görüntülenip görüntülenmese de, adlandırma sorunu Modül yazarı tarafından düzeltilmelidir.

Uyarı iletisini bastırmak için cmdlet 'inin Disablenamechecking parametresini kullanın Import-Module .

Yerleşik modüller ve ek bileşenler

PowerShell 2,0 ' de ve PowerShell 3,0 ve sonraki sürümlerde bulunan eski stil konak programlarında, PowerShell ile yüklenen temel komutlar, her PowerShell oturumunda otomatik olarak eklenen ek bileşenlerde paketlenir.

PowerShell 3,0 ' den başlayarak, ilk oturum durumu API 'sini uygulayan konak programları için InitialSessionState.CreateDefault2 Microsoft. PowerShell. Core ek bileşeni varsayılan olarak her oturuma eklenir. Modüller ilk kullanımda otomatik olarak yüklenir.

Not

Cmdlet 'i kullanılarak başlatılan oturumlar dahil olmak üzere uzak oturumlar New-PSSession , yerleşik komutların ek bileşenlerde paketlendiği eski stil oturumlardır.

Aşağıdaki modüller (veya ek bileşenler) PowerShell ile yüklenir.

  • CimCmdlets
  • Microsoft. PowerShell. Archive
  • Microsoft. PowerShell. Core
  • Microsoft. PowerShell. Diagnostics
  • Microsoft. PowerShell. Host
  • Microsoft. PowerShell. Management
  • Microsoft. PowerShell. Security
  • Microsoft.PowerShell.Utility
  • Microsoft. WSMan. Management
  • PackageManagement
  • PowerShellGet
  • PSDesiredStateConfiguration
  • PSDiagnostics
  • PSReadline

Modül olaylarını günlüğe kaydetme

PowerShell 3,0 ' den başlayarak, modüllerin ve ek bileşenlerin LogpipelineExecutionDetails özelliğini olarak ayarlayarak PowerShell modülleri ve ek bileşenlerinde cmdlet 'ler ve işlevler için yürütme olayları kaydedebilirsiniz $True . Ayrıca, tüm PowerShell oturumlarında modül günlüğünü etkinleştirmek için, modül günlüğünü açmak üzere bir grup ilkesi ayarını da kullanabilirsiniz. Daha fazla bilgi için günlüğe kaydetme ve Grup İlkesi makalelerine bakın.

Ayrıca Bkz.

about_Logging_Windows

about_Logging_Non Windows

about_Group_Policy_Settings

about_Command_Precedence

about_Group_Policy_Settings

Get-Command

Yardım alın

Get-Module

Import-Module

Remove-Module