PuTTy oturum listesini nasıl dışa / dışa aktarabilirim?


Yanıtlar:


1238

ihracat

cmd.exe, yükseltilmiş istemi gerektirir :

Yalnızca oturumlar:

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

Tüm ayarlar:

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

Güç kalkanı:

Yalnızca oturumlar:

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

Tüm ayarlar:

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

İthalat

*.regDosyayı çift ​​tıklayın ve içe aktarmayı kabul edin.

Alternatif yollar:

cmd.exe, yükseltilmiş komut istemi gerektirir :

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

Güç kalkanı:

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

Not : Kullanıcı adınızla değiştirmeyin SimonTatham .

Not : regGeçerli kullanıcının Masaüstünde bir dosya oluşturur .

Not : Bu olacak değil ilgili SSH anahtarlarını ihracat.


3
@NamGVU Bunun nedeni, yolun boşluklu bir klasörü olmasıdır. Sahip olmayan birine geçin.
m0nhawk

3
@NamGVU% userprofile% öğesini kullanıcı adınızla değiştirmeyin, olduğu gibi bırakın.
Asrar

4
Farklı bir makinede farklı bir Macun'a nasıl aktarırsınız?
Pete

4
Oh tamam, çift tıklayın ... anladım
Pete

7
İkinci Komut Windows 7'de benim için çalıştı, ancak CMD'yi yönetici olarak çalıştırmam gerekiyordu.
The Humble Rat

46

Diğer çözümleri denediğimde bu hatayı aldım:

Registry editing has been disabled by your administrator.

Buna Phooey diyorum!

PuTTY ayarlarını dışa ve içe aktarmak için aşağıdaki powershell komut dosyalarını bir araya getirdim. Dışa aktarılan dosya bir windows .reg dosyasıdır ve izniniz varsa temiz bir şekilde içe aktarılır, aksi takdirde yüklemek için import.ps1 komutunu kullanın.

Uyarı : böyle bir kayıt defteri ile uğraşmak bir Bad Idea ™ ve gerçekten ne yaptığımı bilmiyorum. Aşağıdaki komut dosyalarını kullanmak kendi sorumluluğunuzdadır ve BT departmanınızın makinenizi yeniden görüntülemesine ve ne yaptığınız konusunda size rahatsız edici sorular sormaya hazır olun.

Kaynak makinede:

.\export.ps1

Hedef makinede:

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

Deyimsel olmayan kod için özür dilerim, Powershell'e pek aşina değilim. Gelişmeler bekliyoruz!


3
Mükemmel çalıştı, ne zaman tasarrufu. Bir ek ... İzinleri ayarlamak için buradaki talimatları izlemem gerekiyordu: stackoverflow.com/questions/4037939/… .
Jacob Zwiers

1
Bu çok yardımcı oldu! Farklı kayıt defteri yerleri vardı sadece her ikisi de yolu düzenlemek zorunda kaldı ve bu oldu :)
SidJ

Bekle, PowerShell grup ilkesini atlatıyor mu? Kadar ne kadar Wonder o yamalı alır.
Quolonel Soruları

Emin değilim, ama biz dört yaşındayız ve sayıyoruz;)
dwurf

Benim için çalışmadım.
Velmurugan

44
  1. Çalıştır'ı başlatın, ardından Aç açılır penceresini yazın: regedit

  2. Windows Gezgini'nde olduğu gibi şuraya gidin:
    HKEY_CURRENT_USER \ Software \ SimonTatham

  3. 'SimonTatham' tuşuna (dizin simgesi) sağ tıklayın, Dışa Aktar'ı seçin
    Dosyaya bir ad verin (diyelim) putty.reg ve
    daha sonra kullanmak .
  4. Kayıt Defteri Düzenleyicisi'ni kapatın.

Bitti.


34

Üzerindeki ayarları içe aktarmak istiyorsanız PuTTY Portable, putty.reg Dosyayı .

