Is er een manier om dit te doen?
Of moet ik elk record handmatig uit het register halen?
Antwoord 1, autoriteit 100%
Exporteren
cmd.exe
, vereisteverhoogde prompt:
Alleen sessies:
regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions
Alle instellingen:
regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham
Powershell:
Alleen sessies:
reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")
Alle instellingen:
reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")
Importeren
Dubbelklik op het bestand *.reg
en accepteer de import.
Alternatieve manieren:
cmd.exe
, vereisenverhoogde opdrachtprompt:
regedit /i putty-sessions.reg
regedit /i putty.reg
PowerShell:
reg import putty-sessions.reg
reg import putty.reg
Opmerking: vervangSimonTatham
niet door uw gebruikersnaam.
Opmerking: er wordt een reg
-bestand gemaakt op het bureaublad van de huidige gebruiker.
Opmerking: geengerelateerde SSH-sleutels worden geëxporteerd.
Antwoord 2, autoriteit 4%
Toen ik de andere oplossingen probeerde, kreeg ik deze foutmelding:
Registry editing has been disabled by your administrator.
Phoef dat zeg ik!
Ik heb de onderstaande powershell-scripts samengesteld voor het exporteren en importeren van PuTTY-instellingen. Het geëxporteerde bestand is een Windows .reg-bestand en wordt netjes geïmporteerd als je toestemming hebt, gebruik anders import.ps1 om het te laden.
Waarschuwing: zo met het register knoeien is een slecht idee™, en ik weet niet echt wat ik doe. Gebruik de onderstaande scripts op eigen risico en wees erop voorbereid dat uw IT-afdeling een nieuw image van uw machine kan maken en u ongemakkelijke vragen kan stellen over wat u aan het doen was.
Op de bronmachine:
.\export.ps1
Op de doelcomputer:
.\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"
Excuses voor de niet-idiomatische code, ik ben niet erg bekend met Powershell. Verbeteringen zijn welkom!
Antwoord 3, autoriteit 4%
-
Lancering,
typ vervolgens in het vervolgkeuzevenster Openen: regedit -
Navigeer naar, net als in Windows Verkenner:
HKEY_CURRENT_USER\Software\SimonTatham - Klik met de rechtermuisknop op de ‘SimonTatham’-toets (mappictogram), selecteer Exporteren
Geef het bestand een naam (zeg) putty.reg en sla het op uw locatie op voor
later gebruik. - Sluit Register-editor.
Gereed.
Antwoord 4, autoriteit 3%
Als u instellingen op PuTTY Portable
wilt importeren, kunt u het bestand putty.reg
gebruiken.
Zet het gewoon op dit pad [path_to_Your_portable_apps]PuTTYPortable\Data\settings\putty.reg
. Programma zal het importeren
Antwoord 5, autoriteit 2%
Voor degenen onder u die Putty moeten importeren uit een offline registerbestand, b.v. wanneer u herstelt van een gecrasht systeem of gewoon naar een nieuwe machine verhuist en gegevens van die oude schijf haalt, is er nog een oplossing die het vermelden waard is:
http://www.nirsoft.net/utils/registry_file_offline_export.html
Deze geweldige en gratis consoletoepassing exporteert het hele register of alleen een specifieke registersleutel. In mijn geval heb ik gewoon het registerbestand van een oude schijf naar dezelfde map gekopieerd als de exporttool en vervolgens heb ik de volgende opdracht en syntaxis in het CMD-venster gebruikt als beheerder:
RegFileExport.exe NTUSER.DAT putty.reg “HKEY_CURRENT_USER\Software\SimonTatham”
Na het importeren van het .reg-bestand en het starten van Putty was alles aanwezig. Eenvoudig en efficiënt.
Antwoord 6
Voor degenen die niet met het register willen knoeien, is er een variant van putty gemaakt die in een bestand kan worden opgeslagen. Het bevindt zich hier: http://jakub.kotrla.net/putty/
Het zou mooi zijn als het putty-team dit als optie in de hoofddistributie zou opnemen.
Antwoord 7
Dit was zoveel gemakkelijker bij het importeren van de register-export dan hierboven vermeld.
+
Gewoon:
- klik met de rechtermuisknop op het bestand en
- selecteer “Samenvoegen”
Werkte als een kampioen aan Win 7 Pro.
Antwoord 8
m0nhawk’s antwoord werkte niet voor mij op Windows 10 – het vereiste een verhoogde opdrachtprompt en weigerde een bestand uit te zenden.
Dit werkte en vereiste geen verhoging:
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
Antwoord 9
Voorbeeld:
Hoe u putty-configuratie- en sessieconfiguratie van de ene gebruikersaccount naar een andere b.v. Wanneer een nieuw account is gemaakt en de putty-sessies / configuraties van het oude account
gebruiken
proces:
– Exporteer registersleutel van Old-account naar een bestand
– Importeer de registersleutel uit het bestand naar een nieuw account
Export REG-toets: (van Old Account)
- Inloggen in het oude account b.v. tomold
- Normale ‘opdrachtprompt’ (niet admin!)
- Type ‘Regedit’
- Navigeer naar registersectie waar de configuratie wordt opgeslagen, b.v. [HKEY_CURRENT_USER \ SOFTWARE \ SIMONTATHAM] en klik erop
- Selecteer ‘Export’ in het menu Bestand of met de rechtermuisknop (Radio Ctrl ‘geselecteerde branch’)
- opslaan in bestand en noem het b.v. ‘puttyconfig.reg’
- logout opnieuw
Import REG-toets: (naar nieuwe account)
-
Inloggen in nieuwe account, b.v. Tom
-
Open Normale ‘opdrachtprompt’ (niet admin!)
-
Type ‘Regedit’
-
Selecteer ‘Import’ in het menu
-
Selecteer het registerbestand om b.v. ‘puttyconfig.reg’
-
Gereed
Opmerking:
Gebruik geen ‘Admin-opdrachtprompt’ omdat instellingen zich bevinden onder ‘[HKEY_CURRENT_USER …]’ en Regedit zou als beheerder worden uitgevoerd en laat zien dat de sectie voor de admin-gebruiker eerder voor de gebruiker is om van en / of naar.
Antwoord 10
Een verbetering van de oplossing van Bumerang om gegevens te importeren naar PuTTY portable
.
Gewoon de geëxporteerde putty.reg
(met m0nhawk-oplossing) verplaatsen naar PuTTYPortable\Data\settings\
werkte niet. PuTTY Portable maakt een back-up van het bestand en maakt een nieuw leeg bestand.
Om dit probleem te omzeilen, voegt u beide putty.reg
samen en kopieert u handmatig de configuratie die u wilt migreren van uw geëxporteerde putty.reg
naar de nieuw gemaakte PuTTYPortable\Data\settings\putty.reg
hieronder volgende regels.
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
Antwoord 11
Het antwoord van @m0nhawk lijkt niet te werken terwijl ik test op een Windows 7-machine.
In plaats daarvan zou het gebruik van de volgende scripts de instellingen van putty exporteren/importeren:
::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
Antwoord 12
Met deze methode is het ook mogelijk om massale configuratiewijzigingen uit te voeren, zoals het wijzigen van het lettertype voor alle sessies.
- Exporteren naar .reg
- Voer een zoekopdracht uit en vervang over .reg
- Alle sessies verwijderen
- Importeer de nieuwe .reg
Van hier geëxtraheerd: http://www.sysadmit.com/ 2015/11/putty-exportar-configuracion.html
Antwoord 13
Als je, net als ik, nieuwe Windows hebt geïnstalleerd en pas nadatje je de putty-sessies herinnert, kun je ze nog steeds importeren, als je een oude Windows-harde schijf hebt of in ieder geval je oude “home”-directory back-up gemaakt (C:\Users\<user_name>
).
In deze map moet het bestand NTUSER.DAT
staan. Het is standaard verborgen, dus u moet verborgen bestanden inschakelen in uw Windows Verkenner of een andere bestandsbrowser gebruiken. Dit bestand bevat de vertakking HKEY_CURRENT_USER
van uw oude Windows-register.
Om het te gebruiken, moet u regedit
openen op uw nieuwe Windows en HKEY_USERS
-sleutel selecteren.
Selecteer vervolgens File
-> Load Hive...
en zoek je oude “home”-directory van je oude Windows-installatie. In deze map zou het bestand NTUSER.DAT
moeten staan. Het is standaard verborgen, dus als u verborgen bestanden niet hebt ingeschakeld in de eigenschappen van uw Windows Verkenner, kunt u de bestandsnaam gewoon handmatig invoeren in het invoervak File name
van het dialoogvenster “Hive laden” en druk op Enter. Voer vervolgens in het volgende dialoogvenster een sleutelnaam in om het oude register erin te laden. bijv. tmp
.
De HKEY_CURRENT_USER
branch van uw oude register zou nu toegankelijk moeten zijn onder de HKEY_USERS\tmp
branch van uw huidige register.
Exporteer nu de tak HKEY_USERS\tmp\Software\SimonTatham
naar het bestand putty.reg
, open dit bestand in uw favoriete teksteditor en zoek en vervang alle HKEY_USERS\tmp
tekenreeks met HKEY_CURRENT_USER
. Sla nu het bestand .reg
op.
U kunt dit bestand nu in uw huidige Windows-register importeren door erop te dubbelklikken. Bekijk het antwoord van m0nhawkhoe je dit doet.
Selecteer uiteindelijk HKEY_USERS\tmp
branch in de register-editor en selecteer vervolgens File
-> Unload Hive...
en bevestig deze handeling.
Antwoord 14
Er is een PowerShell-script op ratil.life/ first-useful-powershell-script-putty-to-ssh-configdie de sessies kan converteren naar een formaat dat kan worden gebruikt in .ssh/config
. Het is ook te vinden op GitHub.
Dit fragment bevat de kern van de code en zal de resulterende configuratie rechtstreeks naar stdout afdrukken:
# 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 }
}
}
Antwoord 15
Ik gebruik Putty Connection Manager waar u een database van sessies maakt. Het is gemakkelijk om die database te kopiëren en importeren naar andere computers.
Zie deze Handige gids