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.
Kısa açıklama
PowerShell modüllerinin nasıl yükleneceğini, içeri aktarılacağını ve kullanılacağını açıklar.
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.
Komut yazan kişiler, komutlarını düzenlemek ve başkalarıyla paylaşmak için modülleri kullanabilir. Modülleri alan kişiler, modüllerdeki komutları PowerShell oturumlarına ekleyebilir ve bunları yerleşik komutlar gibi kullanabilir.
Bu konuda PowerShell modüllerinin nasıl kullanılacağı açıklanmaktadır. PowerShell modüllerinin nasıl yazılacağı hakkında daha fazla 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ş bir DLL'de veya her ikisinin bir birleşiminde uygulanabilir. Bu dosyalar genellikle tek bir dizinde gruplandırılır. Daha fazla bilgi için SDK belgelerindeki Windows PowerShell Modülünü Anlama bölümüne bakın.
Modül otomatik yükleme
PowerShell 3.0'dan başlayarak PowerShell, yüklü bir modülde herhangi bir komutu ilk kez çalıştırdığınızda modülleri otomatik olarak içeri aktarır. Artık komutları herhangi bir kurulum veya profil yapılandırması olmadan bir modülde kullanabilirsiniz, bu nedenle modülleri bilgisayarınıza yükledikten sonra yönetmenize gerek yoktur.
Bir modüldeki komutları bulmak da daha kolaydır. Cmdlet Get-Command artık tüm yüklü modüllerdeki tüm komutları, henüz oturumda olmasalar bile alır. Bir komut bulabilir ve önce modülü içe aktarmaya gerek kalmadan kullanabilirsiniz.
Aşağıdaki örneklerin her biri, öğesini içeren Get-CimInstanceCimCmdlets modülünün oturumunuza aktarılmasına neden olur.
Komutu Çalıştırma
Get-CimInstance Win32_OperatingSystemKomutu Alma
Get-Command Get-CimInstanceKomut için Yardım Alma
Get-Help Get-CimInstance
Get-Command Joker karakter (*) içeren komutlar, kullanım için değil, bulma amaçlı olarak kabul edilir ve herhangi bir modülü içe aktarmaz.
Yalnızca PSModulePath ortam değişkeni tarafından belirtilen konumda depolanan modüller otomatik olarak içe aktarılır. Diğer konumlardaki modüller, cmdlet çalıştırılarak içeri aktarılmalıdır Import-Module .
Ayrıca, PowerShell sağlayıcılarını kullanan komutlar bir modülü otomatik olarak içeri aktarmaz. Örneğin, cmdlet gibi WSMan: sürücüsünü Get-PSSessionConfiguration gerektiren bir komut kullanırsanız, sürücüyü içeren Import-Module modülünü içeri aktarmak için cmdlet'i çalıştırmanız WSMan: gerekebilir.
Bir modülü içe aktarmak için komutu çalıştırmaya devam edebilir ve modüllerin Import-Module$PSModuleAutoloadingPreference otomatik olarak içe aktarılmasını etkinleştirmek, devre dışı bırakmak ve yapılandırmak için değişkeni kullanabilirsiniz. Daha fazla bilgi için bkz. about_Preference_Variables.
Bir Modül Nasıl Kullanılır
Bir modülü kullanmak için aşağıdaki görevleri gerçekleştirin:
- Modülü takın. (Bu genellikle sizin için yapılır.)
- Modülün eklediği komutları bulun.
- Modülün eklediği komutları kullanın.
Bu konuda, bu görevlerin nasıl gerçekleştirileceği açıklanmaktadır. Ayrıca modülleri yönetmeyle ilgili diğer yararlı bilgileri de içerir.
Bir Modül Nasıl Kurulur
Bir modülü, içinde dosyalar bulunan bir klasör olarak alırsanız, PowerShell'de kullanabilmeniz için önce bilgisayarınıza yüklemeniz gerekir.
Çoğu modül sizin için kurulur. PowerShell, bazen çekirdek modüller olarak adlandırılan önceden yüklenmiş birkaç modülle birlikte gelir. Windows tabanlı bilgisayarlarda, işletim sistemiyle birlikte gelen özelliklerin bunları yönetmek için cmdlet'leri varsa, bu modüller önceden yüklenir. Örneğin, Sunucu Yöneticisi'ndeki Rol ve Özellik Ekleme Sihirbazı'nı veya Denetim Masası'ndaki Windows özelliklerini aç veya kapat iletişim kutusunu kullanarak bir Windows özelliği yüklediğinizde, özelliğin parçası olan tüm PowerShell modülleri yüklenir. Diğer birçok modül, modülü yükleyen bir yükleyici veya Kurulum programı içinde gelir.
Geçerli kullanıcı için bir Modüller dizini oluşturmak için aşağıdaki komutu kullanın:
New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules
Modül klasörünün tamamını Modüller dizinine kopyalayın. Klasörü kopyalamak için aşağıdakiler de dahil olmak üzere herhangi bir yöntemi kullanabilirsiniz: Windows Gezgini ve Cmd.exeyanı sıra PowerShell. PowerShell'de Copy-Item cmdlet'ini kullanın. Örneğin, MyModule klasörünü C:\ps-test\MyModule Modüller dizinine kopyalamak için şunu yazın:
Copy-Item -Path C:\ps-test\MyModule -Destination `
$HOME\Documents\PowerShell\Modules
Herhangi bir konuma modül yükleyebilirsiniz, ancak modüllerinizi varsayılan modül konumuna yüklemek, bunların yönetilmesini kolaylaştırır. Varsayılan modül konumları hakkında daha fazla bilgi için Modül ve DSC Kaynak Konumları ve PSModulePath bölümüne bakın.
Yüklü modüller nasıl bulunur
Varsayılan modül konumuna yüklenmiş, ancak henüz oturumunuza aktarılmamış modülleri bulmak için şunu yazın:
Get-Module -ListAvailable
Oturumunuza zaten aktarılmış olan modülleri bulmak için PowerShell istemine şunu yazın:
Get-Module
Get-Module hakkında daha fazla bilgi için bkz.
Bir modüldeki komutlar nasıl bulunur?
Kullanılabilir tüm komutları bulmak için Get-Command cmdlet'ini kullanın. modül, ad ve ada göre gibi komutları filtrelemek için Get-Command cmdlet'in parametrelerini kullanabilirsiniz.
Modüldeki tüm komutları bulmak için şunu yazın:
Get-Command -Module <module-name>
Örneğin, BitsTransfer modülündeki komutları bulmak için şunu yazın:
Get-Command -Module BitsTransfer
Bir modüldeki komutlar için nasıl yardım alınır?
Modül, dışarı aktardığı komutlar için Yardım dosyaları içeriyorsa, Get-Help cmdlet Yardım konularını görüntüler. PowerShell'deki Get-Help herhangi bir komutla ilgili yardım almak için kullanacağınız komut biçimini kullanın.
PowerShell 3.0'dan başlayarak, bir modül için Yardım dosyalarını indirebilir ve hiçbir zaman eski olmamaları için Yardım dosyalarına güncelleştirmeler indirebilirsiniz.
Bir modüldeki komutlarla ilgili yardım almak için şunu yazın:
Get-Help <command-name>
Bir modüldeki komut için çevrimiçi yardım almak için şunu yazın:
Get-Help <command-name> -Online
Bir modüldeki komutların yardım dosyalarını indirmek ve yüklemek için şunu yazın:
Update-Help -Module <module-name>
Daha fazla bilgi için bkz: Get-Help ve Update-Help.
Bir Modül Nasıl İçe Aktarılır
Bir modülü içe aktarmanız veya bir modül dosyasını içe aktarmanız gerekebilir.
Bir modül PSModulePath ortam değişkeni $env:PSModulePathtarafından belirtilen konumlara yüklenmemişse veya modül, klasör olarak teslim edilen tipik modül yerine .dll veya .psm1 dosyası gibi bir dosyadan oluşuyorsa içeri aktarma gereklidir.
Ayrıca, komutun parametrelerini Import-Module kullanabilmek için bir modülü içe aktarmayı da seçebilirsiniz (örneğin, içe aktarılan tüm komutların isim adlarına ayırt edici bir önek ekleyen Prefix parametresi veya modülün oturumdaki mevcut komutları gizleyecek veya değiştirecek komutlar eklemesini engelleyen NoClobber parametresi).
Modülleri içeri aktarmak için cmdlet'i Import-Module kullanın.
PSModulePath konumundaki modülleri geçerli oturuma aktarmak için 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çe aktarır.
Import-Module BitsTransfer
Varsayılan modül konumunda olmayan bir modülü içeri aktarmak için, komuttaki modül klasörünün tam yolunu kullanın.
Örneğin, dizindeki C:\ps-test TestCmdlets modülünü oturumunuza eklemek için şunu yazın:
Import-Module C:\ps-test\TestCmdlets
Modül klasöründe bulunmayan bir modül dosyasını içeri aktarmak için, komuttaki modül dosyasının tam yolunu kullanın.
Örneğin, C:\ps-test dizinindeki TestCmdlets.dll modülünü oturumunuza eklemek için şunu yazın:
Import-Module C:\ps-test\TestCmdlets.dll
Oturumunuza modül ekleme hakkında daha fazla bilgi için bkz. Import-Module.
Bir Modülü Her Oturuma Nasıl Aktarırım?
Import-Module komutu modülleri geçerli PowerShell oturumunuza aktarır. Başlattığınız her PowerShell oturumuna bir modülü içeri aktarmak için Import-Module komutunu PowerShell profilinize ekleyin.
Profiller hakkında daha fazla bilgi için bkz. about_Profiles.
Bir Modül Nasıl Kaldırılır
Bir modülü kaldırdığınızda, modülün eklediği komutlar oturumdan silinir.
Oturumunuzdan 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
Modülün kaldırılması, modülü içeri aktarma işlemini tersine çevirir. Bir modülün kaldırılması, modülün kaldırıldığı anlamına gelmez. Daha fazla bilgi için bkz. Remove-Module.
Modül ve DSC Kaynak Konumları ve PSModulePath
$env:PSModulePath ortam değişkeni, modülleri ve kaynakları bulmak için aranan klasör konumlarının listesini içerir.
Varsayılan olarak, $env:PSModulePath atanan geçerli konumlar şunlardır:
Sistem genelindeki konumlar:
$PSHOME\ModulesBu klasörler, Windows ve PowerShell ile birlikte gelen modülleri içerir.
PowerShell'e dahil edilen DSC kaynakları klasörde
$PSHOME\Modules\PSDesiredStateConfiguration\DSCResourcesdepolanır.Kullanıcıya özel modüller: Kullanıcı tarafından kullanıcının kapsamına kurulan modüllerdir.
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 olanak tanıyan bir Kapsam parametresine sahiptir. Daha fazla bilgi için bkz . Install-Module.Windows'ta kullanıcıya özgü CurrentUser konumu, kullanıcı profilinizdeki
PowerShell\ModulesBelgeler konumunda bulunan klasördür. Bu konumun belirli yolu, Windows sürümüne ve klasör yeniden yönlendirmeyi kullanıp kullanmadığınıza göre değişir. Microsoft OneDrive, Belgeler klasörünüzün konumunu da değiştirebilir.Varsayılan olarak, Windows 10 ve sonraki sürümlerde bu konum .
$HOME\Documents\PowerShell\ModulesLinux veya Mac'te CurrentUser konumu 'dir$HOME/.local/share/powershell/Modules.Uyarı
Aşağıdaki komutu kullanarak Belgeler klasörünüzün konumunu doğrulayabilirsiniz:
[Environment]::GetFolderPath('MyDocuments').AllUsers konumu Windows'tadır
$env:PROGRAMFILES\PowerShell\Modules. Linux veya Mac'te modüller adresinde/usr/local/share/powershell/Modulessaklanır.
Uyarı
$env:Windir\System32 dizinine dosya eklemek veya değiştirmek için 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şkeni üzerinde modellenmiştir ve aynı biçime sahiptir.
Varsayılan modül konumlarını görüntülemek için şunu yazın:
$Env:PSModulePath
Varsayılan bir modül konumu eklemek için aşağıdaki komut biçimini kullanın.
$Env:PSModulePath = $Env:PSModulePath + ";<path>"
Komuttaki noktalı virgül (;), yeni yolu listede kendisinden önceki yoldan ayırır.
Örneğin, dizini eklemek C:\ps-test\Modules için ş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, dizini PSModulePath ortam değişkeninin değerine eklemek /usr/local/Fabrikam/Modules için şunu yazın:
$Env:PSModulePath += ":/usr/local/Fabrikam/Modules"
Linux veya MacOS'ta, komuttaki iki nokta üst üste (:) yeni yolu listede kendisinden önce gelen yoldan ayırır.
PSModulePath'eGet-Module bir yol eklediğinizde ve Import-Module komutlar bu yoldaki modülleri içerdiğinde.
Ayarladığınız değer yalnızca geçerli oturumu etkiler. Değişikliği kalıcı hale getirmek için komutu PowerShell profilinize ekleyin veya Denetim Masası'ndaki Sistem'i kullanarak kayıt defterindeki PSModulePath ortam değişkeninin değerini değiştirin.
Ayrıca, değişikliği kalıcı hale getirmek için, PSModulePath ortam değişkenine bir Path 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 about_Environment_Variables bakın.
Modüller ve Ad Çakışmaları
Oturumdaki birden fazla komut aynı ada sahip olduğunda ad çakışmaları oluşur. Modüldeki komutlar oturumdaki komutlar veya öğelerle aynı adlara sahip olduğunda modülü içeri aktarmak ad çakışması oluşturur.
Ad çakışmaları komutların gizlenmesini veya değiştirilmesini sağlayabilir.
Gizli
Komut adını yazdığınızda çalışan komut olmadığında komut gizlenir, ancak komut adını kaynaklandığı modülün veya ek bileşenin adıyla nitelemek gibi başka bir yöntem kullanarak çalıştırabilirsiniz.
Değiştirilir
Bir komut, aynı ada sahip bir komut tarafından üzerine yazıldığı için çalıştıramadığınızda değiştirilir. Çakışmaya neden olan modülü kaldırsanız bile, oturumu yeniden başlatmadığınız sürece değiştirilen bir komutu çalıştıramazsınız.
Import-Module geçerli oturumdaki komutları gizleyen ve değiştiren komutlar ekleyebilir. Ayrıca, oturumunuzdaki komutlar modülün eklediği komutları gizleyebilir.
Ad çakışmalarını algılamak için cmdlet'in Get-Command parametresini kullanın. PowerShell 3.0'dan başlayarak, Get-Command yalnızca komut adını yazdığınızda çalışan komutları alır.
Tümü parametresi, oturumdaki belirli ada sahip tüm komutları alır.
Ad çakışmalarını önlemek için cmdlet'in NoClobber veya Import-Module parametrelerini kullanın.
Prefix parametresi, içe aktarılan komutların adlarına bir önek ekler, böylece oturumda benzersiz olurlar.
NoClobber parametresi, oturumda varolan komutları gizleyecek veya değiştirecek herhangi bir komutu içe aktarmaz.
'in Diğer Ad, Cmdlet, İşlevve Import-Module parametrelerini kullanarak yalnızca içeri aktarmak istediğiniz komutları seçebilir ve oturumunuzda ad çakışmalarına neden olan komutları dışlayabilirsiniz.
Modül yazarları, tüm komut adlarına varsayılan ön ek eklemek için modül bildiriminin DefaultCommandPrefix özelliğini kullanarak ad çakışmalarını engelleyebilir. Prefix parametresinin değeri, DefaultCommandPrefixdeğerinden önceliklidir.
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ı belirler.
Örneğin, bir oturum aynı ada sahip bir işlev ve cmdlet içerdiğinde PowerShell işlevi varsayılan olarak çalıştırır. Oturumda aynı ada sahip aynı türde komutlar (aynı ada sahip iki cmdlet gibi) varsa, varsayılan olarak en son eklenen komutu çalıştırır.
Öncelik kurallarının açıklaması ve gizli komutları çalıştırma yönergeleri de dahil olmak üzere daha fazla bilgi için bkz. about_Command_Precedence.
Modüller ve Eklentiler
Modüllerden ve ek bileşenlerden oturumunuza komutlar ekleyebilirsiniz. Modüller cmdlet'ler, sağlayıcılar ve işlevler dahil olmak üzere her tür komutu ve değişkenler, diğer adlar ve PowerShell sürücüleri gibi öğeleri ekleyebilir. Ek bileşenler yalnızca cmdlet'ler ve sağlayıcılar ekleyebilir.
Oturumunuzdan bir modülü veya ek bileşeni kaldırmadan önce, hangi komutların kaldırılacağını belirlemek için aşağıdaki komutları kullanın.
Oturumunuzdaki bir cmdlet'in 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, Get-Date cmdlet'in kaynağını bulmak için şunu yazın:
Get-Command Get-Date | Format-List -Property verb,noun,module
Modülle İlgili Uyarılar ve Hatalar
Bir modülün dışarı aktardığı komutlar PowerShell komut adlandırma kurallarına uymalıdır. İçeri aktardığınız modül, adlarında onaylanmamış fiiller bulunan cmdlet'leri veya işlevleri dışarı aktarıyorsa, Import-Module cmdlet aşağıdaki uyarı iletisini görüntüler.
UYARI: İçeri aktarılan bazı komut adları, daha az bulunabilir hale getirebilecek onaylanmamış fiiller içerir. Onaylanan fiillerin listesini görmek için daha fazla ayrıntı veya tür Get-Verb için Verbose parametresini kullanın.
Bu ileti yalnızca bir uyarıdır. Uyumlu olmayan komutlar da dahil olmak üzere modülün tamamı yine içeri aktarılır. İleti modül kullanıcılarına görüntülense de, adlandırma sorunu modül yazarı tarafından düzeltilmelidir.
Uyarı iletisini bastırmak için cmdlet'in DisableNameChecking parametresini Import-Module kullanın.
Yerleşik Modüller ve Ek Bileşenler
PowerShell 2.0'da ve PowerShell 3.0 ve sonraki sürümlerdeki eski stil konak programlarında, PowerShell ile yüklenen temel komutlar her PowerShell oturumuna otomatik olarak eklenen ek bileşenler halinde paketlenir.
PowerShell 3.0'dan başlayarak, ilk oturum durumu API'sini InitialSessionState.CreateDefault2 uygulayan konak programları için Microsoft.PowerShell.Core ek bileşeni varsayılan olarak her oturuma eklenir. Modüller ilk kullanımda otomatik olarak yüklenir.
Uyarı
Cmdlet kullanılarak New-PSSession başlatılan oturumlar da dahil olmak üzere uzak oturumlar, yerleşik komutların ek bileşenler halinde paketlendiği eski stil oturumlardır.
Aşağıdaki modüller (veya ek bileşenler) PowerShell ile yüklenir.
- CimCmdlet'ler
- Microsoft.PowerShell.Archive
- Microsoft.PowerShell.Core
- Microsoft.PowerShell.Diagnostics
- Microsoft.PowerShell.Host
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Security (Microsoft.PowerShell Güvenlik Modülü)
- Microsoft.PowerShell.Utility
- Microsoft.WSMan.Management
- Paket Yönetimi
- PowerShellGet
- PSDesiredStateConfiguration
- PSDiagnostik
- PSReadline (Reklam Hattı)
Modül Olaylarını Günlüğe Kaydetme
PowerShell 3.0'dan başlayarak, modüllerin ve ek bileşenlerin LogPipelineExecutionDetails özelliğini olarak $Trueayarlayarak PowerShell modüllerindeki ve ek bileşenlerindeki cmdlet'ler ve işlevler için yürütme olaylarını kaydedebilirsiniz.
Tüm PowerShell oturumlarında modül günlüğünü etkinleştirmek için Modül Günlüğünü Aç adlı bir Grup İlkesi ayarını da kullanabilirsiniz. Daha fazla bilgi için günlüğe kaydetme ve grup ilkesi makalelerine bakın.