Sadece bu yola koy [path_to_Your_portable_apps]PuTTYPortable\Data\settings\putty.reg. Program içeri aktaracak


23

Örneğin, çökmüş sistemden kurtarma yaparken veya yeni bir makineye geçip bu eski sürücüden veri kaparken, Putty'yi çevrimdışı kayıt defterinden içe aktarması gerekenleriniz için kayda değer bir çözüm daha var:

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

Bu harika ve ücretsiz konsol uygulaması tüm kayıt defterini veya sadece belirli bir kayıt defteri anahtarını dışa aktarır. Benim durumumda, sadece eski bir sürücüden kayıt defteri dosyasını ihracatçı aracıyla aynı dizine kopyaladım ve sonra CMD penceresinde aşağıdaki komut ve sözdizimini yönetici olarak çalıştırdım:

RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER \ Yazılım \ SimonTatham"

.Reg dosyasını içe aktarıp Putty'yi başlattıktan sonra her şey vardı. Basit ve verimli.


2
Bu yanıt, çevrimdışı kurtarma için ayrı bir soruya dahil edilecek bir kullanım durumunun yeterince dardır. Teşekkürler.
Frank Phillips

4
NTUSER.DAT, Windows / SYSTEM32 / Config içinde değil, korumalı bir sistem dosyası olarak Users / [Username] 'da bulunduğunu not eder.
Frank Phillips

13

Kayıt defteri ile uğraşmak istemeyenler için, dosyaya kaydedilen bir macun varyasyonu oluşturuldu. Burada bulunur: http://jakub.kotrla.net/putty/

Macun ekibinin bunu ana dağıtım için bir seçenek olarak alması iyi olurdu.


13

Bu, kayıt defteri dışa aktarımını içe aktarmak, yukarıda belirtilenlerden çok daha kolaydı. + Basitçe:

  1. dosyaya sağ tıklayın ve
  2. "Birleştir" i seçin

Win 7 Pro'da şampiyon gibi çalıştı.


2
Windows 10'da da benim için
Jan

3
Onaylayabilirim - Win10'da kusursuz çalışıyor. Şimdiye kadarki en kolay "içe aktarma". Teşekkürler!
d-wade

10

Örnek:
Macun yapılandırması ve oturum yapılandırması bir kullanıcı hesabından diğerine nasıl aktarılır, örneğin yeni bir hesap oluşturulduğunda ve eski hesaptan macun oturumlarını / yapılandırmalarını kullanmak istediğinizde

İşlem:
- Kayıt defteri anahtarını eski hesaptan bir dosyaya aktarma
aktarma - Kayıt defteri anahtarını dosyadan yeni hesaba aktarma

Kayıt dışa aktarma anahtarı: (OLD hesabından)

  1. OLD hesabına giriş yapın, örneğin tomold
  2. Normal 'komut istemini' açın (yönetici DEĞİL!)
  3. 'Regedit' yazın
  4. Yapılandırmanın depolandığı kayıt defteri bölümüne gidin, örneğin [HKEY_CURRENT_USER \ SOFTWARE \ SimonTatham] ve üzerine tıklayın
  5. Dosya menüsünden 'Dışa Aktar'ı seçin veya sağ tıklayın (radyo ctrl' seçili dal ')
  6. Dosyaya kaydedin ve adlandırın, örneğin 'puttyconfig.reg'
  7. Tekrar çıkış yap

Kayıt anahtarını içe aktar: (YENİ hesaba)

  1. YENİ hesaba giriş yap, örneğin tom

  2. Normal 'komut istemini' açın (yönetici DEĞİL!)

  3. 'Regedit' yazın

  4. Menüden 'İçe Aktar'ı seçin

  5. İçe aktarılacak kayıt defteri dosyasını seçin, örn. 'Puttyconfig.reg'

  6. Bitti

Not:
Ayarlar '[HKEY_CURRENT_USER ...]' altında yer aldığından ve regedit yönetici olarak çalışacak ve kullanıcının bu bölümden ve / veya aktarması yerine yönetici kullanıcı için bu bölümü göstereceği için 'admin komut istemi' kullanmayın için.


