Каков наилучший способ извлечь удаленный файл или папку из PSSession (Enter-PSSession)

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