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ó 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:
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
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 đúp vào *.reg
tập tin và chấp nhận nhập.
cmd.exe
, yêu cầu nhắc lệnh nâng cao:regedit /i putty-sessions.reg
regedit /i putty.reg
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 reg
tệ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.
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!
Khởi chạy Run, sau đó nhập vào cửa sổ Mở xuống: regedit
Điều hướng đến, giống như trong Explorer's Explorer:
HKEY_CURRENT_USER \ Software \ SimonTatham
Làm xong.
Đố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ả.
Đ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à:
Làm việc như một nhà vô địch trên Win 7 Pro.
Đố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.
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)
Nhập khóa reg: (vào tài khoản MỚI)
Đăng nhập vào tài khoản MỚI, ví dụ như tom
Mở 'dấu nhắc lệnh' bình thường (KHÔNG phải quản trị viên!)
Nhập 'regedit'
Chọn 'Nhập' từ menu
Chọn tệp đăng ký để nhập, ví dụ: 'puttyconfig.reg'
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.
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.reg
sao chép thủ công cấu hình bạn muốn di chuyển từ bản đã xuất putty.reg
sang dòng mới được tạo PuTTYPortable\Data\settings\putty.reg
bên dưới.
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
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
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.
Trích xuất từ đây: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
Tôi sử dụng trình quản lý kết nối putty nơi bạn tạo cơ sở dữ liệu các phiên. Thật dễ dàng để sao chép và nhập cơ sở dữ liệu đó vào các máy tính khác.
Xem hướng dẫn tiện dụng này
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 }
}
}
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.DAT
tậ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_USER
chi nhánh của sổ đăng ký Windows cũ của bạn.
Để sử dụng nó, bạn cần mở regedit
trên Windows mới và chọn HKEY_USERS
phí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.DAT
tậ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 name
và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_USER
Chi nhánh đăng ký cũ của bạn bây giờ có thể truy cập được dưới HKEY_USERS\tmp
nhánh của cơ quan đăng ký hiện tại của bạn.
Bây giờ xuất HKEY_USERS\tmp\Software\SimonTatham
nhánh thành putty.reg
tệ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\tmp
chuỗi bằng HKEY_CURRENT_USER
. Bây giờ lưu .reg
tậ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\tmp
chi 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.