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?

519
demandé sur kenorb 2012-10-23 09:10:05

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.

953
répondu m0nhawk 2017-05-17 16:47:12

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!

35
répondu dwurf 2015-04-10 00:42:31

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

33
répondu bumerang 2015-08-27 14:20:53
  1. Lancer Exécuter, ensuite, tapez dans la fenêtre déroulante ouverte: regedit

  2. Accédez à, tout comme dans L'Explorateur de fenêtre:
    HKEY_CURRENT_USER \ Software \ SimonTatham

  3. 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.
  4. Fermez L'Éditeur Du Registre.

Fait.

31
répondu Sireesh Yarlagadda 2017-10-23 14:47:17

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.

17
répondu monsune 2015-12-25 17:40:56

C'était tellement plus facile d'importer l'exportation du registre que ce qui est indiqué ci-dessus. + Tout simplement:

  1. Faites un clic droit sur le fichier et
  2. sélectionnez "Fusionner"

Travaillé comme un champion sur Win 7 Pro.

11
répondu DudeGoingDeaf 2016-01-29 14:12:41

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.

10
répondu Jason 2015-11-03 16:51:37

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"
9
répondu L. G. 2013-11-22 13:40:16

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)

  1. connectez-vous à l'ancien compte, par exemple tomold
  2. ouvrez 'invite de commande' normale (pas admin !)
  3. Tapez "regedit"
  4. accédez à la section du registre où la configuration est stockée, par exemple [HKEY_CURRENT_USER \ SOFTWARE \ SimonTatham] et cliquez dessus
  5. , Sélectionnez "Exporter" dans le menu fichier ou clic droit de la souris (radio ctrl branche sélectionnée)
  6. enregistrez dans le fichier et nommez-le par exemple ' puttyconfig.reg"
  7. déconnexion à nouveau

Importer la clé reg: (dans un nouveau compte)

  1. Connectez-vous à un nouveau compte, par exemple tom

  2. Ouvrez 'invite de commande' normale (pas admin !)

  3. Tapez "regedit"

  4. Sélectionnez "Importer" dans le menu

  5. Sélectionnez le fichier de Registre à importer, par exemple ' puttyconfig.reg'

  6. 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.

7
répondu Mungo 2016-12-21 02:02:12

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
6
répondu Meow 2015-09-05 02:24:35

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.

  1. Exporter vers .reg
  2. effectuez une recherche et remplacez .reg
  3. Supprimer toutes les sessions
  4. Importer le nouveau .reg

Extraites à partir d'ici: http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html

6
répondu YumUrli 2015-11-24 21:59:04

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
5
répondu fiat 2017-04-05 09:42:39

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

2
répondu jasonoriordan 2016-01-21 09:52:22

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 }
    }

}
0
répondu mwfearnley 2018-04-10 13:20:27