#powershell #session #file-transfer
#powershell #сеанс #передача файлов
Вопрос:
Обычно я работаю на удаленных устройствах из Powershell
, используя быстрый и полезный «Enter-PSSession»
это хороший вариант …
хорошо заменяет сеанс консоли SSH …
а также имеет некоторые преимущества перед SSH (также имеет недостатки)
но… Мне часто нужно ПЕРЕДАВАТЬ ФАЙЛ ИЛИ ПАПКУ (извлекать из удаленного) …
и я обнаружил, что несколько РАЗДРАЖАЕТ СОЗДАНИЕ НОВОГО СЕАНСА (new-session)
и повторный ввод учетных данных … и т. Д. И т. Д. … Просто для создания этой копии..
?есть ли БОЛЕЕ УДОБНЫЙ ПОДХОД??
он же … более простой способ выполнить эту передачу файлов
изнутри текущего сеанса???
Для справки я оставлю ссылку
на обсуждение этой темы на форуме MS…
Комментарии:
1. Должен ли он использовать сеанс?
Copy-Item C:pathtotxt.txt -Destination \NetBiosNamec$destinationpath
2. Черт возьми, вы даже можете использовать:
invoke-command -ComputerName "name" -ScriptBlock { Copy-Item \compnamec$pathtotxt.txt -Destination C:localpath
и он будет копировать из их системы в зависимости от того, что указано
Ответ №1:
Создайте удаленный сеанс с New-PSSession
помощью Copy-Item
параметра и используйте его -FromSession
:
$session = New-PSSession -ComputerName remoteComputer
Copy-Item C:pathonremote.ext -Destination C:localdestination -FromSession $session
Вы можете повторно $session
использовать его для любых последующих операций копирования с того же компьютера
Обе команды имеют псевдонимы, которые делают эту работу с очень небольшим количеством нажатий клавиш:
$s = nsn remoteComputer
cp file.ext . -From $s
Комментарии:
1. да … именно так я его и использовал… но если я нахожусь в сеансе, созданном с помощью Enter-PSSession, и хочу выполнить некоторую передачу файлов -> Я должен выйти и скопировать… и воссоздать сеанс… и если мне нужно выполнить еще несколько операций передачи файлов -> снова выйти .. и перенести… и повторно войти в сеанс… и так далее .. и так далее…
2. Поскольку сеанс уже существует… и копирование в Session / FromSession уже завершается… это будет иметь смысл … и будет огромным удобством… если бы вы могли сделать эту передачу файлов прозрачной,,,
3. @ZEE Я не уверен, что понимаю проблему — вам не нужно воссоздавать сеанс после этого,
Enter-PSSession $someExistingSession
работает просто отлично4. если вы находитесь в сеансе, созданном с помощью «Enter-PSSession $ session» … вам нужно будет выйти из этого сеанса в «Копировать… -FromSession $session»… и снова введите сеанс «Enter-PSSession $ session»… чтобы продолжить вашу работу … это должно быть «предотвратимое раздражение»…
5. @ZEE Правильно, с этим мало что можно сделать. Другой вариант — оставаться в локальном сеансе, а затем использовать удаленный сеанс по одной команде за раз, используя
Invoke-Command -Session $session { <# execute this in remote session #> }