Я пытаюсь запустить с сервера следующую команду, но в итоге она не работает. То, что я пытаюсь сделать, это скопировать файл с C $ моего сервера для конкретного клиента.

10.10.10.10 (сервер)

10.10.10.100 (клиент)

НЕ РАБОТАЕТ

wmic /node:10.10.10.100 /USER:"administrator@test.local" /PASSWORD:"ppaass" process call create "XCOPY /Y \\10.10.10.10\c$\script\a.txt c:\a.txt*"

Результат в командной строке

Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ProcessId = 1132;
        ReturnValue = 0;
};

РАБОЧАЯ команда

wmic /node:10.10.10.100 /USER:"administrator@test.local" /PASSWORD:"ppaass" process call create "cmd.exe /c 'type c:\a.txt > c:\b.txt"

Что может быть не так в первой команде?

1 ответ1

0

"Результаты" для нерабочей версии фактически говорят о том, что ДЕЙСТВИТЕЛЬНО работает (возврат кода 0 означает "успешный"). Но все, что вам нужно сказать, это то, что вызов "process call create" сработал.

Он сообщает, что он выполняет ваш процесс, поэтому, скорее всего, вызванная вами команда (XCopy) по какой-то причине не работает.

Я думаю, что пользователь, который запускает процесс на клиенте, не имеет доступа к общим ресурсам администратора (c$) на сервере. ИЛИ это потому, что вы пытаетесь скопировать файл в корень C: что обычно не разрешено в версиях Windows новее, чем XP.

Чтобы выполнить отладку, войдите на клиент как пользователь, которого вы пытаетесь использовать для запуска команды, запустите ее вручную в командной строке и запишите результаты / сообщения об ошибках.

И / или расширите команду, которую вы пытаетесь запустить с помощью WMI, чтобы включить перенаправление потоков вывода StdOut и StdErr в файл. Что-то вроде:

XCOPY /Y \\10.10.10.10\c$\script\a.txt c:\a.txt 1> c:\output.txt 2>&1

А затем проверьте output.txt .

(опять же, в отличие от написанного в этом примере, старайтесь избегать использования корня C: для хранения файлов, создания папки и целевого содержимого).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .