Bunu yapmanın bir yolu var mı?
Yoksa Kayıt Defteri'nden her kaydı elle mi almalıyım?
Bunu yapmanın bir yolu var mı?
Yoksa Kayıt Defteri'nden her kaydı elle mi almalıyım?
Yanıtlar:
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
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")
*.reg
Dosyayı çift tıklayın ve içe aktarmayı kabul edin.
cmd.exe
, yükseltilmiş komut istemi gerektirir :regedit /i putty-sessions.reg
regedit /i putty.reg
reg import putty-sessions.reg
reg import putty.reg
Not : Kullanıcı adınızla değiştirmeyin SimonTatham
.
Not : reg
Geçerli kullanıcının Masaüstünde bir dosya oluşturur .
Not : Bu olacak değil ilgili SSH anahtarlarını ihracat.
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!
Çalıştır'ı başlatın, ardından Aç açılır penceresini yazın: regedit
Windows Gezgini'nde olduğu gibi şuraya gidin:
HKEY_CURRENT_USER \ Software \ SimonTatham
Bitti.
Ö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.
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.
Bu, kayıt defteri dışa aktarımını içe aktarmak, yukarıda belirtilenlerden çok daha kolaydı. + Basitçe:
Win 7 Pro'da şampiyon gibi çalıştı.
Ö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)
Kayıt anahtarını içe aktar: (YENİ hesaba)
YENİ hesaba giriş yap, örneğin tom
Normal 'komut istemini' açın (yönetici DEĞİL!)
'Regedit' yazın
Menüden 'İçe Aktar'ı seçin
İçe aktarılacak kayıt defteri dosyasını seçin, örn. 'Puttyconfig.reg'
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.
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.reg
yeni oluşturulan PuTTYPortable\Data\settings\putty.reg
satı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"
@ 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
Bu yöntemi kullanarak, tüm oturumların yazı tipini değiştirmek gibi toplu yapılandırma değişiklikleri yapmak da mümkündür.
Buradan alıntı: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
Oturumların bir veritabanını oluşturduğunuz macun bağlantı yöneticisini kullanıyorum . Bu veritabanını kopyalayıp başka bilgisayarlara aktarmak kolaydır.
Bu kullanışlı kılavuza bakın
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 }
}
}
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.DAT
dosya 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_USER
eski Windows kayıt defterinizin dalını içerir.
Kullanmak regedit
için yeni Windows'ınızı açmanız ve HKEY_USERS
tuşu seçmeniz gerekir .
Ardından File
-> öğesini seçin Load Hive...
ve eski Windows kurulumunuzun eski "ev" dizininizi bulun. Bu dizinde NTUSER.DAT
dosya 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\tmp
geçerli kayıt defterinin dalı altında erişilebilmelidir .
Şimdi HKEY_USERS\tmp\Software\SimonTatham
şubeyi putty.reg
dosyaya aktarın, bu dosyayı favori metin düzenleyicinizde açın ve tüm HKEY_USERS\tmp
dizeyi bul ve değiştir ile değiştirin HKEY_CURRENT_USER
. Şimdi .reg
dosyayı 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\tmp
kayıt defteri düzenleyicisinde dal seçin ve ardından File
-> öğesini seçin Unload Hive...
ve bu işlemi onaylayın.