Y a-t-il un moyen de faire cela?
Ou je dois prendre manuellement chaque enregistrement du registre?
cmd.exe
, nécessite 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 fichier *.reg
et acceptez l’importation.
cmd.exe
, nécessite 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 pas remplacerSimonTatham
avec votre nom d'utilisateur.
Remarque : Un fichier reg
sera créé sur le bureau de l'utilisateur actuel.
Remarque : Cela va pas exporter 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, dis-je!
J'ai rassemblé les scripts powershell ci-dessous pour exporter et importer les paramètres de PuTTY. Le fichier exporté est un fichier Windows .reg et importera proprement si vous en avez l'autorisation. Sinon, utilisez import.ps1 pour le charger.
Attention: Jouer avec le registre est une mauvaise idée, et je ne sais pas trop ce que je fais. Utilisez les scripts ci-dessous à vos risques et périls et soyez prêt à demander à votre service informatique de re-imaginer votre machine et de vous poser des questions inconfortables 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!
Lancer Exécuter, puis taper dans la liste déroulante Ouvrir: regedit
Accédez à, tout comme dans l'explorateur de Windows:
HKEY_CURRENT_USER\Software\SimonTatham
Terminé.
Si vous souhaitez importer les paramètres sur PuTTY Portable
Vous pouvez utiliser le fichier PuTTY.reg
.
Il suffit de le mettre sur ce chemin [path_to_Your_portable_apps]PuTTYPortable\Data\settings\PuTTY.reg
. Le programme l'importera
Pour ceux d'entre vous qui ont besoin d'importer PuTTY à partir d'un fichier de registre hors ligne, par exemple. Lorsque vous récupérez un système en panne ou que vous passez simplement à une nouvelle machine et récupérez des données sur cet ancien disque, il existe une solution supplémentaire 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’ensemble 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 y était. Simple et efficace.
Ce fut tellement plus facile d'importer l'exportation de registre que ce qui est indiqué ci-dessus. + Simplement:
Travaillé comme un champion sur Win 7 Pro.
Pour ceux qui ne veulent pas jouer avec le registre, une variante de PuTTY qui enregistre dans un fichier a été créée. Il se trouve ici: http://jakub.kotrla.net/PuTTY/
Ce serait bien si l'équipe PuTTY prenait cela comme une option dans la distribution principale.
Exemple:
Comment transférer la configuration de PuTTY et la configuration de session d’un compte utilisateur à un autre, par ex. lors de la création d'un nouveau compte et si vous souhaitez utiliser les sessions/configurations PuTTY de l'ancien compte
Process:
- Exporter la clé de registre d'un ancien compte dans un fichier
- Importer la clé de registre du fichier dans un nouveau compte
Export reg key: (à partir d'un ancien compte)
Import reg clé: (dans un nouveau compte)
Connectez-vous à un nouveau compte, par exemple. à M
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é
Note:
N'utilisez pas une "invite de commande admin" car les paramètres sont situés sous "[HKEY_CURRENT_USER ...]" et regedit s'exécuterait en tant qu'administrateur et afficherait cette section pour l'utilisateur admin plutôt que pour que l'utilisateur le transfère. et/ou à.
Une amélioration de la solution de bumerang pour importer des données dans PuTTY portable
.
Déplacer simplement PuTTY.reg
exporté (avec la solution m0nhawk) vers PuTTYPortable\Data\settings\
ne fonctionnait pas. PuTTY Portable sauvegarde le fichier et en crée un nouveau.
Pour résoudre ce problème, fusionnez PuTTY.reg
en copiant manuellement la configuration que vous souhaitez migrer de votre PuTTY.reg
exporté vers le PuTTYPortable\Data\settings\PuTTY.reg
nouvellement créé en dessous des lignes suivantes.
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 car je teste sur une machine Windows 7. À la place, l’utilisation des scripts suivants exporterait/importerait les paramètres de PuTTY:
::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
la réponse de m0nhawk ne fonctionnait pas pour moi sous Windows 10 - elle nécessitait une invite élevée de commande et refusait d'émettre un fichier.
Cela a fonctionné et n'a pas besoin d'altitude:
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
En utilisant cette méthode, il est également possible d'effectuer des modifications de configuration en masse, telles que la modification de la police de toutes les sessions.
Extrait de ici: http://www.sysadmit.com/2015/11/PuTTY-exportar-configuracion.html
Il existe un script PowerShell à ratil.life/first-useful-powershell-script-PuTTY-to-ssh-config qui peut convertir les sessions en un format utilisable dans .ssh/config
. On peut aussi le trouver 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 }
}
}
J'utilise gestionnaire de connexion 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 sur d'autres ordinateurs.
Voir ceci guide pratique