Apakah ada cara untuk melakukan ini?
Atau saya harus mengambil secara manual setiap catatan dari Registry?
Apakah ada cara untuk melakukan ini?
Atau saya harus mengambil secara manual setiap catatan dari Registry?
Jawaban:
cmd.exe
, memerlukan prompt yang ditinggikan:Hanya sesi:
regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions
Semua pengaturan:
regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham
Hanya sesi:
reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")
Semua pengaturan:
reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")
Klik dua kali pada *.reg
file dan terima impor.
cmd.exe
, memerlukan command prompt yang ditinggikan:regedit /i putty-sessions.reg
regedit /i putty.reg
reg import putty-sessions.reg
reg import putty.reg
Catatan : jangan ganti SimonTatham
dengan nama pengguna Anda.
Catatan : Ini akan membuat reg
file di Desktop pengguna saat ini.
Catatan : Itu tidak akan mengekspor kunci SSH terkait.
Ketika saya mencoba solusi lain saya mendapat kesalahan ini:
Registry editing has been disabled by your administrator.
Aduh itu, kataku!
Saya mengumpulkan skrip powershell di bawah ini untuk mengekspor dan mengimpor pengaturan Putty. File yang diekspor adalah file .reg windows dan akan mengimpor dengan bersih jika Anda memiliki izin, jika tidak gunakan import.ps1 untuk memuatnya.
Peringatan : mengacaukan registri seperti ini adalah Ide Buruk ™, dan saya tidak benar-benar tahu apa yang saya lakukan. Gunakan skrip di bawah ini dengan risiko Anda sendiri, dan bersiaplah untuk meminta departemen TI Anda mengubah gambar mesin Anda dan mengajukan pertanyaan tidak nyaman tentang apa yang Anda lakukan.
Di mesin sumber:
.\export.ps1
Pada mesin target:
.\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"
Permintaan maaf untuk kode non-idiomatik, saya tidak begitu akrab dengan Powershell. Perbaikan dipersilahkan!
Luncurkan Jalankan, lalu ketikkan jendela Buka turun bawah: regedit
Navigasikan ke, persis seperti di Window's Explorer:
HKEY_CURRENT_USER \ Software \ SimonTatham
Selesai
Bagi Anda yang perlu mengimpor Putty dari file registri offline misalnya ketika Anda sedang memulihkan dari sistem crash atau hanya pindah ke mesin baru dan mengambil data dari drive lama ada satu solusi lagi yang layak disebutkan:
http://www.nirsoft.net/utils/registry_file_offline_export.html
Aplikasi konsol yang hebat dan gratis ini akan mengekspor seluruh registri atau hanya kunci registri tertentu. Dalam kasus saya, saya cukup menyalin file registri dari drive lama ke direktori yang sama dengan alat eksportir dan kemudian saya menggunakan perintah dan sintaks berikut dalam jendela CMD yang dijalankan sebagai administrator:
RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER \ Software \ SimonTatham"
Setelah mengimpor file .reg dan memulai Putty, semuanya ada di sana. Sederhana dan efisien.
Bagi mereka yang tidak ingin mengacaukan registri, variasi dempul yang disimpan ke file telah dibuat. Terletak di sini: http://jakub.kotrla.net/putty/
Alangkah baiknya jika tim dempul akan mengambil ini sebagai opsi ke distribusi utama.
Ini jauh lebih mudah mengimpor ekspor registri daripada apa yang dinyatakan di atas. + Cukup:
Bekerja seperti juara di Win 7 Pro.
Contoh:
Cara mentransfer konfigurasi dempul dan konfigurasi sesi dari satu akun pengguna ke akun lain misalnya ketika membuat akun baru dan ingin menggunakan sesi / konfigurasi dempul dari akun lama
Proses:
- Ekspor kunci registri dari akun lama ke file
- Impor kunci registri dari file ke akun baru
Kunci reg ekspor: (dari akun OLD)
Impor kunci reg: (ke akun BARU)
Login ke akun BARU mis
Buka 'command prompt' yang normal (BUKAN admin!)
Ketik 'regedit'
Pilih 'Impor' dari menu
Pilih file registri untuk diimpor misalnya 'puttyconfig.reg'
Selesai
Catatan:
Jangan gunakan 'admin command prompt' karena pengaturan terletak di bawah '[HKEY_CURRENT_USER ...]' dan regedit akan berjalan sebagai admin dan menunjukkan bagian itu untuk pengguna admin daripada pengguna untuk mentransfer dari dan / atau untuk.
Perbaikan solusi bumerang untuk mengimpor data ke PuTTY portable
.
Cukup memindahkan yang diekspor putty.reg
(dengan solusi m0nhawk) ke PuTTYPortable\Data\settings\
tidak berfungsi. Putty Portable membuat cadangan file dan membuat yang kosong baru.
Untuk mengatasi masalah ini, gabungkan kedua putty.reg
penyalinan secara manual konfigurasi yang ingin Anda migrasikan dari yang diekspor putty.reg
ke yang baru dibuat di PuTTYPortable\Data\settings\putty.reg
bawah baris berikut.
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
Jawaban yang diposting oleh @ m0nhawk tampaknya tidak berfungsi saat saya uji pada mesin Windows 7. Sebagai gantinya, menggunakan skrip berikut akan mengekspor / mengimpor pengaturan dempul:
::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
Menggunakan metode ini juga dimungkinkan untuk melakukan perubahan konfigurasi massal, seperti mengubah font semua sesi.
Diambil dari sini: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
Saya menggunakan manajer koneksi dempul tempat Anda membuat basis data sesi. Sangat mudah untuk menyalin dan mengimpor basis data itu ke komputer lain.
Lihat panduan praktis ini
Ada skrip PowerShell di ratil.life/first-useful-powershell-script-putty-to-ssh-config yang dapat mengubah sesi menjadi format yang dapat digunakan .ssh/config
. Itu juga dapat ditemukan di GitHub .
Kutipan ini berisi isi utama kode, dan akan mencetak konfigurasi yang dihasilkan langsung ke 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 }
}
}
Jika Anda, seperti saya, menginstal Windows baru dan hanya setelah Anda ingat tentang sesi dempul, Anda masih dapat mengimpornya, jika Anda memiliki hard drive Windows lama atau setidaknya direktori "rumah" lama Anda didukung ( C:\Users\<user_name>
).
Dalam direktori ini harus ada NTUSER.DAT
file. Tersembunyi secara default, jadi Anda harus mengaktifkan file tersembunyi di Windows explorer Anda atau menggunakan browser file lain. File ini berisi HKEY_CURRENT_USER
cabang dari registri Windows lama Anda.
Untuk menggunakannya, Anda harus membuka regedit
Windows baru Anda, dan pilih HKEY_USERS
tombol.
Kemudian pilih File
-> Load Hive...
dan temukan direktori "rumah" lama dari instalasi Windows lama Anda. Dalam direktori ini harus ada NTUSER.DAT
file. Tersembunyi secara default, jadi, jika Anda tidak memungkinkan untuk menampilkan file tersembunyi di properti Windows explorer Anda, maka Anda bisa memasukkan nama file secara manual ke dalam File name
kotak input dialog "Load Hive" dan tekan Enter. Kemudian di jendela dialog berikutnya masukkan beberapa nama kunci untuk memuat registri lama ke dalamnya. mis tmp
.
HKEY_CURRENT_USER
Cabang registri lama Anda sekarang harus dapat diakses di bawah HKEY_USERS\tmp
cabang registri Anda saat ini.
Sekarang ekspor HKEY_USERS\tmp\Software\SimonTatham
cabang ke putty.reg
file, buka file ini di editor teks favorit Anda dan temukan-dan-ganti semua HKEY_USERS\tmp
string HKEY_CURRENT_USER
. Sekarang simpan .reg
file tersebut.
Anda dapat mengimpor sekarang file ini ke dalam registri Windows Anda saat ini dengan mengklik dua kali. Lihat jawaban m0nhawk bagaimana melakukan ini.
Pada akhirnya, pilih HKEY_USERS\tmp
cabang di editor registri dan kemudian pilih File
-> Unload Hive...
dan konfirmasi operasi ini.