Làm thế nào để xuất / nhập danh sách phiên PuTTy?


678

Có cách nào để làm việc này không?

Hoặc tôi phải lấy thủ công mọi bản ghi từ Registry?

Câu trả lời:


1238

Xuất khẩu

cmd.exe, yêu cầu nhắc nhở nâng cao:

Chỉ các phiên:

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

Tất cả các thiết lập:

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

Quyền hạn:

Chỉ các phiên:

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

Tất cả các thiết lập:

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

Nhập khẩu

Nhấp đúp vào *.regtập tin và chấp nhận nhập.

Cách khác:

cmd.exe, yêu cầu nhắc lệnh nâng cao:

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

PowerShell:

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

Lưu ý : không thay thế SimonTatham bằng tên người dùng của bạn.

Lưu ý : Nó sẽ tạo một regtệp trên Bàn làm việc của người dùng hiện tại.

Lưu ý : Nó sẽ không xuất các khóa SSH liên quan.


3
@NamGVU Đó là vì đường dẫn có một thư mục có khoảng trắng. Di chuyển đến một cái mà không có nó.
m0nhawk

3
@NamGVU Không thay thế% userprofile% bằng tên người dùng của bạn, hãy để nguyên như vậy.
Asrar

4
Làm thế nào để bạn nhập nó vào một Putty khác trên một máy khác?
Pete

4
Oh ok, nhấp đúp chuột ... hiểu rồi
Pete

7
Lệnh thứ hai làm việc cho tôi trên Windows 7, tuy nhiên, tôi cần chạy CMD với tư cách quản trị viên.
Con chuột khiêm tốn

46

Khi tôi thử các giải pháp khác, tôi gặp lỗi này:

Registry editing has been disabled by your administrator.

Phooey đến đó, tôi nói!

Tôi kết hợp các tập lệnh powershell bên dưới để xuất và nhập cài đặt PuTTY. Tệp đã xuất là tệp windows .reg và sẽ nhập sạch nếu bạn có quyền, nếu không, hãy sử dụng import.ps1 để tải tệp.

Cảnh báo : làm rối tung sổ đăng ký như thế này là một ý tưởng tồi ™ và tôi thực sự không biết mình đang làm gì. Bạn có thể tự chịu rủi ro khi sử dụng các tập lệnh dưới đây và sẵn sàng để bộ phận CNTT của bạn chụp lại hình ảnh trên máy của bạn và hỏi bạn những câu hỏi khó chịu về những gì bạn đang làm.

Trên máy nguồn:

.\export.ps1

Trên máy đích:

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

xuất khẩu.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
}

nhập khẩu.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"

Xin lỗi về mã không thành ngữ, tôi không quen thuộc lắm với Powershell. Cải tiến được chào đón!


3
Làm việc hoàn hảo, những gì tiết kiệm thời gian. Một bổ sung ... Tôi đã phải làm theo hướng dẫn ở đây để thiết lập quyền: stackoverflow.com/questions / 4037939 / .
Jacob Zwiers

1
Đó là một sự trợ giúp tuyệt vời! Tôi đã có các vị trí đăng ký khác nhau chỉ cần chỉnh sửa đường dẫn trong cả hai và đó là nó :)
SidJ

Đợi đã, vậy PowerShell cắt ngang chính sách nhóm? Wonder bao lâu cho đến khi điều đó được vá.
Câu hỏi của Quolonel

Không chắc chắn, nhưng chúng tôi ở bốn năm và đang đếm;)
dwurf

Tôi đã cố gắng không làm việc cho tôi.
Velmurugan

44
  1. Khởi chạy Run, sau đó nhập vào cửa sổ Mở xuống: regedit

  2. Điều hướng đến, giống như trong Explorer's Explorer:
    HKEY_CURRENT_USER \ Software \ SimonTatham

  3. Nhấp chuột phải vào phím 'SimonTatham' (biểu tượng thư mục), chọn Xuất
    Đặt tên tệp (nói) putty.reg và lưu nó vào vị trí của bạn để
    sử dụng sau.
  4. Đóng Registry Editor.

Làm xong.


34

Nếu bạn muốn nhập cài đặt trên PuTTY PortableBạn có thể sử dụng putty.regtệp.

Chỉ cần đặt nó vào con đường này [path_to_Your_portable_apps]PuTTYPortable\Data\settings\putty.reg. Chương trình sẽ nhập nó


