Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

PowerShell: रजिस्ट्री कुंजियों या पैरामीटर्स को प्राप्त, संशोधित, बनाएं और हटाएं

रजिस्ट्री संपादक (regedit.exe) और कमांड-लाइन उपयोगिता reg.exe Windows में रजिस्ट्री तक पहुंचने और प्रबंधित करने के एकमात्र टूल नहीं हैं। PowerShell प्रशासक को रजिस्ट्री के साथ इंटरैक्ट करने के लिए बड़ी संख्या में टूल प्रदान करता है। PowerShell का उपयोग करके, आप रजिस्ट्री कुंजी/पैरामीटर्स बना सकते हैं, संशोधित कर सकते हैं या हटा सकते हैं, मान खोज सकते हैं, और रिमोट कंप्यूटर पर रजिस्ट्री से कनेक्ट कर सकते हैं।

PowerShell के साथ Windows रजिस्ट्री को फ़ाइल सिस्टम की तरह नेविगेट करें

PowerShell में रजिस्ट्री के साथ काम करना स्थानीय डिस्क पर सामान्य फ़ाइलों के साथ काम करने के समान है। मुख्य अंतर यह है कि इस अवधारणा में रजिस्ट्री कुंजियाँ फ़ाइलों के अनुरूप हैं, और रजिस्ट्री पैरामीटर्स इन फ़ाइलों के गुण हैं।

अपने कंप्यूटर पर उपलब्ध ड्राइव्स की सूची प्रदर्शित करें:

get-psdrive

ध्यान दें कि ड्राइव्स (असाइन किए गए ड्राइव अक्षरों के साथ) के बीच रजिस्ट्री प्रदाता के माध्यम से उपलब्ध विशेष डिवाइस हैं - HKCU (HKEY_CURRENT_USER) और HKLM (HKEY_LOCAL_MACHINE)। आप रजिस्ट्री ट्री को उसी तरह ब्राउज़ कर सकते हैं जैसे आप अपने ड्राइव्स को नेविगेट करते हैं। किसी विशिष्ट रजिस्ट्री हाइव तक पहुंचने के लिए HKLM:\ और HKCU:\ का उपयोग किया जाता है।

cd HKLM:\
Dir -ErrorAction SilentlyContinue

इस प्रकार, आप उन्हीं PowerShell कमांडलेट्स का उपयोग करके रजिस्ट्री कुंजियों और उनके पैरामीटर्स तक पहुंच सकते हैं जिनका उपयोग आप फ़ाइलों और फ़ोल्डर्स को प्रबंधित करने के लिए करते हैं।

रजिस्ट्री कुंजियों को संदर्भित करने के लिए, xxx-Item वाले कमांडलेट्स का उपयोग करें:

  • Get-Item - रजिस्ट्री कुंजी प्राप्त करें
  • New-Item - नई रजिस्ट्री कुंजी बनाएं
  • Remove-Item - रजिस्ट्री कुंजी हटाएं

रजिस्ट्री पैरामीटर्स को रजिस्ट्री कुंजी के गुणों के रूप में माना जाना चाहिए (फ़ाइल/फ़ोल्डर गुणों के समान)। xxx-ItemProperty कमांडलेट्स का उपयोग रजिस्ट्री पैरामीटर्स को प्रबंधित करने के लिए किया जाता है:

  • Get-ItemProperty - रजिस्ट्री पैरामीटर का मान प्राप्त करें
  • Set-ItemProperty - रजिस्ट्री पैरामीटर का मान बदलें
  • New-ItemProperty - रजिस्ट्री पैरामीटर बनाएं
  • Rename-ItemProperty - पैरामीटर का नाम बदलें
  • Remove-ItemProperty - रजिस्ट्री पैरामीटर हटाएं

आप निम्न दो कमांड्स में से किसी एक का उपयोग करके विशिष्ट रजिस्ट्री कुंजी पर नेविगेट कर सकते हैं (उदाहरण के लिए, स्वचालित ड्राइवर अपडेट की सेटिंग्स के लिए जिम्मेदार):

cd HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching
या
Set-Location -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching

PowerShell के माध्यम से रजिस्ट्री पैरामीटर मान प्राप्त करें

कृपया ध्यान दें कि रजिस्ट्री कुंजी में संग्रहीत पैरामीटर्स नेस्टेड ऑब्जेक्ट्स नहीं हैं, बल्कि एक विशिष्ट रजिस्ट्री कुंजी का गुण हैं। किसी भी रजिस्ट्री कुंजी में कितने भी पैरामीटर्स हो सकते हैं।

वर्तमान रजिस्ट्री कुंजी की सामग्री को कमांड का उपयोग करके सूचीबद्ध करें:

dir
या
Get-ChildItem

कमांड ने नेस्टेड रजिस्ट्री कुंजियों और उनके गुणों के बारे में जानकारी प्रदर्शित की है। लेकिन SearchOrderConfig पैरामीटर के बारे में जानकारी प्रदर्शित नहीं की, जो वर्तमान कुंजी का एक गुण है।

रजिस्ट्री कुंजी के पैरामीटर्स प्राप्त करने के लिए Get-Item कमांडलेट का उपयोग करें:

Get-Item .
या
Get-Item –Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching

जैसा कि आप देख सकते हैं, DriverSearching कुंजी में केवल एक पैरामीटर है - SearchOrderConfig जिसका मान 1 है।

रजिस्ट्री कुंजी पैरामीटर का मान प्राप्त करने के लिए, Get-ItemProperty कमांडलेट का उपयोग करें।

$DriverUpdate = Get-ItemProperty –Path ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching’
$DriverUpdate.SearchOrderConfig

हमने प्राप्त किया कि SearchOrderConfig पैरामीटर का मान 1 है।

PowerShell के साथ रजिस्ट्री मान बदलना

SearchOrderConfig रजिस्ट्री पैरामीटर का मान बदलने के लिए, Set-ItemProperty कमांडलेट का उपयोग करें:

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' -Name SearchOrderConfig -Value 0

सुनिश्चित करें कि पैरामीटर मान बदल गया है:

Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' -Name SearchOrderConfig

PowerShell के साथ नई रजिस्ट्री कुंजी या पैरामीटर कैसे बनाएं?

नई रजिस्ट्री कुंजी बनाने के लिए, New-Item कमांड का उपयोग करें। आइए NewKey नाम से एक नई कुंजी बनाएं:

$HKCU_Desktop= "HKCU:\Control Panel\Desktop"
New-Item –Path $HKCU_Desktop –Name NewKey

अब आइए एक नई रजिस्ट्री कुंजी में एक नया पैरामीटर बनाएं। मान लीजिए हमें REG_SZ प्रकार का एक नया स्ट्रिंग पैरामीटर SuperParamString मान filetmp1.txt के साथ बनाने की आवश्यकता है:

New-ItemProperty -Path $HKCU_Desktop\NewKey -Name "SuperParamString" -Value ”filetmp1.txt” -PropertyType "String"

आप रजिस्ट्री पैरामीटर्स के लिए निम्न डेटा प्रकारों का उपयोग कर सकते हैं:

  • String (REG_SZ)
  • ExpandString (REG_EXPAND_SZ)
  • MultiString (REG_MULTI_SZ)
  • Binary (REG_BINARY)
  • DWord (REG_DWORD)
  • Qword (REG_QWORD)
  • Unknown (असमर्थित रजिस्ट्री डेटा प्रकार)

सुनिश्चित करें कि नई कुंजी और पैरामीटर रजिस्ट्री में दिखाई दिए हैं।

रजिस्ट्री कुंजी मौजूद है या नहीं, इसकी जांच कैसे करें?

यदि आपको जांचने की आवश्यकता है कि कोई विशिष्ट रजिस्ट्री कुंजी मौजूद है या नहीं, तो Test-Path कमांडलेट का उपयोग करें:

Test-Path 'HKCU:\Control Panel\Desktop\NewKey'

निम्न PowerShell स्क्रिप्ट जांचेगी कि कोई विशिष्ट रजिस्ट्री मान मौजूद है या नहीं, और यदि नहीं, तो इसे बनाएगी।

regkey='HKCU:\Control Panel\Desktop\NewKey'
$regparam='testparameter'
if (Get-ItemProperty -Path $regkey -Name $regparam -ErrorAction Ignore)
{ write-host 'The registry entry already exist' }
else
{ New-ItemProperty -Path $regkey -Name $regparam -Value ”woshub_test” -PropertyType "String" }

Copy-Item कमांडलेट का उपयोग करके, आप एक रजिस्ट्री कुंजी से दूसरी में प्रविष्टियों को कॉपी कर सकते हैं:

