2015-11-19 8 views
1

Я пытаюсь выполнить команду PowerShell, которая выполняет psexec на удаленной машине в качестве учетной записи локальной системы, которая затем выполняет robocopy (через CMD /C) в режиме регистрации, чтобы перечислить все файлы и размеры файлов в пределах конкретные локальные папки.Возвращенные результаты Robocopy консоли с помощью PsExec, как LocalSystem

Я не могу получить данные из команды robocopy, хотя, если я использую простую команду echo для генерации некоторых данных, я получаю данные обратно в порядке.

Invoke-Command -ComputerName $computerName -ScriptBlock { 
    psexec -s cmd /c "robocopy C:\Windows\Temp C:\Windows\Temp /e /l /ns /np /njh /BYTES" 
} 

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

+1

Я думаю, что у вас возникла проблема, так как вы подписываетесь на удаленную систему в качестве другого пользователя. Я думаю, что это называется проблемой с двойным прыжком. Почему бы просто не использовать 'psexec' прямо и пропустить' Invoke-Command'. '& psexec.exe \\ $ computerName -s cmd .....' – Matt

+0

Почему вы запускаете 'psexex' через' Invoke-Command', почему вы используете 'robocopy' в' cmd', когда вы не используете все, что потребует 'cmd', и почему вы пытаетесь скопировать' C: \ Windows \ Temp' на себя? –

+0

Спасибо, хотя я уже пробовал это. Скорость WAN ужасна, и количество файлов в некоторых случаях достигает миллионов. Команда должна быть выполнена на удаленном компьютере. Странно, что я вижу psexec и robocopy, работающие на удаленной системе, и процессор сидит высоко, пока он перечисляет файлы, хотя все, что я верну на завершение, является стандартным сообщением об авторском праве robocopy, а затем кодом выхода 0. Это похоже на то, что robocopy выполняет еще один процесс, который не записывается в удаленную консоль CMD ... возможно, robocopy не является ответом ... – supermerio

ответ