Robocopy как другой пользователь

Проблема: Robocopy не запускается как другой пользователь в Start-Process

Сценарий отлично работает при запуске учетной записи, которая имеет разрешения для обоих расположений файлов, но, похоже, не принимает -credential пары.

Не уверен, что мое форматирование неверно или я что-то делаю неправильно.

# Create Password for credential
$passw = convertto-securestring "Password" -asplaintext –force
# Assembles password into a credential
$creds = new-object -typename System.Management.Automation.PSCredential -argumentlist "DOMAIN\Username", $passw
# Select a source / destination path, can contain spaces
$Source = '\\Source\E$\Location'
$Destination = '\\Destination\Location Here'
# formats the arguments to allow the credentials to be wrapped into the command
$RoboArgs = "`"$($Source)`" `"$($Destination)`"" + " /e /Copy:DAT"
# Started Robocopy with arguments and credentials
Start-Process -credential $creds Robocopy.exe -ArgumentList $RoboArgs -Wait

2 ответа

Решение

Robocopy будет использовать стандартный механизм проверки подлинности Windows.

Поэтому вам, вероятно, необходимо подключиться к серверам, используя соответствующие учетные данные, прежде чем вводить команду robocopy.

Ты можешь использовать net use сделать это.

net use X: '\\Source\E$\Location' /user:MYDOMAIN\USER THEPASSWORD
net use Y: '\\Destination\Location Here' /user:MYDOMAIN\USER THEPASSWORD

net use X: /d
net use Y: /d

а затем начните ROBOCOPY

Ответ S.Spieker будет работать, но если вы хотите использовать встроенную команду PowerShell и передавать учетные данные в качестве объекта pscredential, вы можете использовать New-PSDrive для подключения дисков:

    $passw = convertto-securestring "Password" -asplaintext –force
    $creds = new-object -typename System.Management.Automation.PSCredential -argumentlist "DOMAIN\Username", $passw
    $Source = '\\Source\E$\Location'
    $Destination = '\\Destination\Location Here'

    New-PSDrive -Name Source -PSProvider FileSystem -Root $Source -Credentials $creds
    New-PSDrive -Name Destination -PSProvider FileSystem -Root $Destination -Credentials $creds

    Robocopy.exe \\Source \\Destination /e /Copy:DAT"

    Remove-PSDrive -Name Source 
    Remove-PSDrive -Name Destination 

* Я могу ошибаться в Robocopy, прошло уже много лет с тех пор, как я его использовал, но монтаж дисков правильный.

Другие вопросы по тегам