$source='HKLM:\SOFTWARE\7-zip\'
$dest = 'HKLM:\SOFTWARE\backup'
Copy-Item -Path $source -Destination $dest -Recurse

यदि आप सबकुंजियों सहित सब कुछ कॉपी करना चाहते हैं, तो –Recurse स्विच जोड़ें।

रजिस्ट्री कुंजी या पैरामीटर हटाना

Remove-ItemProperty कमांड का उपयोग रजिस्ट्री कुंजी में एक पैरामीटर को हटाने के लिए किया जाता है। आइए पहले बनाए गए पैरामीटर SuperParamString को हटा दें:

$HKCU_Desktop= "HKCU:\Control Panel\Desktop"
Remove-ItemProperty –Path $HKCU_Desktop\NewKey –Name "SuperParamString"

आप संपूर्ण रजिस्ट्री कुंजी को उसकी सभी सामग्री के साथ हटा सकते हैं:

Remove-Item –Path $HKCU_Desktop\NewKey –Recurse

नोट: –Recurse स्विच इंगित करता है कि सभी सबकुंजियों को पुनरावर्ती रूप से हटाया जाना चाहिए।

रजिस्ट्री कुंजी में सभी आइटम्स को हटाने के लिए (लेकिन कुंजी को नहीं):

Remove-Item –Path $HKCU_Desktop\NewKey\* –Recurse

रजिस्ट्री कुंजी या पैरामीटर का नाम कैसे बदलें?

आप निम्न कमांड के साथ रजिस्ट्री पैरामीटर का नाम बदल सकते हैं:

Rename-ItemProperty –path ‘HKCU:\Control Panel\Desktop\NewKey’ –name "SuperParamString" –newname “OldParamString”

उसी तरह, आप रजिस्ट्री कुंजी का नाम बदल सकते हैं:

Rename-Item -path 'HKCU:\Control Panel\Desktop\NewKey' OldKey

PowerShell का उपयोग करके रजिस्ट्री में कीवर्ड खोजें

PowerShell आपको रजिस्ट्री खोजने की अनुमति देता है। निम्न HKCU:\Control Panel\Desktop में उन पैरामीटर्स को खोजता है जिनके नाम में *dpi* कुंजी होती है।

$Path = (Get-ItemProperty ‘HKCU:\Control Panel\Desktop’)
$Path.PSObject.Properties | ForEach-Object {
If($_.Name -like '*dpi*'){
Write-Host $_.Name ' = ' $_.Value
}
}

किसी विशिष्ट नाम वाली रजिस्ट्री कुंजी खोजने के लिए:

Get-ChildItem -path HKLM:\ -recurse -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*woshub*"}

PowerShell के साथ रजिस्ट्री कुंजी अनुमतियाँ सेट करना

आप Get-ACL कमांडलेट का उपयोग करके वर्तमान रजिस्ट्री कुंजी अनुमतियाँ प्राप्त कर सकते हैं (Get-ACL कमांडलेट आपको फ़ाइलों और फ़ोल्डर्स पर NTFS अनुमतियों को प्रबंधित करने की भी अनुमति देता है)।

$rights = Get-Acl -Path 'HKCU:\Control Panel\Desktop\NewKey'
$rights.Access.IdentityReference

निम्न उदाहरण में, हम इस रजिस्ट्री कुंजी में ACL को संशोधित करेंगे ताकि अंतर्निहित उपयोगकर्ता समूह को लिखने की पहुंच दी जा सके।

वर्तमान अनुमतियाँ प्राप्त करें:

$rights = Get-Acl -Path 'HKCU:\Control Panel\Desktop\NewKey'

उपयोगकर्ता या समूह निर्दिष्ट करें जिसे आप एक्सेस देना चाहते हैं:

$idRef = [System.Security.Principal.NTAccount]"BuiltIn\Users"

एक्सेस स्तर चुनें:

$regRights = [System.Security.AccessControl.RegistryRights]::WriteKey

अनुमति विरासत सेटिंग्स सेट करें:

$inhFlags = [System.Security.AccessControl.InheritanceFlags]::None
$prFlags = [System.Security.AccessControl.PropagationFlags]::None

एक्सेस प्रकार (Allow/Deny):

$acType = [System.Security.AccessControl.AccessControlType]::Allow

एक एक्सेस नियम बनाएं:

$rule = New-Object System.Security.AccessControl.RegistryAccessRule ($idRef, $regRights, $inhFlags, $prFlags, $acType)

वर्तमान ACL में नया नियम जोड़ें:

$rights.AddAccessRule($rule)

रजिस्ट्री कुंजी पर नई अनुमतियाँ लागू करें:

$rights | Set-Acl -Path 'HKCU:\Control Panel\Desktop\NewKey'

सुनिश्चित करें कि नया समूह रजिस्ट्री कुंजी के ACL में दिखाई देता है।

PowerShell के माध्यम से रिमोट कंप्यूटर से रजिस्ट्री मान प्राप्त करना

PowerShell आपको रिमोट कंप्यूटर की रजिस्ट्री तक पहुंचने की अनुमति देता है। आप WinRM (Invoke-Command या Enter-PSSession) का उपयोग करके रिमोट कंप्यूटर से कनेक्ट कर सकते हैं। रिमोट कंप्यूटर से रजिस्ट्री पैरामीटर का मान प्राप्त करने के लिए:

Invoke-Command –ComputerName srv-fs1 –ScriptBlock {Get-ItemProperty -Path 'HKLM:\System\Setup' -Name WorkingDirectory}

या रिमोट रजिस्ट्री कनेक्शन का उपयोग करके (RemoteRegistry सेवा सक्षम होनी चाहिए):

$Server = "lon-fs1"
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Server)
$RegKey= $Reg.OpenSubKey("System\Setup")
$RegValue = $RegKey.GetValue("WorkingDirectory")

सुझाव: यदि आपको कई डोमेन कंप्यूटर्स पर एक निश्चित रजिस्ट्री पैरामीटर बनाने/संशोधित करने की आवश्यकता है, तो GPO सुविधाओं का उपयोग करना आसान है।

इस प्रकार हमने PowerShell का उपयोग करके Windows रजिस्ट्री प्रविष्टियों तक पहुंचने और प्रबंधित करने के विशिष्ट उदाहरणों को कवर किया है। आप उन्हें अपने ऑटोमेशन स्क्रिप्ट्स में उपयोग कर सकते हैं।

  1. विंडोज 10 में रजिस्ट्री में परिवर्तन कब सेव होते हैं और क्यों? विंडोज 10 में रजिस्ट्री में परिवर्तन कब सेव होते हैं और क्यों?

    जब आप मैन्युअल रूप से विंडोज रजिस्ट्री में परिवर्तन करते हैं या जब किसी सॉफ़्टवेयर या डिवाइस ड्राइवर की इंस्टॉलेशन या अनइंस्टॉलेशन के दौरान विंडोज रजिस्ट्री में परिवर्तन किए जाते हैं, तो विंडोज 10 या विंडोज सर्वर रजिस्ट्री में तुरंत परिवर्तन नहीं करता है। रजिस्ट्री में परिवर्तन कब सेव होते हैं? रजि

  1. मैक पर कीज़ को कैसे हटाएं, ले जाएं, स्वैप और बदलें मैक पर कीज़ को कैसे हटाएं, ले जाएं, स्वैप और बदलें

    हमारे सरल मैक कीबोर्ड मरम्मत गाइड के साथ अपने iMac, Mac या MacBook लैपटॉप पर कीज़ को हटाना, स्वैप करना, बदलना, मरम्मत करना और साफ करना सीखें। साथ ही: मैक OS X और मुफ्त मैक टूल्स का उपयोग करके कुंजी कार्यों को कैसे स्वैप करें। मैं अपने मैक कीबोर्ड से कीज़ कैसे हटाऊं, फिर बाद में उन्हें बदलूं? मैं कॉ

  1. Windows Registry मास्टर करें: कीज़ और वैल्यूज़ को सुरक्षित रूप से जोड़ें, संशोधित करें और हटाएं Windows Registry मास्टर करें: कीज़ और वैल्यूज़ को सुरक्षित रूप से जोड़ें, संशोधित करें और हटाएं

    रजिस्ट्री एडिटर: Windows कंप्यूटर की रीढ़ Registry Editor में इंस्टॉल्ड प्रोग्राम्स और हार्डवेयर के लिए जानकारी, सेटिंग्स, विकल्प और अन्य वैल्यूज होती हैं। सामान्य यूजर रजिस्ट्री एडिटर का उपयोग नहीं करता। लेकिन यदि आप प्रो हैं और Windows एडवांस्ड सेटिंग्स जानते हैं, तो आप जानते हैं कि इसका उपयोग कैस