Y a-t-il un moyen de faire cela?
Ou dois-je prendre manuellement chaque enregistrement du Registre?
Y a-t-il un moyen de faire cela?
Ou dois-je prendre manuellement chaque enregistrement du Registre?
Réponses:
cmd.exe
, nécessitent une invite élevée:Seules les sessions:
regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions
Tous les paramètres:
regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham
Seules les sessions:
reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")
Tous les paramètres:
reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")
Double-cliquez sur le *.reg
fichier et acceptez l'importation.
cmd.exe
, nécessitent une invite de commande élevée:regedit /i putty-sessions.reg
regedit /i putty.reg
reg import putty-sessions.reg
reg import putty.reg
Remarque : ne remplacez pas SimonTatham
par votre nom d'utilisateur.
Remarque : Il créera un reg
fichier sur le bureau de l'utilisateur actuel.
Remarque : il n'exportera pas les clés SSH associées.
Lorsque j'ai essayé les autres solutions, j'ai eu cette erreur:
Registry editing has been disabled by your administrator.
Phooey à ça, je dis!
J'ai rassemblé les scripts PowerShell ci-dessous pour exporter et importer les paramètres PuTTY. Le fichier exporté est un fichier Windows .reg et sera importé proprement si vous en avez l'autorisation, sinon utilisez import.ps1 pour le charger.
Avertissement : jouer avec le registre comme celui-ci est une mauvaise idée ™, et je ne sais pas vraiment ce que je fais. Utilisez les scripts ci-dessous à vos risques et périls et préparez-vous à ce que votre service informatique recrée l'image de votre machine et vous pose des questions gênantes sur ce que vous faisiez.
Sur la machine source:
.\export.ps1
Sur la machine cible:
.\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"
Toutes mes excuses pour le code non idiomatique, je ne connais pas très bien Powershell. Les améliorations sont les bienvenues!
Lancez Run, puis tapez dans la fenêtre déroulante Ouvrir: regedit
Accédez à, comme dans l'Explorateur de fenêtres:
HKEY_CURRENT_USER \ Software \ SimonTatham
Terminé.
Pour ceux d'entre vous qui ont besoin d'importer Putty à partir d'un fichier de registre hors ligne, par exemple lorsque vous effectuez une récupération à partir d'un système en panne ou que vous passez simplement à une nouvelle machine et récupérez des données sur cet ancien lecteur, il existe une autre solution qui mérite d'être mentionnée:
http://www.nirsoft.net/utils/registry_file_offline_export.html
Cette application console géniale et gratuite exportera l'intégralité du registre ou seulement une clé de registre spécifique. Dans mon cas, j'ai simplement copié le fichier de registre d'un ancien lecteur dans le même répertoire que l'outil d'exportation, puis j'ai utilisé la commande et la syntaxe suivantes dans la fenêtre CMD exécutée en tant qu'administrateur:
RegFileExport.exe NTUSER.DAT putty.reg "HKEY_CURRENT_USER \ Software \ SimonTatham"
Après avoir importé le fichier .reg et démarré Putty, tout était là. Simple et efficace.
Pour ceux qui ne veulent pas jouer avec le registre, une variante de mastic qui enregistre dans un fichier a été créée. Il se trouve ici: http://jakub.kotrla.net/putty/
Ce serait bien que l'équipe de mastic prenne cela comme une option dans la distribution principale.
C'était tellement plus facile d'importer l'exportation du registre que ce qui est indiqué ci-dessus. + Simplement:
A travaillé comme un champion sur Win 7 Pro.
Exemple:
Comment transférer la configuration de mastic et la configuration de session d'un compte d'utilisateur à un autre, par exemple lors de la création d'un nouveau compte et que vous souhaitez utiliser les sessions / configurations de mastic de l'ancien compte
Processus:
- Exporter la clé de registre de l'ancien compte dans un fichier
- Importer la clé de registre du fichier dans le nouveau compte
Exporter la clé d'enregistrement: (à partir de l'ancien compte)
Importer la clé d'enregistrement: (dans un nouveau compte)
Connectez-vous à un nouveau compte, par exemple Tom
Ouvrez l'invite de commande normale (PAS admin!)
Tapez «regedit»
Sélectionnez «Importer» dans le menu
Sélectionnez le fichier de registre à importer, par exemple 'puttyconfig.reg'
Terminé
Remarque:
N'utilisez pas une «invite de commande admin» car les paramètres se trouvent sous «[HKEY_CURRENT_USER ...]» et regedit s'exécuterait en tant qu'administrateur et afficherait cette section pour l'administrateur-utilisateur plutôt que pour l'utilisateur à transférer depuis et / ou à.
Une amélioration de la solution de bumerang pour importer des données PuTTY portable
.
putty.reg
Déplacer simplement l'exportation (avec la solution m0nhawk) vers PuTTYPortable\Data\settings\
n'a pas fonctionné. PuTTY Portable sauvegarde le fichier et en crée un nouveau vide.
Pour contourner ce problème, fusionnez les deux en putty.reg
copiant manuellement la configuration que vous souhaitez migrer de votre fichier exporté putty.reg
vers la ligne nouvellement créée PuTTYPortable\Data\settings\putty.reg
ci-dessous.
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
La réponse publiée par @ m0nhawk ne semble pas fonctionner lorsque je teste sur une machine Windows 7. Au lieu de cela, l'utilisation des scripts suivants exporterait / importerait les paramètres de mastic:
::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
En utilisant cette méthode, il est également possible d'effectuer des modifications de configuration de masse, telles que la modification de la police de toutes les sessions.
Extrait d'ici: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
J'utilise le gestionnaire de connexions putty où vous créez une base de données de sessions. Il est facile de copier et d'importer cette base de données vers d'autres ordinateurs.
Voir ce guide pratique
Il existe un script PowerShell sur ratil.life/first-useful-powershell-script-putty-to-ssh-config qui peut convertir les sessions dans un format utilisable dans .ssh/config
. Il peut également être trouvé sur GitHub .
Cet extrait contient les entrailles principales du code et imprimera la configuration résultante directement sur 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 }
}
}
Si vous, comme moi, avez installé de nouveaux Windows et seulement après vous être souvenu des sessions de mastic, vous pouvez toujours les importer, si vous avez un ancien disque dur Windows ou au moins votre ancien répertoire "home" sauvegardé ( C:\Users\<user_name>
).
Dans ce répertoire, il devrait y avoir un NTUSER.DAT
fichier. Il est masqué par défaut, vous devez donc activer les fichiers cachés dans votre explorateur Windows ou utiliser un autre navigateur de fichiers. Ce fichier contient la HKEY_CURRENT_USER
branche de votre ancien registre Windows.
Pour l'utiliser, vous devez ouvrir regedit
sur votre nouveau Windows et sélectionner la HKEY_USERS
clé.
Sélectionnez ensuite File
-> Load Hive...
et recherchez votre ancien répertoire "home" de votre ancienne installation Windows. Dans ce répertoire, il devrait y avoir un NTUSER.DAT
fichier. Il est caché par défaut, donc, si vous n'avez pas permis d'afficher les fichiers cachés dans les propriétés de votre explorateur Windows, vous pouvez simplement saisir manuellement le nom du fichier dans la zone de File name
saisie de la boîte de dialogue "Charger la ruche" et appuyer sur Enter. Ensuite, dans la fenêtre de dialogue suivante, entrez un nom de clé pour y charger l'ancien registre. par exemple tmp
.
La HKEY_CURRENT_USER
branche de votre ancien registre devrait maintenant être accessible sous la HKEY_USERS\tmp
branche de votre registre actuel.
Maintenant, exportez la HKEY_USERS\tmp\Software\SimonTatham
branche dans un putty.reg
fichier, ouvrez ce fichier dans votre éditeur de texte préféré et recherchez et remplacez toutes les HKEY_USERS\tmp
chaînes par HKEY_CURRENT_USER
. Enregistrez maintenant le .reg
fichier.
Vous pouvez maintenant importer ce fichier dans votre registre Windows actuel en double-cliquant dessus. Voir la réponse de m0nhawk comment procéder.
À la fin, sélectionnez la HKEY_USERS\tmp
branche dans l'éditeur de registre, puis sélectionnez File
-> Unload Hive...
et confirmez cette opération.