PuTTy सत्र सूची को निर्यात / आयात कैसे करें?


678

क्या इसे करने का कोई तरीका है?

या मुझे रजिस्ट्री से मैन्युअल रूप से हर रिकॉर्ड लेना होगा?

जवाबों:


1238

निर्यात

cmd.exe, शीघ्र संकेत की आवश्यकता है :

केवल सत्र:

regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions

सभी सेटिंग्स:

regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham

शक्ति कोशिका:

केवल सत्र:

reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")

सभी सेटिंग्स:

reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")

आयात

*.regफ़ाइल पर डबल-क्लिक करें और आयात स्वीकार करें।

वैकल्पिक तरीके:

cmd.exeकी आवश्यकता है , उन्नत कमांड प्रॉम्प्ट:

regedit /i putty-sessions.reg
regedit /i putty.reg

शक्ति कोशिका:

reg import putty-sessions.reg
reg import putty.reg

नोट : अपने उपयोगकर्ता नाम के साथ प्रतिस्थापित न SimonTatham करें।

नोट : यह regवर्तमान उपयोगकर्ता के डेस्कटॉप पर एक फ़ाइल बनाएगा ।

नोट : यह संबंधित SSH कुंजियों को निर्यात नहीं करेगा ।


3
@NamGVU ऐसा इसलिए है क्योंकि पथ में रिक्त स्थान वाला एक फ़ोल्डर है। एक है कि यह नहीं था करने के लिए ले जाएँ।
m0nhawk 19

3
@NamGVU अपने उपयोगकर्ता नाम के साथ% userprofile% को प्रतिस्थापित न करें, इसे इस रूप में छोड़ दें।
असर 24

4
आप इसे एक अलग मशीन पर अलग पुट्टी में कैसे आयात करते हैं?
पीट

4
ओह ठीक है, डबल क्लिक करें ... मिल गया
पीट

7
दूसरी कमांड ने विंडोज 7 पर मेरे लिए काम किया, हालांकि, मुझे प्रशासक के रूप में सीएमडी को चलाने की आवश्यकता थी।
विनम्र चूहा

46

जब मैंने अन्य समाधानों की कोशिश की तो मुझे यह त्रुटि मिली:

Registry editing has been disabled by your administrator.

Phooey उस के लिए, मैं कहता हूँ!

मैंने PuTTY सेटिंग्स को एक्सपोर्ट और इम्पोर्ट करने के लिए नीचे पॉवरशेल स्क्रिप्ट्स को एक साथ रखा। निर्यात की गई फ़ाइल एक .reg फ़ाइल है और अनुमति होने पर सफाई से आयात करेगा, अन्यथा इसे लोड करने के लिए import.ps1 का उपयोग करें।

चेतावनी : इस तरह रजिस्ट्री के साथ खिलवाड़ करना एक बुरा आइडिया है, और मैं वास्तव में नहीं जानता कि मैं क्या कर रहा हूं। अपने स्वयं के जोखिम पर नीचे दिए गए लिपियों का उपयोग करें, और अपने आईटी विभाग को अपनी मशीन को फिर से छवि देने के लिए तैयार रहें और आपसे असहज प्रश्न पूछें कि आप क्या कर रहे थे।

स्रोत मशीन पर:

.\export.ps1

लक्ष्य मशीन पर:

.\import.ps1 > cmd.ps1
# Examine cmd.ps1 to ensure it doesn't do anything nasty
.\cmd.ps1

export.ps1

# All settings
$registry_path = "HKCU:\Software\SimonTatham"
# Only sessions
#$registry_path = "HKCU:\Software\SimonTatham\PuTTY\Sessions"
$output_file = "putty.reg"

$registry = ls "$registry_path" -Recurse

"Windows Registry Editor Version 5.00" | Out-File putty.reg
"" | Out-File putty.reg -Append

foreach ($reg in $registry) {
  "[$reg]" | Out-File putty.reg -Append
  foreach ($prop in $reg.property) {
    $propval = $reg.GetValue($prop)
    if ("".GetType().Equals($propval.GetType())) {
      '"' + "$prop" + '"' + "=" + '"' + "$propval" + '"' | Out-File putty.reg -Append
    } elseif ($propval -is [int]) {
      $hex = "{0:x8}" -f $propval
      '"' + "$prop" + '"' + "=dword:" + $hex | Out-File putty.reg -Append
    }
  }
  "" | Out-File putty.reg -Append
}

