it-swarm.asia

كيفية تصدير/استيراد قائمة جلسات المعجون؟

هل هناك طريقة للقيام بذلك؟

أو يجب أن تأخذ يدويا كل سجل من التسجيل؟

590
s.webbandit

تصدير

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 ذات الصلة.

1069
m0nhawk

عندما جربت الحلول الأخرى ، حصلت على هذا الخطأ:

Registry editing has been disabled by your administrator.

Phooey لذلك ، أقول!

أنا وضعت معا البرامج النصية powerhell أدناه لتصدير واستيراد إعدادات المعجون. الملف الذي تم تصديره هو ملف windows .reg وسيتم استيراده بشكل نظيف إذا كان لديك إذن ، وإلا استخدم import.ps1 لتحميله.

تحذير : العبث مع السجل مثل هذا هو Bad Badea ™ ، وأنا لا أعرف حقًا ما أفعله. استخدم البرامج النصية أدناه على مسؤوليتك الخاصة ، وكن مستعدًا لإعادة تعيين قسم تكنولوجيا المعلومات لجهازك وطرح أسئلة غير مريحة على ما كنت تفعله.

على الجهاز المصدر:

.\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"

اعتذار عن الكود غير الاصطلاحي ، لست معتادًا على Powershell. التحسينات هي موضع ترحيب!

39
dwurf
  1. شغّل Run (تشغيل) ، ثم اكتب نافذة Open (فتح) المنسدلة: regedit

  2. انتقل إلى ، تمامًا كما في مستكشف Window:
    HKEY_CURRENT_USER\SOFTWARE\SimonTatham

  3. انقر بزر الماوس الأيمن فوق مفتاح "SimonTatham" (رمز الدليل) ، وحدد تصدير
    أعط الملف اسمًا (قل) PuTTY.reg واحفظه في موقعك
    استخدامها لاحقا.
  4. أغلق محرر التسجيل.

فعله.

35
Sireesh Yarlagadda

إذا كنت تريد استيراد الإعدادات على PuTTY Portable ، يمكنك استخدام ملف PuTTY.reg.

فقط ضعه على هذا المسار [path_to_Your_portable_apps]PuTTYPortable\Data\settings\PuTTY.reg. سوف البرنامج استيراده

34
bumerang

لأولئك منكم الذين يحتاجون إلى استيراد PuTTY من ملف التسجيل في وضع عدم الاتصال ، على سبيل المثال عند الاسترداد من نظام تعطل أو ببساطة الانتقال إلى جهاز جديد والحصول على البيانات من محرك الأقراص القديم هذا ، هناك حل آخر جدير بالذكر:

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

سيقوم تطبيق وحدة التحكم الكبير والمجاني هذا بتصدير السجل بأكمله أو مفتاح تسجيل محدد فقط. في حالتي ، قمت ببساطة بنسخ ملف التسجيل من محرك أقراص قديم إلى نفس الدليل كأداة المُصدِّر ، ثم استخدمت الأمر التالي وبناء الجملة في إطار CMD يعمل كمسؤول:

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

بعد استيراد الملف .reg وبدء المعجون كل شيء كان هناك. بسيطة وفعالة.

18
monsune

بالنسبة لأولئك الذين لا يريدون الفوضى مع السجل ، تم إنشاء شكل مختلف من المعجون لحفظ الملف. إنه موجود هنا: http://jakub.kotrla.net/PuTTY/

سيكون لطيفًا إذا أخذ فريق PuTTY هذا كخيار في التوزيع الرئيسي.

12
Jason

كان هذا أسهل بكثير استيراد تصدير التسجيل مما هو مذكور أعلاه. + ببساطة:

  1. انقر بالزر الايمن على الملف و
  2. اختر "دمج"

عملت مثل البطل على وين 7 برو.

11
DudeGoingDeaf

مثال:
كيفية نقل تكوين PuTTY وتهيئة الجلسة من حساب مستخدم إلى آخر ، على سبيل المثال عند إنشاء حساب جديد وتريد استخدام جلسات/تكوينات PuTTY من الحساب القديم

