PowerShell Ortam Değişkenleri: Temel Kılavuz
İşin püf noktasını öğrendikten sonra Windows ortam değişkenlerini ayarlamak, ortam değişkenlerini okumak ve yeni ortam değişkenleri oluşturmak için PowerShell'i kullanmak kolaydır. Bu makalede öğreneceğiniz püf noktaları, Windows 10 ortam değişkenlerinin yanı sıra Windows 7 SP1/Windows Server 2008'den sonraki tüm Windows istemcileri/sunucuları için de işe yarayacaktır.
PowerShell, $env: PSDrive'dan Windows ortam değişkenleriyle etkileşimde bulunmak için birçok farklı yol sunar. kayıt defteri ve [System.Environment] .NET sınıfı. Bu adım adım açıklamalı kılavuzda ortam değişkeni kapsamını anlamak da dahil olmak üzere her yöntem hakkında bilgi edineceksiniz.
Varsayımlar
Bu makale boyunca Windows 10'da Windows PowerShell 5.1 kullanacağım. Ancak Windows 7 SP1 veya sonraki sürümlerde Windows PowerShell'in v3'ten sonraki bir sürümüne sahipseniz, size göstermek üzere olduğum teknikler gayet iyi çalışmalıdır.
Ortam Değişkenleri Nelerdir?
Ortam değişkenleri, adından da anlaşılacağı gibi, Windows ve uygulamalar tarafından kullanılan ortam hakkındaki bilgileri depolar. Ortam değişkenlerine Windows Gezgini gibi grafik uygulamalar ve Not Defteri gibi düz metin düzenleyicilerin yanı sıra cmd.exe ve PowerShell aracılığıyla erişilebilir.
Ortam değişkenlerini kullanmak, PowerShell komut dosyalarınızda veya modüllerinizde dosya yollarının, kullanıcı veya bilgisayar adlarının ve çok daha fazlasının sabit kodlanmasını önlemenize yardımcı olur.
Ortak Ortam Değişkenleri
PowerShell'de ortam değişkenleriyle nasıl çalışılacağı hakkında daha fazla bilgi edinmeye başladığınızda birçok farklı değişkenle karşılaşacaksınız. Bazıları diğerlerinden daha faydalıdır. Aşağıda bazı ortak ortam değişkenlerinin ve bunların referans amacıyla kullanımlarının bir listesi bulunmaktadır.
- ClientName
Uzak Masaüstü oturumu aracılığıyla bağlanan uzak bilgisayarın adı.
- SessionName
Bu, geçerli Windows oturumunun işletim sistemi tarafından konsolda çalışıyor olarak kabul edilip edilmediğini belirlemeye yardımcı olur. Konsol oturumları için OturumAdı 'Konsol' olacaktır. Hyper-V Sanal Makinelerine yönelik Gelişmiş Oturum bağlantıları, SessionName'i 'Konsol' olarak bildirmezken, Standart Oturumlar bunu yapar.
- ComputerName
Bilgisayarın adı.
- SystemRoot and Windir
Geçerli Windows kurulumunun yolu.
- ProgramFiles and ProgramFiles(x86)
x64 ve x86 programları için varsayılan konumlar.
- ProgramW6432
Programlar için varsayılan konum; 32/64 bit yeniden yönlendirmeyi önler. Bu değişken yalnızca 64 bit platformda çalışan 32 bit işlemler için geçerlidir. Bu, 64 bitlik bir sistemde 32 bitlik bir PowerShell örneğinin ne zaman çalıştığını tanımlamak için kullanabileceğiniz anlamına gelir.
- UserDNSDomain
Geçerli kullanıcının oturum açtığı Active Directory etki alanının Tam Nitelikli Etki Alanı Adı. Yalnızca alan adı oturum açma işlemleri için mevcuttur.
- UserDomain
Geçerli kullanıcının oturum açtığı etki alanının NETBIOS stili adı. Etki alanı yoksa bir bilgisayar adı olabilir.
- UserDomainRoamingProfile
Varsa, kullanıcının dolaşım profilinin merkezi kopyasının konumu. Yalnızca alan adı oturum açma işlemleri için mevcuttur.
- UserName
-
Şu anda oturum açmış olan kullanıcının adı.
- UserProfile
Geçerli kullanıcının profilinin yerel bilgisayardaki konumu.
Ortam Değişkeni Kapsamları
Ortam değişkenlerinin üç kapsamı vardır. Kapsamları, genel bir resim elde etmek için oluşturulan değişken katmanları olarak düşünün. Bu "katmanlar" bir araya getirildiğinde, Windows'ta çalışan herhangi bir işlem için birçok farklı ortam değişkeni sağlar.
Ortam Değişkeni Kapsamı “Hiyerarşi”
Bu “katmanların” her biri ya birleşir ya da birbirinin üzerine yazılır. Bunlar şuna benzer bir hiyerarşide tanımlanır: makine -> kullanıcı -> işlem; kapsam dahilindeki her değişken, eğer ana değişkende mevcutsa, ana değişkenin üzerine yazar. kapsam.
Örneğin, ortak bir ortam değişkeni TEMP'dir. Bu değişken, Windows'un yerel geçici klasörüne giden klasör yolunu saklar. Bu ortam değişkeni şu şekilde ayarlanmıştır:
- makine kapsamında
C:\WINDOWS\TEMP - kullanıcı kapsamındaki
C:\Users\\AppData\Local\Temp - işlem kapsamındaki
C:\Users\.\AppData\Local\Temp
user kapsamında ayarlanmış bir TEMP ortam değişkeni yoksa sonuç C:\WINDOWS\TEMP olacaktır.
Ortam Değişkeni Kapsam Türleri
Windows'ta üç farklı ortam değişkeni kapsamı vardır.
Makine
Machine kapsamındaki ortam değişkenleri, çalışan Windows örneğiyle ilişkilendirilir. Herhangi bir kullanıcı hesabı bunları okuyabilir, ancak bunların ayarlanması, değiştirilmesi veya silinmesinin yükseltilmiş ayrıcalıklarla yapılması gerekir.
Kullanıcı
user kapsamındaki ortam değişkenleri, geçerli işlemi çalıştıran kullanıcıyla ilişkilendirilir. Kullanıcı değişkenleri, aynı ada sahip makinekapsamlı değişkenlerin üzerine yazar.
Not: Microsoft, Makine ve Kullanıcı kapsamlı ortam değişkeni değerlerinin 2048'den fazla karakter içermemesini önerir.
İşlem
işlem kapsamındaki ortam değişkenleri, makine ve kullanıcı kapsamlarının yanı sıra Windows'un dinamik olarak oluşturduğu bazı değişkenlerin birleşimidir.
Aşağıda, çalışan bir işlemin kullanabileceği ortam değişkenlerinin bir listesi bulunmaktadır. Bu değişkenlerin tümü dinamik olarak oluşturulur.
ALLUSERSPROFILEAPPDATACOMPUTERNAMEHOMEDRIVEHOMEPATHLOCALAPPDATALOGONSERVERPROMPTPUBLICSESSIONSystemDriveSystemRootUSERDNSDOMAINUSERDOMAINUSERDOMAIN_ROAMINGPROFILEUSERNAMEUSERPROFILEKayıt Defterindeki Ortam Değişkenleri
Ortam değişkenleri, biri kullanıcı kapsamı ve diğeri makine kapsamı için olmak üzere iki kayıt defteri konumunda depolanır.
Ortam Değişkenlerini Yönetmek İçin Kayıt Defterini Kullanmayın
Kayıt defterindeki değişkenlerde değişiklik yaparken bir sorun var. Çalışan herhangi bir işlem kayıt defterindeki değişken değişiklikleri görmez. Windows onlara bir değişiklik olduğunu bildirmediği sürece, işlemler yalnızca işlem başlatıldığında mevcut olan kayıt defteri değişkenlerini ve değerlerini görür.
Kayıt defterini doğrudan değiştirmek yerine .NET sınıfını kullanabilirsiniz. .NET [System.Environment] sınıfı, makine ve kullanıcı-kapsamlı ortam değişkenlerini değiştirebilir ve kayıt defteri temizliğini sizin için gerçekleştirebilir.
Ortam değişkenlerini doğrudan kayıt defterinde değiştirmek mümkün olsa da mantıklı değildir. .NET sınıfı daha basit, Microsoft tarafından desteklenen bir yaklaşım sunar. Bu makalenin ilerleyen kısımlarında [System.Environment] .NET sınıfını kullanmayı öğreneceksiniz.
Ortam Değişkeni Kayıt Konumları ve Sorgulama
Umarım kayıt defterini doğrudan değiştirmemeye ikna olmuşsunuzdur, ancak orada ne olduğuna bir göz atmak isterseniz, tüm kullanıcı ortamı değişkenlerini HKEY_CURRENT_USER\Environment anahtarında bulabilirsiniz. Makine kapsamlı ortam değişkenleri HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment konumunda depolanır.
Bu anahtarlardan herhangi birinin içinde REG_SZ veya REG_EXPAND_SZ türündeki kayıt defteri değerleri bulunur. REG_EXPAND_SZ değerleri, değerlerinin bir parçası olarak gömülü ortam değişkenlerini içerir. Değer alındığında bu ortam değişkenleri genişletilir.
Bunu göstermek için REG yardımcı programını kullanın. Bu, Windows'un içerdiği küçük bir komut satırı yardımcı programıdır.
TEMP ortam değişkenini aşağıda görüldüğü gibi sorgulayın. TEMP değişkeninin değerini almak için REG'i QUERY parametresiyle çalıştırın.
> REG QUERY HKCU\Environment /V TEMP
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\TempBazen ortam değişkenlerinin yukarıdaki gibi yüzde sembolleriyle (
%BİLGİSAYARADI%) çevrelenmiş olarak görüntülendiğini fark edeceksiniz. Bu, ortam değişkenlerini cmd.exe ve toplu iş dosyaları aracılığıyla göstermenin eski usul yoludur. PowerShell'in bu biçimi tanımadığını unutmayın.
REG yardımcı programı, kayıt defteri değerinin yerel değerini görmemize olanak tanır. Değer türü REG_EXPAND_SZ'dir ve değer %USERPROFILE% ortam değişkenini içerir.
Kayıt defteri değerini almak için PowerShell'i kullanmayı tercih ederseniz aşağıda gösterildiği gibi Get-Item cmdlet'ini kullanarak bunu yapabilirsiniz.
PS51> Get-ItemProperty -Path HKCU:\Environment -Name TEMP
TEMP : C:\Users\<your username>\AppData\Local\Temp
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Environment
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER
PSChildName : Environment
PSDrive : HKCU
PSProvider : Microsoft.PowerShell.Core\RegistryGUI aracılığıyla Windows Ortam Değişkenlerini Görüntüleme ve Ayarlama
Kullanıcı ve sistem ortamı değişkenlerinin GUI görünümünü görmek için SystemPropertiesAdvanced.exe 'yi PowerShell'den, bir komut isteminden veya Windows Tuşu+R'den çalıştırarak Gelişmiş Sistem Özellikleri sekmesini görüntüleyin . Aşağıdaki resimde vurgulanan EnvironmentVariables düğmesini tıklayın.
Aşağıda gösterilen Ortam Değişkenleri iletişim kutusu, kullanıcı ve makine kapsamlı ortam değişkenlerini görüntülemenize, oluşturmanıza ve değiştirmenize olanak tanır. İletişim kutusunun makine kapsamındaki değişkenlere Sistem değişkenleri olarak atıfta bulunduğunu unutmayın.
Artık ortam değişkenlerini anladığınıza göre, burada ne amaçla bulunduğunuza, bunları PowerShell ile yönetmeye geçelim!
PowerShell'i kullanarak ortam değişkenleriyle etkileşim kurmanın birkaç farklı yolu vardır.
Env:PSDrive ve Sağlayıcı - oturum tabanlı. Yalnızca geçerli PowerShell oturumu için ortam değişkenlerinin değerlerini ayarlar$env:değişkenler - oturum tabanlı. Yalnızca geçerli PowerShell oturumu için ortam değişkenlerinin değerlerini ayarlar[System.Environment].NET Sınıfı - oturumlar ve yeniden başlatmalar arasında kullanıcı ve sistem kapsamlı ortam değişkenlerini kalıcı hale getirmenize olanak tanır
Env: PSDrive ve Sağlayıcı
Ortam değişkenlerini okumanın en iyi yollarından biri, PowerShell sürücüleri (PS sürücüleri) olarak bilinen bir PowerShell konseptidir. PS sürücüsü, ortam değişkenlerini Env: sürücüsü aracılığıyla bir dosya sistemiymiş gibi işlemenize olanak tanır.
Env: Sürücüsüne geçiş
Tüm PS sürücülerinde olduğu gibi, Env:\TEMP, Env:\BİLGİSAYAR ADI vb. yollar aracılığıyla referans verirsiniz. Ancak bazı tuş vuruşlarını kaydetmek için Env'e geçin. : aşağıda gösterildiği gibi herhangi bir dosya sistemi sürücüsü gibi sürün.
PS51> cd Env:
PS51 Env:\>
## or
PS51> Set-Location Env:
PS Env:\>Env: Sürücüsüyle Sekme Tamamlama
Ortam değişkenlerine erişmek için Get-Item ve Get-ChildItem gibi bir dosya sistemine erişmek için kullandığınız komutların aynılarını kullanabilirsiniz. Ancak dosya sistemi yerine Env: sürücüsünü okuyorsunuz.
Ortam değişkenleri bir PS sürücüsünde depolandığından, aşağıda gösterildiği gibi mevcut değişkenler arasında geçiş yapmak için PowerShell'in sekme tamamlama özelliğini kullanabilirsiniz.
Şimdi ortam değişkenleriyle çalışmak için Env: PS sürücüsünü nasıl kullanabileceğinizi gösteren birkaç örneğe geçelim.
Ortam Değişkenlerini Env: ile Listeleme
PS51> Get-Item -Path Env:
PS51> Get-Item -Path Env:USERNAMEEnv: ile Joker Karakter Kullanarak Ortam Değişkenlerini Listeleme
PS51> Get-Item -Path Env:user*Env: ile Ortam Değişkeni Değerlerini Bulma
Bu komutların sonuçları anahtar/değer [System.Collections.DictionaryEntry] .NET nesneleridir. Bu nesneler, ortam değişkeninin adını Ad özelliğinde ve değeri Value özelliğinde tutar.
Get-Item komut referansını parantez içine alarak ve aşağıda gösterildiği gibi Value özelliğine başvurarak bir ortam değişkeninin belirli bir değerine erişebilirsiniz:
PS51> (Get-Item -Path Env:computername).Value
MYCOMPUTERHOSTNAMEYalnızca belirli ortam değişkenlerini döndürmeniz gereken durumlarda, Select-Object ve Where-Object gibi standart PowerShell cmdlet'lerini kullanarak Env: sağlayıcı.
Aşağıdaki örnekte yalnızca BİLGİSAYARADI ortam değişkeni döndürülür.
PS51> Get-ChildItem -Path Env: | Where-Object -Property Name -eq 'COMPUTERNAME'Alternatif bir yöntem olarak Get-Content cmdlet'ini kullanın. Bu cmdlet, ortam değişkeninin değerini içeren bir [String] nesnesini döndürür. Bu nesnenin kullanımı, Ad ve Value özelliklerine sahip bir nesne yerine yalnızca değeri döndürdüğü için daha kolaydır.
PS51> Get-Content -Path Env:\COMPUTERNAMEDemo: Bir Dizeye Ortam Değerlerini Ekleme
Get-Content'i kullanarak bir ortam değişkeninin değerini bulabilir ve örneğin COMPUTERNAME ortam değişkenini bir metin dizesine ekleyebilirsiniz.
PS51> 'Computer Name is: {0}' -f (Get-Content -Path Env:COMPUTERNAME)
Computer Name is: MYCOMPUTEREnv: ile Ortam Değişkeni Ayarlama (Ve Oluşturma)
New-Item cmdlet'ini kullanarak PowerShell ile yeni ortam değişkenleri oluşturun. Ad değeri için ortam değişkeninin adını Env:\ biçiminde sağlayın ve Value parametreyi aşağıda gösterildiği gibi seçin.
PS51> New-Item -Path Env:\MYCOMPUTER -Value MY-WIN10-PC
Name Value
---- -----
MYCOMPUTER MY-WIN10-PCBir ortam değişkeni ayarlamak için Set-item cmdlet'ini kullanın veya halihazırda mevcut değilse yeni bir tane oluşturun. Aşağıda Set-Item cmdlet'ini kullanarak görebilirsiniz, hem ortam değişkenini oluşturabilir, hem de değiştirebilirsiniz.
PS51> Set-Item -Path Env:testvariable -Value "Alpha"Env: ile Ortam Değişkenini Kopyalama
Bazen bir ortam değişkeninin değerini kopyalamanız gereken bir durum ortaya çıkar. Bunu Copy-Item cmdlet'ini kullanarak yapabilirsiniz.
Aşağıda BİLGİSAYARADI değişkeninin değerinin BİLGİSAYARIM'a kopyalanarak mevcut değerinin üzerine yazıldığını görebilirsiniz.
PS51> Get-Item -Path Env:\MYCOMPUTER
Name Value
---- -----
MYCOMPUTER MY-WIN10-PC
PS51> Copy-Item -Path Env:\COMPUTERNAME -Destination Env:\MYCOMPUTER
PS51> Get-Item -Path Env:\MYCOMPUTER
Name Value
---- -----
MYCOMPUTER WIN10-1903Env: ile Ortam Değişkenini Kaldırma
Artık bir ortam değişkenine ihtiyaç duyulmayan durumlar ortaya çıkacaktır. Ortam değişkenlerini üç yöntemden birini kullanarak kaldırabilirsiniz:
- Bir ortam değişkenini boş bir değere ayarlamak için
Set-Itemcmdlet'ini kullanın
PS51> Set-Item -Path Env:\MYCOMPUTER -Value ''Remove-Itemcmdlet'ini kullanın.
PS51> Remove-Item -Path Env:\MYCOMPUTERClear-Itemcmdlet'ini kullanın.
PS51> Clear-Item -Path Env:\MYCOMPUTERBir Ortam Değişkenini Env: ile yeniden adlandırma
Bir ortam değişkeninin adının değiştirilmesinin gerektiği durumlarda, Env: sağlayıcısıyla silip yeniden oluşturmak yerine yeniden adlandırma seçeneğiniz vardır.
Bir ortam değişkeninin değerini korurken adını değiştirmek için Rename-Item cmdlet'ini kullanın. Aşağıda BİLGİSAYARIM değişkeninin değeri korunarak ESKİ BİLGİSAYAR olarak yeniden adlandırıldığını görebileceğinizi görebilirsiniz.
PS51> Rename-Item -Path Env:\MYCOMPUTER -NewName OLDCOMPUTER
PS51> Get-Item -Path OLDCOMPUTER
Name Value
---- -----
OLDCOMPUTER WIN10-1903$Env: Değişkenler
Env: sürücüsünde ortam değişkenlerini dosya olarak ele alma konusunda uzmanlaştıktan sonra, bu bölüm size bunları değişken olarak nasıl ele alacağınızı gösterir. Oturum içi ortam değişkenlerini yönetmenin başka bir yolu da PowerShell İfade Ayrıştırıcısını kullanmaktır. Bu özellik, ortam değişkenlerine erişmek için $Env: kapsamını kullanmanıza olanak tanır.
$Env: ile Ortam Değişkeni Alma
$Env kapsamını kullanarak, aşağıda gösterildiği gibi Get-Item gibi bir komut kullanmadan ortam değişkenlerine doğrudan başvurabilirsiniz.
PS51> $env:computernameBu yöntem, ortam değişkenlerini aşağıdaki gibi dizelere eklemeyi kolaylaştırır:
PS51> "The Computer Name is {0}" -f $env:computername
The Computer Name is WIN10-1809
PS51> "The Computer Name is $env:computername"
The Computer Name is WIN10-1809$Env: ile Ortam Değişkeni Ayarlama veya Oluşturma
Bu yöntemi kullanarak bir ortam değişkenini ayarlamak basittir. Bu aynı zamanda aşağıdaki gibi mevcut değilse yeni bir ortam değişkeni de yaratacaktır.
PS51> $env:testvariable = "Alpha"Mevcut bir değerin üzerine yazmak yerine ekleme yapmak için += sözdizimini kullanın.
PS51> $env:testvariable = "Alpha"
PS51> $env:testvariable += ",Beta"
PS51> $env:testvariable
Alpha,Beta$Env: ile Ortam Değişkenini Kaldırma
Bu yöntemi kullanarak bir ortam değişkenini kaldırmak için değerini boş bir dizeye ayarlamanız yeterlidir.
PS51> $env:testvariable = ''[System.Environment] .NET Sınıfını Kullanma
.NET sınıfı [System.Environment], ortam değişkenlerini almak ve ayarlamak için de yöntemler sunar. Bu, çeşitli ortam kapsamlarına doğrudan erişmenin ve PowerShell oturumlarında geçerli olan ortam değişkenlerini ayarlamanın tek yöntemidir.
Aşağıdaki örneklerin tümünde kapsam belirtilmezse süreç kapsamı varsayılır.
[System.Environment]'ı kullanırken birkaç farklı .NET statik sınıf yöntemini kullanacaksınız. Statik yöntemin ne olduğunu anlamanıza gerek yok. Öğrenmek üzere olduğunuz tekniklerin herhangi birini kullanmak için yalnızca anlamanız gerekir; önce sınıfa ([System.Environment]) ve ardından iki iki nokta üst üste (:) başvurmanız gerekir. :) ve ardından yöntem gelir.
Ortam Değişkenlerini [System.Environment] ile Listeleme
Belirli bir kapsamdaki tüm ortam değişkenlerini görmek istiyorsanız GetEnvironmentVariables yöntemini kullanırsınız. Bu yöntem, tüm ortam değişkenlerini yöntem bağımsız değişkeni olarak (parantez içinde) belirtilen kapsama göre döndürür.
PS51> [System.Environment]::GetEnvironmentVariables('User')
PS51> [System.Environment]::GetEnvironmentVariables('Machine')
PS51> [System.Environment]::GetEnvironmentVariables('Process')
# The same as Process
PS51> [System.Environment]::GetEnvironmentVariables()[System.Environment] ile Tek Ortam Değişkenlerini Alma
Belirli bir ortam değişkenini bulmanız gerekiyorsa bunu iki farklı şekilde yapabilirsiniz.
GetEnvironmentVariables().- önerilmez
GetEnvironmentVariable('<var name>','<scope>')GetEnvironmentVariables()
GetEnvironmentVariables() yöntemini kullanarak, değere başvuruda bulunmak için nokta gösterimini kullanırsınız. [System.Environment] sınıfını ve statik yöntem referansını parantez içine alın, ardından bir nokta ve ardından aşağıdaki gibi ortam değişkeninin adını ekleyin:
PS51> ([System.Environment]::GetEnvironmentVariables()).APPDATAOrtam değişkenlerine bu şekilde referans verirken büyük harf kullanımıyla eşleştiğinden emin olmanız gerektiğini unutmayın! Yukarıdaki örnekte,
appdata'yı kullanarakAPPDATAdeğişkenine başvuruda bulunmayı deneyin. Bunun yerineGetEnvironmentVariable()'ı kullanın.
GetEnvironmentVariable()
Tek ortam değişkenlerini bulmak için GetEnvironmentVariables() yöntemini kullanmak yerine GetEnvironmentVariable() yöntemini kullanın. Büyük harf kullanımıyla sorunu çözer ve kapsamı belirlemenize de olanak tanır.
Bu yöntemi kullanmak için ortam değişkeninin adını ve bu değişkeni aramak istediğiniz kapsamı virgülle ayırarak belirtin.
PS51> [System.Environment]::GetEnvironmentVariable('ComputerName','User')
# Blank
PS51> [System.Environment]::GetEnvironmentVariable('ComputerName','Machine')
# Blank
PS51> [System.Environment]::GetEnvironmentVariable('ComputerName','Process') WIN10-1903
# The same as Process
PS51> [System.Environment]::GetEnvironmentVariable('ComputerName')
WIN10-1903[System.Environment] ile Ortam Değişkenini Ayarlama
Verilen kapsam için bir ortam değişkeninin değerini ayarlamak için SetEnvironmentVariable() yöntemini kullanın veya halihazırda mevcut değilse yeni bir tane oluşturun.
Süreç kapsamındaki değişkenleri ayarlarken, süreç kapsamının geçici olduğunu ancak kullanıcı ve makine kapsamlarındaki değişikliklerin kalıcı olduğunu göreceksiniz.
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha','User')
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha','Process')
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha','Machine')
# The same as Process
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha')Not: SetEnvironmentVariable yönteminin 32767 veya daha fazla karakterden oluşan bir değişken adı veya değeri ile çağrılması bir istisnanın oluşmasına neden olur.
[System.Environment] ile Ortam Değişkenini Kaldırma
Belirli bir kapsam için bir ortam değişkenini, değerini boş bir dizeye ayarlayarak kaldırmak için SetEnvironmentVariable() yöntemini kullanın.
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '', 'User')
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '', 'Process')
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '', 'Machine')
# The same as process
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '')Yararlı PowerShell Ortam Değişkenleri
Diğer birçok Windows uygulaması gibi PowerShell'in de kendine ait bazı ortam değişkenleri vardır. Bilinmesi gereken iki yararlı ortam değişkeni PSExecutionPolicyPreference ve PSModulePath'tir.
PSExecutionPolicyPreference
PSExecutionPolicyPreference ortam değişkeni geçerli PowerShell yürütme ilkesini saklar. Oturuma özel bir PowerShell yürütme ilkesi şu şekilde ayarlanırsa oluşturulur:
Set-ExecutionPolicycmdlet'iniProcess'inScopeparametresiyle çalıştırma- Oturum için bir politika ayarlamak amacıyla
ExecutionPolicykomut satırı parametresini kullanarak yeni bir oturum başlatmak içinpowershell.exeyürütülebilir dosyasını çalıştırmak.
PSModulePath
PSModulePath ortam değişkeni, tam yol belirtmezseniz PowerShell'in modülleri aradığı yolu içerir. Bireysel dizin yollarının noktalı virgülle ayrıldığı standart PATH ortam değişkenine çok benzer şekilde oluşturulmuştur.
PS51> $env:PSModulePath
C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\ModulesHızlı ipucu: $env:PSModulePath.split(';') kullanarak her yolu ayrı ayrı işleyecek bir dize dizisi elde etmek için her klasörü bölün.
Özet
Ortam değişkenleri, çalışan bir sistem hakkında bilgi almak veya oturumlar ve yeniden başlatmalar arasında bilgi depolamak için yararlı bir yöntemdir. İster yalnızca varsayılan Windows işletim sistemi ortam değişkenlerini okuyup kendinizinkini oluşturuyor olun, artık bunları PowerShell ile çeşitli yolları kullanarak yönetebilirsiniz!
Daha fazla okuma
- about_Environment_Variables
- Microsoft belgelerindeki .NET [System.Environment] Sınıfı
- PowerShell dize biçimini ve genişleyen dizeleri öğrenin
