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
Bu makalede ortam değişkeninin amacı ve kullanımı $Env:PSModulePath açıklanmaktadır.
Uzun açıklama
Ortam $Env:PSModulePath değişkeni, klasör konumlarının listesini içerir. PowerShell, her klasörde modül (.psd1 veya .psm1) dosyalarını özyinelemeli olarak arar.
Varsayılan olarak, atanan $Env:PSModulePath geçerli konumlar şunlardır:
- CurrentUser kapsamına yüklenen modüller içinde
$HOME\Documents\WindowsPowerShell\Modulesdepolanır. - AllUsers kapsamında yüklü modüller içinde
$Env:ProgramFiles\WindowsPowerShell\Modulesdepolanır. - içinde depolanan
$PSHOME\ModulesWindows PowerShell ile birlikte gelen modüller.$Env:SystemRoot\System32\WindowsPowerShell\1.0\Modules
PowerShell PSModulePath yapısı
değeri $Env:PSModulePath , PowerShell her başlatıldığında oluşturulur.
Değer, PowerShell sürümüne ve nasıl başlattığınıza göre değişir.
Windows PowerShell başlatma
Windows PowerShell, başlangıçta oluşturmak PSModulePath için aşağıdaki mantığı kullanır:
- Yoksa
PSModulePathCurrentUser, AllUsers ve modül yollarını birleştirin$PSHOME - Varsa
PSModulePath:- Modüller yolu içeriyorsa
PSModulePath$PSHOME:-
AllUsers modül yolu modül yolundan önce
$PSHOMEeklenir
-
AllUsers modül yolu modül yolundan önce
- başka:
- Kullanıcı konumu kasıtlı olarak kaldırdığından
PSModulePath, yalnızca tanımlandığı gibi kullanın$PSHOME
- Kullanıcı konumu kasıtlı olarak kaldırdığından
- Modüller yolu içeriyorsa
CurrentUser modül yolu, yalnızca Kullanıcı kapsamı $Env:PSModulePath yoksa önek olarak eklenir. Aksi takdirde, Kullanıcı kapsamı $Env:PSModulePath tanımlandığı gibi kullanılır.
Modül arama davranışı
PowerShell, MODÜL ( veya .psd1) dosyaları için PSModulePath'teki .psm1 her klasörü özyinelemeli olarak arar. Bu arama düzeni, aynı modülün birden çok sürümünün farklı klasörlere yüklenmesini sağlar. Örneğin:
Directory: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 8/14/2020 5:56 PM 1.0.0.1
d---- 9/13/2019 3:53 PM 2.1.2
Varsayılan olarak PowerShell, birden çok sürüm bulunduğunda modülün en yüksek sürüm numarasını yükler. Belirli bir sürümü yüklemek için FullyQualifiedName parametresiyle kullanın.Import-Module Daha fazla bilgi için bkz . Import-Module.
PSModulePath'i Değiştirme
Çoğu durumda modülleri varsayılan modül konumlarına yüklemeniz gerekir. Ancak ortam değişkeninin PSModulePath değerini değiştirmeniz gerekebilir.
Örneğin, geçerli oturumun dizinini C:\Program Files\Fabrikam\Modules$Env:PSModulePath geçici olarak eklemek için şunu yazın:
$Env:PSModulePath = $Env:PSModulePath+";C:\Program Files\Fabrikam\Modules"
Değerini her oturumda değiştirmek PSModulePath için, değerleri depolayarak PSModulePath kayıt defteri anahtarını düzenleyin.
PSModulePath Değerler kayıt defterinde genişletilmemiş dizeler olarak depolanır. Değerleri kalıcı olarak genişletilmişPSModulePathkaydetmekten kaçınmak için alt anahtardaki yöntemini kullanın GetValue() ve değeri doğrudan düzenleyin.
Aşağıdaki örnek, genişletilmemiş dizeleri genişletmeden ortam değişkeninin C:\Program Files\Fabrikam\Modules değerine yol eklerPSModulePath.
$key = (Get-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment')
$path = $key.GetValue('PSModulePath','','DoNotExpandEnvironmentNames')
$path += ';%ProgramFiles%\Fabrikam\Modules'
$key.SetValue('PSModulePath',$path,[Microsoft.Win32.RegistryValueKind]::ExpandString)
Kullanıcı ayarına yol eklemek için aşağıdaki kodu kullanın:
$key = (Get-Item 'HKCU:\Environment')
$path = $key.GetValue('PSModulePath','','DoNotExpandEnvironmentNames')
$path += ';%ProgramFiles%\Fabrikam\Modules'
$key.SetValue('PSModulePath',$path,[Microsoft.Win32.RegistryValueKind]::ExpandString)
Ayrıca bakınız
PowerShell