23

Đối với những người bạn cần nhập Putty từ tệp đăng ký ngoại tuyến, ví dụ như khi bạn đang khôi phục từ hệ thống bị sập hoặc chỉ đơn giản là chuyển sang một máy mới và lấy dữ liệu khỏi ổ đĩa cũ đó, có một giải pháp khác đáng được đề cập:

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

Ứng dụng bảng điều khiển tuyệt vời và miễn phí này sẽ xuất toàn bộ sổ đăng ký hoặc chỉ một khóa đăng ký cụ thể. Trong trường hợp của tôi, tôi chỉ cần sao chép tệp đăng ký từ một ổ đĩa cũ vào cùng thư mục với công cụ xuất khẩu và sau đó tôi sử dụng lệnh và cú pháp sau trong cửa sổ CMD chạy với tư cách quản trị viên:

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

Sau khi nhập tệp .reg và bắt đầu Putty, mọi thứ đã ở đó. Đơn giản và hiệu quả.


2
Câu trả lời này đủ hẹp trong trường hợp sử dụng được đưa vào một câu hỏi riêng để phục hồi ngoại tuyến. Cảm ơn.
Frank Phillips

4
Tôi sẽ thêm một lưu ý rằng NTUSER.DAT được đặt trong Người dùng / [Tên người dùng] dưới dạng tệp hệ thống được bảo vệ và không có trong Windows / HỆ THỐNG32 / Cấu hình.
Frank Phillips

13

Điều này đã dễ dàng hơn nhiều khi nhập xuất khẩu đăng ký so với những gì được nêu ở trên. + Đơn giản là:

  1. nhấp chuột phải vào tập tin và
  2. chọn "Hợp nhất"

Làm việc như một nhà vô địch trên Win 7 Pro.


2
Làm việc cho tôi trên Windows 10 cũng vậy
ngày

3
Tôi có thể xác nhận - nó hoạt động hoàn hảo trên Win10. "Nhập khẩu" dễ nhất từ ​​trước đến nay. Cảm ơn!
d-lội

12

Đối với những người không muốn gây rối với sổ đăng ký, một biến thể của putty lưu vào tệp đã được tạo. Nó nằm ở đây: http://jakub.kotrla.net/putty/

Sẽ thật tuyệt nếu đội ngũ putty sẽ coi đây là một lựa chọn trong bản phân phối chính.


10

Thí dụ:
Cách chuyển cấu hình putty và cấu hình phiên từ tài khoản người dùng này sang tài khoản người dùng khác, ví dụ như khi tạo tài khoản mới và muốn sử dụng phiên / cấu hình putty từ tài khoản cũ

Quy trình:
- Xuất khoá đăng ký từ tài khoản cũ thành tệp
- Nhập khóa đăng ký từ tệp vào tài khoản mới

Xuất khóa reg: (từ tài khoản OLD)

  1. Đăng nhập vào tài khoản OLD, ví dụ như tomold
  2. Mở 'dấu nhắc lệnh' bình thường (KHÔNG phải quản trị viên!)
  3. Nhập 'regedit'
  4. Điều hướng đến phần đăng ký nơi cấu hình đang được lưu trữ, ví dụ: [HKEY_CURRENT_USER \ SOFTWARE \ SimonTatham] và nhấp vào nó
  5. Chọn 'Xuất' từ menu tệp hoặc nhấp chuột phải (radio ctrl 'nhánh được chọn')
  6. Lưu vào tệp và đặt tên là ví dụ 'puttyconfig.reg'
  7. Đăng xuất lại

Nhập khóa reg: (vào tài khoản MỚI)

  1. Đăng nhập vào tài khoản MỚI, ví dụ như tom

  2. Mở 'dấu nhắc lệnh' bình thường (KHÔNG phải quản trị viên!)

  3. Nhập 'regedit'

  4. Chọn 'Nhập' từ menu

  5. Chọn tệp đăng ký để nhập, ví dụ: 'puttyconfig.reg'

  6. Làm xong

Lưu ý:
Không sử dụng 'dấu nhắc lệnh quản trị viên' vì các cài đặt được đặt trong '[HKEY_CURRENT_USER ...]' và regedit sẽ chạy với tư cách quản trị viên và hiển thị phần đó cho người dùng quản trị viên thay vào đó để người dùng chuyển từ và / hoặc đến.