معالجة:
- تصدير مفتاح التسجيل من الحساب القديم إلى ملف
- استيراد مفتاح التسجيل من ملف إلى حساب جديد

تصدير مفتاح reg: (من حساب OLD)

  1. تسجيل الدخول إلى حساب OLD على سبيل المثال tomold
  2. افتح "موجه الأوامر" العادي (وليس المشرف!)
  3. اكتب "رجديت"
  4. انتقل إلى قسم التسجيل حيث يتم تخزين التهيئة على سبيل المثال [HKEY_CURRENT_USER\SOFTWARE\SimonTatham] وانقر عليه
  5. حدد "تصدير" من قائمة الملفات أو انقر بزر الفأرة الأيمن (مفتاح التحكم في الراديو "الفرع المحدد")
  6. حفظ في ملف وتسميته على سبيل المثال "puttyconfig.reg"
  7. تسجيل الخروج مرة أخرى

استيراد مفتاح reg: (في حساب جديد)

  1. تسجيل الدخول إلى حساب جديد على سبيل المثال توم

  2. افتح "موجه الأوامر" العادي (وليس المشرف!)

  3. اكتب "رجديت"

  4. حدد "استيراد" من القائمة

  5. حدد ملف التسجيل لاستيراده على سبيل المثال "puttyconfig.reg"

  6. فعله

ملحوظة:
لا تستخدم "موجه أوامر المشرف" حيث توجد الإعدادات ضمن "[HKEY_CURRENT_USER ...]" وسيتم تشغيل رجديت كمسؤول وإظهار هذا القسم للمستخدم المسؤول بدلاً من ذلك لنقل المستخدم من و/أو إلى.

9
Mungo

تحسن في حل bumerang لاستيراد البيانات إلى PuTTY portable.

ببساطة نقل PuTTY.reg المصدرة (مع حل m0nhawk) إلى PuTTYPortable\Data\settings\ لم ينجح. المعجون المحمولة النسخ الاحتياطي للملف وإنشاء واحدة جديدة فارغة.

للتغلب على هذه المشكلة ، قم بدمج كلاً من PuTTY.reg مع نسخ التكوين الذي تريد ترحيله من PuTTY.reg المصدر الخاص بك يدويًا إلى PuTTYPortable\Data\settings\PuTTY.reg الذي تم إنشاؤه حديثًا أسفل الأسطر التالية.

REGEDIT4

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

يبدو أن الإجابة المنشورة بواسطة @ m0nhawk لا تعمل كما أختبرها على جهاز يعمل بنظام Windows 7. بدلاً من ذلك ، يؤدي استخدام البرامج النصية التالية إلى تصدير/استيراد إعدادات PuTTY:

::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
Meow

لم تنجح إجابة m0nhawk بالنسبة لي على نظام التشغيل Windows 10 - تطلب الأمر موجهًا مرتفعًا ورفض إرسال ملف.

هذا العمل ولم يتطلب الارتفاع:

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

باستخدام هذه الطريقة ، من الممكن أيضًا إجراء تغييرات في التكوين الشامل ، مثل تغيير خط جميع الجلسات.

  1. تصدير إلى .reg
  2. إجراء بحث واستبدال .reg
  3. إزالة جميع الدورات
  4. استيراد .reg الجديد

مستخرج من هنا: http://www.sysadmit.com/2015/11/PuTTY-exportar-configuracion.html

6
YumUrli

يوجد نص PowerShell في ratil.life/first-useful-powershell-script-PuTTY-to-ssh-config والذي يمكنه تحويل الجلسات إلى تنسيق يمكن استخدامه في .ssh/config. ويمكن أيضا أن تكون موجودة على جيثب .

يحتوي هذا المقتطف على الشجاعة الرئيسية للشفرة ، وسيطبع التكوين الناتج مباشرة إلى 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
mwfearnley

يمكنني استخدام مدير اتصال PuTTY حيث يمكنك إنشاء قاعدة بيانات للجلسات. من السهل نسخ قاعدة البيانات هذه واستيرادها إلى أجهزة كمبيوتر أخرى.

انظر هذا دليل مفيد

2
jasonoriordan