4.09.2024

Powershell ve Windows Kayıt Defteri

Powershell'de, normal bir depolama aygıtlarının dışında da bazı sürücüler var. Bunlara PSDrive deniyor. Bütün PSDrive nesnelerinin listesini almak için

PS> Get-PSDrive
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                 170,45        129,55 FileSystem    C:\
Cert                                   Certificate   \
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

Burada C gibi sürücüler, komut satırı ve dosya gezgininden de aşina olduğumuz gibi dosya sistemi sürücüleri. Ancak Cert, Env, HKCU ve HKLM gibi sürücüler Powershell'e özgü sürücüler. Örneğin Cert ile sistemimizdeki sertifikalara, Env ile ortam değişkenlerine (environment variables), HKCU ve HKLM ile kayıt defterine erişebiliyoruz. Ancak kayıt defteri HKCU (HKEY_CURRENT_USER) ve HKLM'den (HKEY_LOCAL_MACHINE) ibaret değil. Örneğin HKEY_CLASSES_ROOT ve HKEY_CURRENT_CONFIG gibi hive'lar da var. Bunlara erişmek için yeni PSDrive nesneleri oluşturmak mümkün:

New-PSDrive -Name "HKCR" -PSProvider Registry -Root "HKEY_CLASSES_ROOT"

Bundan sonra bu sürücü üzerinde bir değere erişmek için

Get-ItemProperty -Path "HKCR:\.txt\" -Name "(default)"

kullanılabilir. New-PSDrive cmdlet'i aslında ağ sürücüleri ve diğer bazı şekillerde kullanılabiliyor. Örneğin:

New-PSDrive -Name "K" -PSProvider FileSystem -Root "\\sunucu\paylasim"
New-PSDrive -Name "M" -PSDrive FileSystem -Root "C:\Users\metin\Documents"

Ancak bu şekilde geçici sürücüler oluşturulur, mevcut powershell penceresi kapatıldığında oluşturulan sürücüler de kaybolur. Kalıcı olması için -Persist parametresi de eklenmeli.

New-PSDrive -Name "HKCR" -PSProvider Registry -Root "HKEY_CLASSES_ROOT" -Persist 

Bu parametreyi de sadece ikinci örnekte kullanamadığımızı öğrendim. Bu işlem sanal sürücüler yöntemi ile de yapılabilir. Örneğin C:\Users\metin\Documents klasörünü M: sürücüsü olarak kullanabilmek için

subst.exe M: C:\Users\metin\Documents

kullanabiliriz. Ama bu yöntem de kalıcı değil. Kalıcı yapmak için bunu profil dosyamıza iki yöntemden birini eklemek gerek.

Hiç yorum yok: