none
Копирование из под Enter-PSSession

    Вопрос

  • Есть сервер А Windows Server 2016. На нём можно выполнить команду:

    xcopy /S "\\A\scripts\fonts\*" "C:\fonts\"

    всё работает. Но когда с сервера B, я подключаюсь к сервер А через  Enter-PSSession, я не могу скопировать файлы:

    [aleks]: PS C:\> xcopy /S "\\А\scripts\fonts\*" "C:\fonts\"
    xcopy : Invalid drive specification
        + CategoryInfo          : NotSpecified: (Invalid drive specification:String) [], RemoteException
        + FullyQualifiedErrorId : NativeCommandError
    
    0 File(s) copied

    Пытался через robocopy - пишет отказыно в доступе. Но через проводник доступ к ресурсу есть.

    [aleks]: PS C:\> Robocopy.exe "\\А\scripts\fonts" "C:\fonts\"
    
    -------------------------------------------------------------------------------
       ROBOCOPY     ::     Robust File Copy for Windows
    -------------------------------------------------------------------------------
    
      Started : Dienstag, 13. Februar 2018 12:22:22
    2018/02/13 12:22:22 ERROR 5 (0x00000005) Getting File System Type of Source \\А\scripts\fonts
    Access is denied.
    
    
       Source - \\А\scripts\fonts
         Dest : C:\fonts\
    
        Files : *.*
    
      Options : *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30
    
    ------------------------------------------------------------------------------
    
    2018/02/13 12:22:22 ERROR 5 (0x00000005) Accessing Source Directory \\А\scripts\fonts
    Access is denied.

    немного погуглив нашёл решение, что можно вначале подмонтировать диск, и копировать данные с него, но я не могу подмонтировать диск не в удалённой сессии, ни на локальном компьютере:

    PS C:\Windows\system32> net use K: \\А\scripts\fonts\
    System error 67 has occurred.
    
    The network name cannot be found.

    Хотя опять же, через проводник общий ресурс виден, и его можно смонтировать вручуную (не через командну строку) и его тогда покажет net use:

    net use
    Unavailable  Z:        \\A\scripts\fonts
                                                    Microsoft Windows Network

    Как же мне скопировать данные с общего ресурса будучи подключённым к удалённому серверу?

    Спасибо!


    • Изменено Anahaym 13 февраля 2018 г. 11:33
    13 февраля 2018 г. 11:33

Ответы

  • Еще раз.

    На компьютере C создаем сессию к A.

    $s = New-PSSession ServerA

    С компьютера C под поданным пользователем должен быть доступ к  серверу B:

    "\\B\scripts\fonts\*" - Шара на сервере B

    "C:\fonts\" - Локальный путь на сервер A

    ToSession - Указывает, что копировать надо в удаленную сессию.

    Copy-Item -ToSession $s -Path "\\B\scripts\fonts\*" -Destination "C:\fonts\" -Recurse

    • Помечено в качестве ответа Anahaym 13 февраля 2018 г. 14:17
    13 февраля 2018 г. 13:29
    Отвечающий

Все ответы

  • $s = New-PSSession RemotePc
    Copy-Item -FromSession $s -Path "C:\file1" -Destination "C:\filw2"

    13 февраля 2018 г. 11:47
    Отвечающий
  • $s = New-PSSession RemotePc
    Copy-Item -FromSession $s -Path "C:\file1" -Destination "C:\filw2"

    прошу прощения, немного не так описал задачу.
    Есть сервер А и сервер В. На сервер В есть общая папка scripts.
    Нужно на компьютере С выполнить PowerShell так, чтобы скопировать из общей папки сервера В на сервер А.
    PS C:\Windows\system32> Copy-Item -FromSession $s -Path "\\A\scripts\fonts\*" -Destination "C:\fonts\"
    Copy-Item : The path '\\A\scripts\fonts\*' is not valid. Only absolute paths are supported on remote copy operations.
    At line:1 char:1
    + Copy-Item -FromSession $s -Path "\\A\scripts\fonts\*"  ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (\\A\scripts\fonts\*:String) [Copy-Item], ArgumentException
        + FullyQualifiedErrorId : RemotePathIsNotAbsolute,Microsoft.PowerShell.Commands.CopyItemCommand


    • Изменено Anahaym 13 февраля 2018 г. 13:10
    13 февраля 2018 г. 13:07
  • $s = New-PSSession ServerA

    Copy-Item -ToSession $s -Path "\\B\scripts\fonts\*" -Destination "C:\fonts\" -Recurse

    "\\B\scripts\fonts\*" - Путь к шаре на сервере B

    "C:\fonts\"  - Локальный путь на сервер A
    • Изменено KazunEditor 13 февраля 2018 г. 13:21
    13 февраля 2018 г. 13:16
    Отвечающий
  • так Destination у меня сервер А...

    Сейчас он мне ругнулся, что на сервере А нет C:\scripts\fonts, что верно.

    13 февраля 2018 г. 13:22
  • Еще раз.

    На компьютере C создаем сессию к A.

    $s = New-PSSession ServerA

    С компьютера C под поданным пользователем должен быть доступ к  серверу B:

    "\\B\scripts\fonts\*" - Шара на сервере B

    "C:\fonts\" - Локальный путь на сервер A

    ToSession - Указывает, что копировать надо в удаленную сессию.

    Copy-Item -ToSession $s -Path "\\B\scripts\fonts\*" -Destination "C:\fonts\" -Recurse

    • Помечено в качестве ответа Anahaym 13 февраля 2018 г. 14:17
    13 февраля 2018 г. 13:29
    Отвечающий
  • всё ок, с одним НО - папка сервере А должна быть. Т.е. она не создаётся при её отсутствии.
    13 февраля 2018 г. 14:17
  • всё ок, с одним НО - папка сервере А должна быть. Т.е. она не создаётся при её отсутствии.

    Вот не верю в это НО.

    13 февраля 2018 г. 14:31
    Отвечающий
  • всё ок, с одним НО - папка сервере А должна быть. Т.е. она не создаётся при её отсутствии.

    Вот не верю в это НО.

    Copy-Item : Cannot find path 'C:\fonts\' because it does not exist.
    At line:1 char:1
    + Copy-Item -ToSession $s -Path "\\B\scripts\fonts\*" -D ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (C:\fonts\:String) [Resolve-Path], ItemNotFoundException
        + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.ResolvePathCommand
    создал папку - всё прошло гладко.

    13 февраля 2018 г. 15:04