Gibt es eine Möglichkeit, dies zu tun?
Oder muss ich jeden Datensatz manuell aus der Registrierung übernehmen?
Gibt es eine Möglichkeit, dies zu tun?
Oder muss ich jeden Datensatz manuell aus der Registrierung übernehmen?
Antworten:
cmd.exe
, erfordern erhöhte Eingabeaufforderung:Nur Sitzungen:
regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions
Alle Einstellungen:
regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham
Nur Sitzungen:
reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")
Alle Einstellungen:
reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")
Doppelklicken Sie auf die *.reg
Datei und akzeptieren Sie den Import.
cmd.exe
, erfordern erhöhte Eingabeaufforderung:regedit /i putty-sessions.reg
regedit /i putty.reg
reg import putty-sessions.reg
reg import putty.reg
Hinweis : Nicht durch SimonTatham
Ihren Benutzernamen ersetzen .
Hinweis : Es wird eine reg
Datei auf dem Desktop des aktuellen Benutzers erstellt.
Hinweis : Es werden keine verwandten SSH-Schlüssel exportiert.
Als ich die anderen Lösungen ausprobierte, bekam ich diesen Fehler:
Registry editing has been disabled by your administrator.
Phooey dazu, sage ich!
Ich habe die folgenden Powershell-Skripte zum Exportieren und Importieren von PuTTY-Einstellungen zusammengestellt. Die exportierte Datei ist eine Windows-REG-Datei und wird sauber importiert, wenn Sie über die Berechtigung verfügen. Andernfalls laden Sie sie mit import.ps1.
Warnung : Es ist eine schlechte Idee, mit der Registrierung wie dieser herumzuspielen, und ich weiß nicht wirklich, was ich tue. Verwenden Sie die folgenden Skripte auf eigenes Risiko. Lassen Sie sich von Ihrer IT-Abteilung ein neues Image Ihres Computers erstellen und stellen Sie unangenehme Fragen zu Ihren Aktivitäten.
Auf dem Quellcomputer:
.\export.ps1
Auf dem Zielcomputer:
.\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"
Entschuldigung für den nicht-idiomatischen Code, ich bin mit Powershell nicht sehr vertraut. Verbesserungen sind willkommen!
Starten Sie Run und geben Sie im Dropdown-Fenster Öffnen Folgendes ein: regedit
Navigieren Sie wie im Explorer von
Windows zu : HKEY_CURRENT_USER \ Software \ SimonTatham
Erledigt.
Für diejenigen unter Ihnen, die Putty aus einer Offline-Registrierungsdatei importieren müssen, z. B. wenn Sie sich von einem abgestürzten System erholen oder einfach auf einen neuen Computer wechseln und Daten von diesem alten Laufwerk abrufen, gibt es eine weitere erwähnenswerte Lösung:
http://www.nirsoft.net/utils/registry_file_offline_export.html
Diese großartige und kostenlose Konsolenanwendung exportiert die gesamte Registrierung oder nur einen bestimmten Registrierungsschlüssel. In meinem Fall habe ich einfach die Registrierungsdatei von einem alten Laufwerk in dasselbe Verzeichnis wie das Exporter-Tool kopiert und dann den folgenden Befehl und die folgende Syntax im CMD-Fenster verwendet, das als Administrator ausgeführt wurde:
RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER \ Software \ SimonTatham"
Nach dem Importieren der .reg-Datei und dem Starten von Putty war alles da. Einfach und effizient.
Dies war so viel einfacher beim Importieren des Registrierungsexports als oben angegeben. + Einfach:
Arbeitete wie ein Champion bei Win 7 Pro.
Für diejenigen, die sich nicht mit der Registrierung anlegen möchten, wurde eine Variante von Putty erstellt, die in einer Datei gespeichert wird. Es befindet sich hier: http://jakub.kotrla.net/putty/
Es wäre schön, wenn das Kitt-Team dies als Option in die Hauptverteilung aufnehmen würde.
Beispiel:
So übertragen Sie die Kittkonfiguration und Sitzungskonfiguration von einem Benutzerkonto auf ein anderes, z. B. wenn ein neues Konto erstellt wurde und Sie die Kitt-Sitzungen / -Konfigurationen aus dem alten Konto verwenden möchten
Prozess:
- Registrierungsschlüssel aus altem Konto in eine Datei
exportieren - Registrierungsschlüssel aus Datei in neues Konto importieren
Registrierungsschlüssel exportieren: (vom ALTEN Konto)
Registrierungsschlüssel importieren: (in NEUES Konto)
Loggen Sie sich in ein NEUES Konto ein, zB Tom
Öffnen Sie die normale 'Eingabeaufforderung' (NICHT admin!)
Geben Sie 'regedit' ein
Wählen Sie "Importieren" aus dem Menü
Wählen Sie die zu importierende Registrierungsdatei aus, z. B. 'puttyconfig.reg'.
Erledigt
Hinweis:
Verwenden Sie keine 'admin-Eingabeaufforderung', da sich die Einstellungen unter '[HKEY_CURRENT_USER ...]' befinden und regedit als admin ausgeführt wird und diesen Abschnitt für den admin-Benutzer und nicht für den Benutzer zum Übertragen von und / oder anzeigt zu.
Eine Verbesserung der Lösung von Bumerang zum Importieren von Daten in PuTTY portable
.
Das putty.reg
einfache Verschieben des Exports (mit der m0nhawk-Lösung) nach PuTTYPortable\Data\settings\
hat nicht funktioniert. PuTTY Portable sichert die Datei und erstellt eine neue leere.
Um dieses Problem zu putty.reg
umgehen, führen Sie beide manuell zusammen, indem Sie die Konfiguration, die Sie migrieren möchten, von der exportierten putty.reg
in die neu erstellte PuTTYPortable\Data\settings\putty.reg
unten stehende Zeile kopieren .
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
Die Antwort von @ m0nhawk scheint beim Testen auf einem Windows 7-Computer nicht zu funktionieren. Stattdessen würden die folgenden Skripte die Einstellungen von Putty exportieren / importieren:
::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
Mit dieser Methode können auch Massenkonfigurationsänderungen vorgenommen werden, z. B. das Ändern der Schriftart für alle Sitzungen.
Auszug aus hier: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
Ich verwende Putty Connection Manager, wo Sie eine Datenbank mit Sitzungen erstellen. Es ist einfach, diese Datenbank zu kopieren und auf andere Computer zu importieren.
Siehe diese praktische Anleitung
Unter ratil.life/first-useful-powershell-script-putty-to-ssh-config gibt es ein PowerShell-Skript, mit dem die Sitzungen in ein Format konvertiert werden können, in dem sie verwendet werden können .ssh/config
. Es kann auch auf GitHub gefunden werden .
Dieser Auszug enthält die wichtigsten Eingeweide des Codes und druckt die resultierende Konfiguration direkt an 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 }
}
}
Wenn Sie wie ich neues Windows installiert haben und erst, nachdem Sie sich an Kitt-Sitzungen erinnert haben, können Sie diese weiterhin importieren, wenn Sie eine alte Windows-Festplatte oder zumindest Ihr altes "Home" -Verzeichnis gesichert haben ( C:\Users\<user_name>
).
In diesem Verzeichnis sollte sich eine NTUSER.DAT
Datei befinden. Es ist standardmäßig ausgeblendet, daher sollten Sie ausgeblendete Dateien in Ihrem Windows Explorer aktivieren oder einen anderen Dateibrowser verwenden. Diese Datei enthält den HKEY_CURRENT_USER
Zweig Ihrer alten Windows-Registrierung.
Um es zu verwenden, müssen Sie es regedit
unter Ihrem neuen Windows öffnen und den HKEY_USERS
Schlüssel auswählen .
Wählen Sie dann File
-> Load Hive...
und suchen Sie Ihr altes "Home" -Verzeichnis Ihrer alten Windows-Installation. In diesem Verzeichnis sollte sich eine NTUSER.DAT
Datei befinden. Es ist standardmäßig ausgeblendet. Wenn Sie also nicht aktiviert haben, dass ausgeblendete Dateien in Ihren Windows Explorer-Eigenschaften angezeigt werden, können Sie den Dateinamen einfach manuell in das File name
Eingabefeld des Dialogfelds "Hive laden" eingeben und drücken Enter. Geben Sie dann im nächsten Dialogfenster einen Schlüsselnamen ein, um die alte Registrierung darin zu laden. zB tmp
.
Der HKEY_CURRENT_USER
Zweig Ihrer alten Registrierung sollte jetzt unter dem HKEY_USERS\tmp
Zweig Ihrer aktuellen Registrierung zugänglich sein .
Exportieren Sie nun den HKEY_USERS\tmp\Software\SimonTatham
Zweig in eine putty.reg
Datei, öffnen Sie diese Datei in Ihrem bevorzugten Texteditor und suchen und ersetzen Sie alle HKEY_USERS\tmp
Zeichenfolgen durch HKEY_CURRENT_USER
. Speichern Sie nun die .reg
Datei.
Sie können diese Datei jetzt in Ihre aktuelle Windows-Registrierung importieren, indem Sie darauf doppelklicken. Siehe m0nhawks Antwort, wie das geht.
Wählen Sie am Ende HKEY_USERS\tmp
im Registrierungseditor einen Zweig aus und wählen Sie dann File
-> Unload Hive...
und bestätigen Sie diesen Vorgang.