Как экспортировать / импортировать список сеансов шпатлевки?
есть ли способ сделать это?
или я должен взять вручную каждую запись из реестра?
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
. Программа будет импортировать его
Запустить Запустить, затем введите в открывшемся выпадающем окне: regedit
перейдите, как и в Проводнике окна:
HKEY_CURRENT_USER\Software\SimonTatham- щелкните правой кнопкой мыши на "SimonTatham" ключ (значок каталога), выберите Экспорт
Дайте файлу имя (скажем) putty.reg и сохраните его в своем местоположении для
позже использовать.- Закройте Редактор Реестра.
сделано.
для тех из вас, кому нужно импортировать шпатлевку из автономного файла реестра, например, когда вы восстанавливаетесь из разбитой системы или просто переходите на новую машину и захватываете данные с этого старого диска, есть еще одно решение, о котором стоит упомянуть:
http://www.nirsoft.net/utils/registry_file_offline_export.html
Это большое и бесплатное консольное приложение будет экспортировать весь реестр или только определенный раздел реестра. В моем случае я просто скопировал файл реестра со старого диска в тот же каталог, что и инструмент экспорта, а затем я использовал следующую команду и синтаксис в окне CMD Запуск от имени администратора:
RegFileExport.exe NTUSER.Эта замазка.reg "HKEY_CURRENT_USER\Software\SimonTatham"
после импорта .Рег файл и стартовая замазка все было там. Просто и эффективно.
Это было намного проще импортировать экспорт реестра, чем то, что указано выше. + Просто:
- щелкните правой кнопкой мыши на файл и
- выберите "объединить"
работал как чемпион на 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 ключ:(со старого аккаунта)
- войти в старую учетную запись, например, tomold
- откройте обычную "командную строку" (не admin !)
- вводим regedit'
- перейдите в раздел реестра, где хранится конфигурация, например [HKEY_CURRENT_USER\SOFTWARE\SimonTatham] и нажмите на нее
- выберите "Экспорт" в меню файл или щелкните правой кнопкой мыши (радио ctrl 'выбранная ветвь')
- сохранить в файл и назвать его, например - puttyconfig.reg'
- снова выход
Import reg key:(на новый счет)
войдите в новую учетную запись, например tom
откройте обычную "командную строку" (не admin !)
вводим regedit'
выберите "Импорт" из меню
Выбрать файл реестра для импорта, например - puttyconfig.reg'
сделал
Примечание:
Не используйте "командную строку администратора", так как настройки находятся в разделе " [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.
- экспорт .Рег
- выполнить поиск и замену по .Рег
- удалить все сеансы
- импортировать новые .Рег
извлечено отсюда: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 } } }