9

Một cải tiến cho giải pháp của bumerang để nhập dữ liệu vào PuTTY portable .

Chỉ cần di chuyển xuất putty.reg(với giải pháp m0nhawk) sangPuTTYPortable\Data\settings\ không hoạt động. PuTTY Portable sao lưu tệp và tạo một tệp trống mới.

Để khắc phục sự cố này, hợp nhất cả putty.regsao chép thủ công cấu hình bạn muốn di chuyển từ bản đã xuất putty.regsang dòng mới được tạo PuTTYPortable\Data\settings\putty.regbên dưới.

REGEDIT4

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

8

Câu trả lời được đăng bởi @ m0nhawk dường như không hoạt động khi tôi kiểm tra trên máy Windows 7. Thay vào đó, sử dụng các tập lệnh sau sẽ xuất / nhập các cài đặt của 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

Câu trả lời của m0nhawk không hoạt động với tôi trên Windows 10 - nó yêu cầu nhắc lệnh nâng cao và từ chối phát ra một tệp.

Điều này đã làm việc và không yêu cầu độ cao:

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

6

Sử dụng phương pháp này cũng có thể thực hiện thay đổi cấu hình hàng loạt, chẳng hạn như thay đổi phông chữ của tất cả các phiên.

  1. Xuất sang .reg
  2. Thực hiện tìm kiếm và thay thế trên .reg
  3. Xóa tất cả các phiên
  4. Nhập .reg mới

Trích xuất từ ​​đây: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html



3

Có một tập lệnh PowerShell tại ratil.life/first-usiously-powershell-script-putty-to-ssh-config có thể chuyển đổi các phiên thành định dạng có thể được sử dụng .ssh/config. Nó cũng có thể được tìm thấy trên GitHub .

Đoạn trích này chứa các can đảm chính của mã và sẽ in trực tiếp cấu hình kết quả vào thiết bị xuất chuẩn:

# 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

Nếu bạn, giống như tôi, đã cài đặt Windows mới và chỉ sau khi bạn nhớ về các phiên putty, bạn vẫn có thể nhập chúng, nếu bạn có ổ cứng Windows cũ hoặc ít nhất là thư mục "nhà" cũ của bạn đã sao lưu ( C:\Users\<user_name>).

Trong thư mục này nên có NTUSER.DATtập tin. Nó được ẩn theo mặc định, vì vậy bạn nên kích hoạt các tệp ẩn trong Windows explorer hoặc sử dụng trình duyệt tệp khác. Tập tin này chứa HKEY_CURRENT_USERchi nhánh của sổ đăng ký Windows cũ của bạn.

Để sử dụng nó, bạn cần mở regedittrên Windows mới và chọn HKEY_USERSphím.

Sau đó chọn File-> Load Hive...và tìm thư mục "nhà" cũ của bản cài đặt Windows cũ của bạn. Trong thư mục này nên có NTUSER.DATtập tin. Nó được ẩn theo mặc định, vì vậy, nếu bạn không cho phép hiển thị các tệp ẩn trong thuộc tính Windows explorer, thì bạn có thể nhập tên tệp File namevào hộp nhập của hộp thoại "Load Hive" theo cách thủ công và nhấn Enter. Sau đó, trong cửa sổ hộp thoại tiếp theo, nhập một số tên khóa để tải registry cũ vào nó. ví dụ tmp.

HKEY_CURRENT_USERChi nhánh đăng ký cũ của bạn bây giờ có thể truy cập được dưới HKEY_USERS\tmpnhánh của cơ quan đăng ký hiện tại của bạn.

Bây giờ xuất HKEY_USERS\tmp\Software\SimonTathamnhánh thành putty.regtệp, mở tệp này trong trình soạn thảo văn bản yêu thích của bạn và tìm và thay thế tất cả HKEY_USERS\tmpchuỗi bằng HKEY_CURRENT_USER. Bây giờ lưu .regtập tin.

Bạn có thể nhập tệp này vào sổ đăng ký Windows hiện tại của mình bằng cách bấm đúp vào tệp. Xem câu trả lời của m0nhawk làm thế nào để làm điều này.

Cuối cùng, chọn HKEY_USERS\tmpchi nhánh trong trình chỉnh sửa sổ đăng ký và sau đó chọn File-> Unload Hive...và xác nhận thao tác này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.