Как экспортировать / импортировать список сеансов шпатлевки?


есть ли способ сделать это?

или я должен взять вручную каждую запись из реестра?

14 519

14 ответов:

экспорт

cmd.exe,требуются повышенный запрос:

только сеансы:

regedit /e "%USERPROFILE%\Desktop\putty-sessions.reg" HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions

все настройки:

regedit /e "%USERPROFILE%\Desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham

Powershell:

только сеансы:

reg export HKCU\Software\SimonTatham\PuTTY\Sessions ([Environment]::GetFolderPath("Desktop") + "\putty-sessions.reg")

все настройки:

reg export HKCU\Software\SimonTatham ([Environment]::GetFolderPath("Desktop") + "\putty.reg")

импорт

дважды щелкните на *.reg файл и принять импорт.

альтернативные способы:

cmd.exe, требуются командную строку:

regedit /i putty-sessions.reg
regedit /i putty.reg

PowerShell:

reg import putty-sessions.reg
reg import putty.reg

Примечание:не заменитьSimonTatham С вашим именем пользователя.

Примечание: это создаст reg файл на рабочем столе текущего пользователя.

Примечание: это не экспорт связанных ключей SSH.

когда я пробовал другие решения, я получил эту ошибку:

Registry editing has been disabled by your administrator.

Фу ты, я говорю!

я собрал следующие сценарии powershell для экспорта и импорта настроек шпатлевки. Экспортированный файл-это windows .reg-файл и будет импортировать чисто, если у вас есть разрешение, в противном случае используйте import.ps1 для его загрузки.

предупреждение: возиться с реестром, как это плохая идея™, и я действительно не знаю, что я делаю. Используйте ниже создавайте сценарии на свой страх и риск, и будьте готовы к тому, что ваш ИТ-отдел переделает вашу машину и задаст вам неудобные вопросы о том, что вы делали.

на исходной машине:

.\export.ps1

на целевой машине:

.\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"

извините за неидиоматический код, я не очень хорошо знаком с Powershell. Улучшения приветствуются!

Если вы хотите импортировать параметры о PuTTY Portable можно использовать .

просто положите его на этот путь [path_to_Your_portable_apps]PuTTYPortable\Data\settings\putty.reg. Программа будет импортировать его

  1. Запустить Запустить, затем введите в открывшемся выпадающем окне: regedit

  2. перейдите, как и в Проводнике окна:
    HKEY_CURRENT_USER\Software\SimonTatham

  3. щелкните правой кнопкой мыши на "SimonTatham" ключ (значок каталога), выберите Экспорт
    Дайте файлу имя (скажем) putty.reg и сохраните его в своем местоположении для
    позже использовать.
  4. Закройте Редактор Реестра.

сделано.

для тех из вас, кому нужно импортировать шпатлевку из автономного файла реестра, например, когда вы восстанавливаетесь из разбитой системы или просто переходите на новую машину и захватываете данные с этого старого диска, есть еще одно решение, о котором стоит упомянуть:

http://www.nirsoft.net/utils/registry_file_offline_export.html

Это большое и бесплатное консольное приложение будет экспортировать весь реестр или только определенный раздел реестра. В моем случае я просто скопировал файл реестра со старого диска в тот же каталог, что и инструмент экспорта, а затем я использовал следующую команду и синтаксис в окне CMD Запуск от имени администратора:

RegFileExport.exe NTUSER.Эта замазка.reg "HKEY_CURRENT_USER\Software\SimonTatham"

после импорта .Рег файл и стартовая замазка все было там. Просто и эффективно.

Это было намного проще импортировать экспорт реестра, чем то, что указано выше. + Просто:

  1. щелкните правой кнопкой мыши на файл и
  2. выберите "объединить"

работал как чемпион на Win 7 Pro.

для тех, кто не хочет возиться с реестром, был создан вариант putty, который сохраняет в файл. Он находится здесь:http://jakub.kotrla.net/putty/

было бы неплохо, если бы команда putty приняла это как вариант в основной дистрибутив.

улучшение решения bumerang для импорта данных в PuTTY portable.

просто перемещение экспортируемых putty.reg (С решением m0nhawk) к PuTTYPortable\Data\settings\ не работает. PuTTY Portable создает резервную копию файла и создает новый пустой.

чтобы обойти эту проблему, объединить оба putty.reg копирование вручную конфигурации, которую вы хотите перенести из экспортированного putty.reg к вновь созданному PuTTYPortable\Data\settings\putty.reg ниже следующие строки.

REGEDIT4

[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]
"RandSeedFile"="D:\Programme\PuTTYPortable\Data\settings\PUTTY.RND"

пример:
Как перенести конфигурацию putty и конфигурацию сеанса из одной учетной записи Пользователя в другую, например, при создании новой учетной записи и хотите использовать сеансы/конфигурации putty из старой учетной записи

процесс:
- Экспорт ключа реестра из старой учетной записи в файл
- Импорт ключа реестра из файла в новую учетную запись

экспорт reg ключ:(со старого аккаунта)

  1. войти в старую учетную запись, например, tomold
  2. откройте обычную "командную строку" (не admin !)
  3. вводим regedit'
  4. перейдите в раздел реестра, где хранится конфигурация, например [HKEY_CURRENT_USER\SOFTWARE\SimonTatham] и нажмите на нее
  5. выберите "Экспорт" в меню файл или щелкните правой кнопкой мыши (радио ctrl 'выбранная ветвь')
  6. сохранить в файл и назвать его, например - puttyconfig.reg'
  7. снова выход

Import reg key:(на новый счет)

  1. войдите в новую учетную запись, например tom

  2. откройте обычную "командную строку" (не admin !)

  3. вводим regedit'

  4. выберите "Импорт" из меню

  5. Выбрать файл реестра для импорта, например - puttyconfig.reg'

  6. сделал

Примечание:
Не используйте "командную строку администратора", так как настройки находятся в разделе " [HKEY_CURRENT_USER...] 'и regedit будет работать как администратор и показывать этот раздел для администратора-пользователя, а не для пользователя для передачи от и/или до.

ответ, опубликованный @m0nhawk, похоже, не работает, когда я тестирую на машине с Windows 7. Вместо этого, используя следующие скрипты будет экспортировать / импортировать настройки шпатлевки:

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

с помощью этого метода также можно выполнять массовые изменения конфигурации, такие как изменение шрифта all sessions.

  1. экспорт .Рег
  2. выполнить поиск и замену по .Рег
  3. удалить все сеансы
  4. импортировать новые .Рег

извлечено отсюда:http://www.sysadmit.com/2015/11/putty-exportar-configuracion.html

ответ m0nhawk не работал для меня в Windows 10 - он требовал повышенной командной строки и отказывался выдавать файл.

это работало и не требовало повышения:

reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY putty.reg

Я использую putty connection manager где вы создаете базу данных сеансов. Легко скопировать и импортировать эту базу данных на другие компьютеры.

посмотреть этот удобный руководство

есть скрипт PowerShell в ratil.жизни/первого-полезное-оболочка PowerShell-скрипт-шпатлевка-с-СШ-конфиг, который может конвертировать сеансы в формат, который может быть использован в .ssh/config. Его также можно найти на GitHub.

этот отрывок содержит основные кишки кода и будет печатать полученную конфигурацию непосредственно в 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 }
    }

}