9

Verileri almak için bumerang çözümünde bir iyileştirme PuTTY portable.

Sadece ihraç putty.reg(m0nhawk çözümü ile) PuTTYPortable\Data\settings\işe yaramadı. PuTTY Portable dosyayı yedekleyin ve yeni bir boş dosya oluşturun.

Bu soruna geçici bir çözüm bulmak için putty.reg, dışa aktardığınızdan aşağıdaki putty.regyeni oluşturulan PuTTYPortable\Data\settings\putty.regsatırlara taşımak istediğiniz yapılandırmayı el ile birleştirin .

REGEDIT4

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

8

@ M0nhawk tarafından gönderilen cevap, Windows 7 makinesinde test ettiğim gibi çalışmıyor. Bunun yerine, aşağıdaki komut dosyalarını kullanmak macun ayarlarını dışa / içe aktaracaktır:

::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'un yanıtı Windows 10'da benim için işe yaramadı - yükseltilmiş komut istemi gerekiyordu ve bir dosya göndermeyi reddetti.

Bu işe yaradı ve yükseklik gerektirmedi:

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



3

Ratil.life/first-useful-powershell-script-putty-to-ssh-config üzerinde, oturumları kullanılabilecek bir biçime dönüştürebilen bir PowerShell betiği vardır .ssh/config. GitHub'da da bulunabilir .

Bu alıntı, kodun ana bağırsaklarını içerir ve elde edilen yapılandırmayı doğrudan stdout'a yazdırır:

# 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

Benim gibi yeni Windows yüklediyseniz ve yalnızca macun oturumlarını hatırladıktan sonra , eski Windows sabit sürücünüz varsa veya en azından eski "ev" dizininiz yedeklenmişse ( C:\Users\<user_name>) yedekleyebilirsiniz .

Bu dizinde NTUSER.DATdosya olmalıdır . Varsayılan olarak gizlidir, bu nedenle Windows explorer'da gizli dosyaları etkinleştirmeli veya başka bir dosya tarayıcısı kullanmalısınız. Bu dosya HKEY_CURRENT_USEReski Windows kayıt defterinizin dalını içerir.

Kullanmak regeditiçin yeni Windows'ınızı açmanız ve HKEY_USERStuşu seçmeniz gerekir .

Ardından File-> öğesini seçin Load Hive...ve eski Windows kurulumunuzun eski "ev" dizininizi bulun. Bu dizinde NTUSER.DATdosya olmalıdır . Varsayılan olarak gizlidir, bu nedenle Windows explorer özelliklerinizde gizli dosyaları göstermeyi etkinleştirmediyseniz, dosya adını File name"Yığını Yükle" iletişim kutusunun giriş kutusuna manuel olarak girip tuşuna basmanız yeterlidir Enter. Ardından, sonraki iletişim penceresinde eski kayıt defterini içine yüklemek için bazı anahtar adları girin. örn tmp.

Eski kayıt defterinizin HKEY_CURRENT_USERşubesine şimdi HKEY_USERS\tmpgeçerli kayıt defterinin dalı altında erişilebilmelidir .

Şimdi HKEY_USERS\tmp\Software\SimonTathamşubeyi putty.regdosyaya aktarın, bu dosyayı favori metin düzenleyicinizde açın ve tüm HKEY_USERS\tmpdizeyi bul ve değiştir ile değiştirin HKEY_CURRENT_USER. Şimdi .regdosyayı kaydedin .

Şimdi bu dosyayı çift tıklatarak mevcut Windows kayıt defterinize aktarabilirsiniz. M0nhawk'un bunu nasıl yapacağına bakın .

Sonunda, HKEY_USERS\tmpkayıt defteri düzenleyicisinde dal seçin ve ardından File-> öğesini seçin Unload Hive...ve bu işlemi onaylayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.