import.ps1

$input_file = "putty.reg"

$content = Get-Content "$input_file"

"Push-Location"
"cd HKCU:\"

foreach ($line in $content) { 
  If ($line.StartsWith("Windows Registry Editor")) {
    # Ignore the header
  } ElseIf ($line.startswith("[")) {
    $section = $line.Trim().Trim('[', ']')
    'New-Item -Path "' + $section + '" -Force' | %{ $_ -replace 'HKEY_CURRENT_USER\\', '' }
  } ElseIf ($line.startswith('"')) {
    $linesplit = $line.split('=', 2)
    $key = $linesplit[0].Trim('"')
    if ($linesplit[1].StartsWith('"')) {
      $value = $linesplit[1].Trim().Trim('"')
    } ElseIf ($linesplit[1].StartsWith('dword:')) {
      $value = [Int32]('0x' + $linesplit[1].Trim().Split(':', 2)[1])
      'New-ItemProperty "' + $section + '" "' + $key + '" -PropertyType dword -Force' | %{ $_ -replace 'HKEY_CURRENT_USER\\', '' }
    } Else {
      Write-Host "Error: unknown property type: $linesplit[1]"
      exit
    }
    'Set-ItemProperty -Path "' + $section + '" -Name "' + $key + '" -Value "' + $value + '"' | %{ $_ -replace 'HKEY_CURRENT_USER\\', '' }
  }
}

"Pop-Location"

गैर-मुहावरेदार कोड के लिए माफी, मैं पॉवर्सशेल से बहुत परिचित नहीं हूं। सुधारों का स्वागत है!


3
पूरी तरह से काम किया, क्या एक समय सेवर। एक जोड़ ... मुझे सेटअप अनुमतियों के लिए यहां निर्देशों का पालन करना पड़ा: stackoverflow.com/questions/4037939/…
जैकब ज़्वियर्स

1
यह एक बड़ी मदद थी! मेरे पास अलग-अलग रजिस्ट्री स्थान थे बस दोनों में पथ को संपादित करना था और वह यह था :)
सिडजे

रुको, तो PowerShell समूह नीति को परिधि करता है? आश्चर्य है कि कब तक कि पैच हो जाता है।
क्वोलोन प्रश्न

यकीन नहीं है, लेकिन हम चार साल और गिनती में हैं;)
dwurf

मैंने कोशिश की मेरे लिए काम नहीं किया।
वेलमुरुगन

44
  1. लॉन्च लॉन्च करें, फिर ओपन ड्रॉप डाउन विंडो में टाइप करें: regedit

  2. विंडो के एक्सप्लोरर की तरह ही नेविगेट करें:
    HKEY_CURRENT_USER \ Software \ SimonTatham

  3. 'सिमोनथम' कुंजी (डायरेक्टरी आइकन) पर राइट क्लिक करें, निर्यात
    करें फ़ाइल को एक नाम दें (कहें) putty.reg और
    बाद में उपयोग के लिए इसे अपने स्थान पर सहेजें ।
  4. रजिस्ट्री संपादक को बंद करें।

किया हुआ।


34

यदि आप सेटिंग्स को आयात करना चाहते हैं तो आप फ़ाइल का PuTTY Portableउपयोग कर सकते हैं putty.reg

बस इसे इस रास्ते पर रख दो [path_to_Your_portable_apps]PuTTYPortable\Data\settings\putty.reg। कार्यक्रम इसे आयात करेगा


23

आप में से जिनको ऑफ़लाइन रजिस्ट्री फ़ाइल से पुट्टी आयात करने की आवश्यकता होती है, जैसे जब आप दुर्घटनाग्रस्त सिस्टम से उबर रहे होते हैं या बस एक नई मशीन पर जा रहे होते हैं और उस पुरानी ड्राइव से डेटा हड़पते हैं, तो एक और उपाय ध्यान देने योग्य है:

http://www.nirsoft.net/utils/registry_file_offline_export.html

यह महान और मुफ्त कंसोल एप्लिकेशन संपूर्ण रजिस्ट्री या केवल एक विशिष्ट रजिस्ट्री कुंजी निर्यात करेगा। मेरे मामले में मैंने बस रजिस्ट्री फाइल को एक पुराने ड्राइव से एक ही डायरेक्टरी में एक्सपोर्ट टूल के रूप में कॉपी किया और फिर मैंने एडमिनिस्ट्रेटर के रूप में CMD विंडो रन में कमांड और सिंटैक्स का उपयोग किया:

RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER \ Software \ SimonTatham"

.Reg फ़ाइल आयात करने और पुट्टी शुरू करने के बाद सब कुछ था। सरल और कुशल।


2
यह उत्तर ऑफ़लाइन उपयोग के लिए एक अलग प्रश्न में शामिल होने के लिए उपयोग के मामले में पर्याप्त संकीर्ण है। धन्यवाद।
फ्रैंक फिलिप्स

4
मैं एक नोट जोड़ूंगा कि NTUSER.DAT उपयोगकर्ता / [यूजरनेम] में एक संरक्षित सिस्टम फ़ाइल के रूप में स्थित है, और विंडोज / सिस्टम 32 / कॉन्फिग में नहीं।
फ्रैंक फिलिप्स

13

जो लोग रजिस्ट्री के साथ गड़बड़ नहीं करना चाहते हैं, उनके लिए फ़ाइल को सहेजने वाली पोटीन की विविधता बनाई गई है। यह यहाँ स्थित है: http://jakub.kotrla.net/putty/

यह अच्छा होगा यदि पोटीन टीम इसे मुख्य वितरण में एक विकल्प के रूप में ले जाएगी।


13

यह इतना आसान था कि ऊपर बताए गए की तुलना में रजिस्ट्री निर्यात को आयात करना आसान था। + बस:

  1. फ़ाइल पर राइट क्लिक करें और
  2. "मर्ज" चुनें

विन 7 प्रो पर एक विजेता की तरह काम किया।


2
विंडोज 10 पर मेरे लिए भी काम किया
जनवरी

3
मैं पुष्टि कर सकता हूं - यह Win10 पर निर्दोष रूप से काम करता है। सबसे आसान "आयात" कभी। धन्यवाद!
d-wade 18

10

उदाहरण:
कैसे एक उपयोगकर्ता खाते से दूसरे खाते में पोटीन विन्यास और सत्र विन्यास स्थानांतरित करने के लिए जैसे एक नया खाता बनाया और पुराने खाते से पोटीन सत्र / विन्यास का उपयोग करना चाहते हैं

प्रक्रिया:
- पुराने खाते से एक फ़ाइल में रजिस्ट्री कुंजी निर्यात करें
- नए खाते में फ़ाइल से रजिस्ट्री कुंजी आयात करें

निर्यात reg कुंजी: (OLD खाते से)

  1. OLD खाते में उदाहरण के लिए लॉगिन करें
  2. सामान्य 'कमांड प्रॉम्प्ट' खोलें (व्यवस्थापक नहीं!)
  3. 'Regedit' टाइप करें
  4. रजिस्ट्री अनुभाग पर नेविगेट करें जहां कॉन्फ़िगरेशन संग्रहीत किया जा रहा है जैसे [HKEY_CURRENT_USER \ SOFTWARE \ SimonTatham] और उस पर क्लिक करें
  5. फ़ाइल मेनू या राइट माउस क्लिक से 'निर्यात' चुनें (रेडियो ctrl 'चयनित शाखा')
  6. फ़ाइल में सहेजें और इसे नाम दें जैसे 'puttyconfig.reg'
  7. फिर से लॉगआउट करें

आयात reg कुंजी: (नए खाते में)

  1. नए खाते में लॉगिन करें जैसे कि टॉम

  2. सामान्य 'कमांड प्रॉम्प्ट' खोलें (व्यवस्थापक नहीं!)

  3. 'Regedit' टाइप करें

  4. मेनू से 'आयात' चुनें

  5. 'Puttyconfig.reg' जैसे आयात करने के लिए रजिस्ट्री फ़ाइल का चयन करें

  6. किया हुआ

नोट:
सेटिंग्स के तहत स्थित '[HKEY_CURRENT_USER ...] के रूप में' व्यवस्थापक कमांड प्रॉम्प्ट 'का उपयोग न करें और regedit व्यवस्थापक के रूप में चलेगा और व्यवस्थापक-उपयोगकर्ता के लिए उस अनुभाग को प्रदर्शित करेगा, बल्कि उपयोगकर्ता से और / या स्थानांतरित करने के लिए। सेवा।


9

डेटा आयात करने के लिए बुमेरांग के समाधान में सुधार PuTTY portable

केवल निर्यात नहीं किया गया putty.reg(m0nhawk समाधान के साथ) PuTTYPortable\Data\settings\काम नहीं किया। PuTTY पोर्टेबल बैकअप फ़ाइल और एक नया खाली एक बनाएँ।

इस समस्या को हल करने के लिए, putty.regमैन्युअल रूप से कॉपी किए जा रहे दोनों को मर्ज करें जिसे आप अपने निर्यात से माइग्रेट करना चाहते हैं नीचे दी putty.regगई नई PuTTYPortable\Data\settings\putty.regलाइनों के नीचे।

REGEDIT4

[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"

8

@ M0nhawk द्वारा पोस्ट किया गया उत्तर मुझे विंडोज 7 मशीन पर परीक्षण के रूप में काम नहीं करता है। इसके बजाय, निम्नलिखित स्क्रिप्ट का उपयोग पोटीन की सेटिंग्स को निर्यात / आयात करेगा:

::export
@echo off
set regfile=putty.reg
pushd %~dp0

reg export HKCU\Software\SimonTatham %regfile% /y

popd

-

::import
@echo off
pushd %~dp0
set regfile=putty.reg

if exist %regfile% reg import %regfile%

popd

7

m0nhawk का उत्तर मेरे लिए विंडोज 10 पर काम नहीं करता था - इसके लिए एलिवेटेड कमांड प्रॉम्प्ट की आवश्यकता थी और एक फाइल को फेंकने से इनकार कर दिया।

इसने काम किया और ऊंचाई की आवश्यकता नहीं थी:

reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg

6

इस विधि का उपयोग करके बड़े पैमाने पर कॉन्फ़िगरेशन परिवर्तन करना संभव है, जैसे कि सभी सत्र फ़ॉन्ट को बदलना।

  1. .Reg निर्यात करें
  2. एक खोज करें और अधिक .reg की जगह लें
  3. सभी सत्र निकालें
  4. नया .reg आयात करें

यहां से निकाला गया: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html



3

Ratil.life/first-useful-powershell-script-putty-to-ssh-config पर एक पॉवरशेल स्क्रिप्ट है जो सत्रों को एक प्रारूप में परिवर्तित कर सकती है जिसका उपयोग किया जा सकता है .ssh/config। यह GitHub पर भी पाया जा सकता है

इस अंश में कोड का मुख्य भाग है, और परिणामी विन्यास को सीधे stdout में प्रिंट करेगा:

# Registry path to PuTTY configured profiles
$regPath = 'HKCU:\SOFTWARE\SimonTatham\PuTTY\Sessions'

# Iterate over each PuTTY profile
Get-ChildItem $regPath -Name | ForEach-Object {

    # Check if SSH config
    if (((Get-ItemProperty -Path "$regPath\$_").Protocol) -eq 'ssh') {
        # Write the Host for easy SSH use
        $host_nospace = $_.replace('%20', $SpaceChar)
        $hostLine =  "Host $host_nospace"

        # Parse Hostname for special use cases (Bastion) to create SSH hostname
        $puttyHostname = (Get-ItemProperty -Path "$regPath\$_").HostName
        if ($puttyHostname -like '*@*') {
            $sshHostname = $puttyHostname.split("@")[-1]
            }
        else { $sshHostname = $puttyHostname }
        $hostnameLine = "`tHostName $sshHostname"   

        # Parse Hostname for special cases (Bastion) to create User
        if ($puttyHostname -like '*@*') {
            $sshUser = $puttyHostname.split("@")[0..($puttyHostname.split('@').length - 2)] -join '@'
            }
        else { $sshHostname = $puttyHostname }
        $userLine = "`tUser $sshUser"   

        # Parse for Identity File
        $puttyKeyfile = (Get-ItemProperty -Path "$regPath\$_").PublicKeyFile
        if ($puttyKeyfile) { 
            $sshKeyfile = $puttyKeyfile.replace('\', '/')
            if ($prefix) { $sshKeyfile = $sshKeyfile.replace('C:', $prefix) }
            $identityLine = "`tIdentityFile $sshKeyfile"
            }

        # Parse Configured Tunnels
        $puttyTunnels = (Get-ItemProperty -Path "$regPath\$_").PortForwardings
        if ($puttyTunnels) {
            $puttyTunnels.split() | ForEach-Object {

                # First character denotes tunnel type
                $tunnelType = $_.Substring(0,1)
                # Digits follow tunnel type is local port
                $tunnelPort = $_ -match '\d*\d(?==)' | Foreach {$Matches[0]}
                # Text after '=' is the tunnel destination
                $tunnelDest = $_.split('=')[1]

                if ($tunnelType -eq 'D') {
                    $tunnelLine = "`tDynamicForward $tunnelPort $tunnelDest"
                }

                ElseIf ($tunnelType -eq 'R') {
                    $tunnelLine = "`tRemoteForward $tunnelPort $tunnelDest"
                }

                ElseIf ($tunnelType -eq 'L') {
                    $tunnelLine = "`tLocalForward $tunnelPort $tunnelDest"
                }

            }

        # Parse if Forward Agent is required
        $puttyAgent = (Get-ItemProperty -Path "$regPath\$_").AgentFwd
        if ($puttyAgent -eq 1) { $agentLine = "`tForwardAgent yes" }

        # Parse if non-default port
        $puttyPort = (Get-ItemProperty -Path "$regPath\$_").PortNumber
        if (-Not $puttyPort -eq 22) { $PortLine = "`tPort $puttyPort" }

        }

        # Build output string
        $output = "$hostLine`n$hostnameLine`n$userLine`n$identityLine`n$tunnelLine`n$agentLine`n"

        # Output to file if set, otherwise STDOUT
        if ($outfile) { $output | Out-File $outfile -Append}
        else { Write-Host $output }
    }

}

2

यदि आप, मेरी तरह, नए विंडोज को स्थापित करते हैं और केवल आपके द्वारा पोटीन सत्रों के बारे में याद रखने के बाद , आप अभी भी उन्हें आयात कर सकते हैं, यदि आपके पास पुरानी विंडोज हार्ड ड्राइव है या कम से कम आपके पुराने "होम" डायरेक्टरी का बैकअप है ( C:\Users\<user_name>)।

इस निर्देशिका में NTUSER.DATफ़ाइल होनी चाहिए । यह डिफ़ॉल्ट रूप से छिपा हुआ है, इसलिए आपको अपने विंडोज एक्सप्लोरर में छिपी हुई फ़ाइलों को सक्षम करना चाहिए या किसी अन्य फ़ाइल ब्राउज़र का उपयोग करना चाहिए। इस फ़ाइल में HKEY_CURRENT_USERआपकी पुरानी Windows रजिस्ट्री की शाखा है।

इसका उपयोग करने के लिए, आपको regeditअपने नए विंडोज पर खोलने की जरूरत है , और HKEY_USERSकुंजी का चयन करें ।

फिर चुनें File-> Load Hive...और अपने पुराने "होम" को अपने पुराने विंडोज इंस्टॉलेशन की निर्देशिका खोजें। इस निर्देशिका में NTUSER.DATफ़ाइल होनी चाहिए । यह डिफ़ॉल्ट रूप से छिपा हुआ है, इसलिए, यदि आपने अपने विंडोज एक्सप्लोरर गुणों में छिपी हुई फ़ाइलों को दिखाने में सक्षम नहीं किया है, तो आप बस File name"लोड हाइव" संवाद के इनपुट बॉक्स में फ़ाइल नाम दर्ज कर सकते हैं और दबा सकते हैं Enter। फिर अगले संवाद विंडो में पुरानी रजिस्ट्री को लोड करने के लिए कुछ मुख्य नाम दर्ज करें। उदा tmp

आपकी पुरानी रजिस्ट्री की HKEY_CURRENT_USERशाखा अब HKEY_USERS\tmpआपकी वर्तमान रजिस्ट्री की शाखा के तहत सुलभ होनी चाहिए ।

अब फ़ाइल HKEY_USERS\tmp\Software\SimonTathamमें शाखा निर्यात करें putty.reg, अपने पसंदीदा पाठ संपादक में इस फ़ाइल को खोलें और सभी HKEY_USERS\tmpस्ट्रिंग को ढूंढें और बदलें HKEY_CURRENT_USER। अब .regफाइल को सेव करें ।

अब आप इस फाइल को अपनी मौजूदा विंडोज रजिस्ट्री में डबल-क्लिक करके आयात कर सकते हैं। यह करने के लिए m0nhawk का उत्तर देखें ।

अंत HKEY_USERS\tmpमें, रजिस्ट्री संपादक में शाखा का चयन करें और फिर चयन करें File-> Unload Hive...और इस ऑपरेशन की पुष्टि करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.