Comment exporter / importer la liste des sessions de mastic?
Y a-t-il un moyen de le faire?
Ou je dois prendre manuellement chaque enregistrement du registre?
14 réponses
Exporter
cmd.exe
, exiger élevée invite:
Seulement 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
Powershell:
Seulement 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")
Importer
Double-cliquez sur le fichier *.reg
et acceptez l'importation.
Autres moyens:
cmd.exe
, exiger commande élevée invite:
regedit /i putty-sessions.reg
regedit /i putty.reg
PowerShell:
reg import putty-sessions.reg
reg import putty.reg
Note: ne pas remplacer SimonTatham
avec votre nom d'utilisateur.
Note: Il va créer un reg
fichier sur le Bureau de l'utilisateur actuel.
Note : il vaPas exporter les clés SSH liées.
Quand j'ai essayé les autres solutions, j'ai eu cette erreur:
Registry editing has been disabled by your administrator.
Phooey à cela, je dis!
J'ai rassemblé les scripts powershell ci-dessous pour exporter et importer les paramètres PuTTY. Le fichier exporté est un windows .fichier reg et importera proprement si vous avez l'autorisation, sinon utilisez import. ps1 pour le charger.
Avertissement : jouer avec le Registre comme ceci 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 soyez prêt à avoir votre service informatique re-image de votre machine et 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 suis pas très familier avec Powershell. Les améliorations sont les bienvenues!
Si vous souhaitez importer des 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
-
Lancer Exécuter, ensuite, tapez dans la fenêtre déroulante ouverte: regedit
-
Accédez à, tout comme dans L'Explorateur de fenêtre:
HKEY_CURRENT_USER \ Software \ SimonTatham - Faites un clic droit sur la touche' SimonTatham ' (icône de répertoire), sélectionnez Exporter
Donnez au fichier un nom (disons) putty.reg et enregistrez-le à votre emplacement pour
utiliser plus tard. - Fermez L'Éditeur Du Registre.
Fait.
Pour ceux d'entre vous qui ont besoin d'importer du mastic à partir d'un fichier de registre hors ligne, par exemple lorsque vous récupérez un système écrasé ou que vous vous déplacez simplement vers une nouvelle machine et que vous récupérez des données sur cet ancien lecteur, il y a une solution de plus à mentionner:
Http://www.nirsoft.net/utils/registry_file_offline_export.html
Cette grande et gratuite application de la console va exporter l'ensemble du registre ou seulement une clé de Registre spécifique. Dans mon cas, j'ai simplement copié le fichier de registre à partir d'un vieux conduire dans le même répertoire que l'outil exportateur, puis j'ai utilisé la commande et la syntaxe suivantes dans la fenêtre CMD exécuter en tant qu'administrateur:
RegFileExport.exe NTUSER.Dat putty.reg "HKEY_CURRENT_USER \ Software \ SimonTatham"
Après avoir importé le .fichier reg et à partir de mastic tout était là. Simple et efficace.
C'était tellement plus facile d'importer l'exportation du registre que ce qui est indiqué ci-dessus. + Tout simplement:
- Faites un clic droit sur le fichier et
- sélectionnez "Fusionner"
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 le fichier a été créée. Il est situé ici: http://jakub.kotrla.net/putty/
Ce serait bien si l'équipe de mastic prenait cela en option dans la distribution principale.
Une amélioration de la solution de bumerang pour importer des données à PuTTY portable
.
Le simple déplacement de putty.reg
exporté (avec la solution m0nhawk) vers PuTTYPortable\Data\settings\
n'a pas fonctionné. PuTTY portable sauvegarde le fichier et créer un nouveau vide.
Pour contourner ce problème, fusionnez les deux putty.reg
en copiant manuellement la configuration que vous souhaitez migrer de votre putty.reg
exporté vers les lignes PuTTYPortable\Data\settings\putty.reg
nouvellement créées ci-dessous.
REGEDIT4
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\\Programme\\PuTTYPortable\\Data\\settings\\PUTTY.RND"
Exemple:
Comment transférer la configuration de putty et la configuration de session d'un compte utilisateur à un autre, par exemple lorsqu'un nouveau compte est créé et que vous souhaitez utiliser les sessions/configurations putty 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 un nouveau compte
L'Exportation clé reg: (partir de l'ANCIEN compte)
- connectez-vous à l'ancien compte, par exemple tomold
- ouvrez 'invite de commande' normale (pas admin !)
- Tapez "regedit"
- accédez à la section du registre où la configuration est stockée, par exemple [HKEY_CURRENT_USER \ SOFTWARE \ SimonTatham] et cliquez dessus
- , Sélectionnez "Exporter" dans le menu fichier ou clic droit de la souris (radio ctrl branche sélectionnée)
- enregistrez dans le fichier et nommez-le par exemple ' puttyconfig.reg"
- déconnexion à nouveau
Importer la clé reg: (dans un nouveau compte)
-
Connectez-vous à un nouveau compte, par exemple tom
Ouvrez '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'
Fait
Remarque:
N'utilisez pas une "invite de commande admin" car les paramètres sont situés sous "[HKEY_CURRENT_USER...] 'et regedit fonctionnerait en tant qu'administrateur et afficherait cette section pour l'administrateur-utilisateur plutôt que pour l'utilisateur de transférer de et / ou vers.
La réponse Postée par @m0nhawk ne semble pas fonctionner car je teste sur une machine Windows 7. Au lieu de cela, 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
En utilisant cette méthode, il est également possible d'effectuer des modifications de configuration de masse, telles que la modification de la police toutes les sessions.
- Exporter vers .reg
- effectuez une recherche et remplacez .reg
- Supprimer toutes les sessions
- Importer le nouveau .reg
Extraites à partir d'ici: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html
La réponse de M0nhawk ne fonctionnait pas pour moi sur Windows 10 - elle nécessitait une invite de commande élevée et refusait d'émettre un fichier.
Cela a fonctionné et n'a pas nécessité d'élévation:
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg
J'utilise Putty connection manager 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 ce guide pratique
Il y a un script PowerShell à ratil.vie/premier-utile-powershell-script-mastic-à-ssh-config qui peut convertir les sessions dans un format qui peut être utilisé 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 }
}
}