Как скопировать сетевой файл с помощью wmic на удаленном компьютере?

Я администратор домена, и я пытаюсь запустить скрипт wmic для копирования файла на удаленный компьютер с другого удаленного компьютера.

Моя команда:

WMIC /NODE:@"C:\compList.txt" PROCESS CALL Create "xcopy \\networkPC\file.exe C:\"

он не копирует file.exe на компьютеры, которые я перечислил в compList.txt, я знаю, что это не проблема привилегий, потому что я попытался запустить простой процесс

cmd /c echo 1>C:\1.txt

и он создал 1.txt на удаленном компьютере.

В чем может быть проблема?

2 ответа

Решение

Возможно ли, что у вас включен брандмауэр Windows (или брандмауэр стороннего производителя), который блокирует вызов WMI? Порт 135 должен быть открыт для правильной работы WMI. См. Эту статью для получения подробной информации о подключении WMI через брандмауэр.

Редактировать:

Я еще покопался по этому поводу - проблема в том, как WMIC использует ваши учетные данные, когда пытается подключиться к networkPC. Вы используете WMIC в режиме олицетворения по умолчанию "Impersonate" - это позволяет WMIC олицетворять вашу учетную запись на локальном компьютере (компьютеры в compList.txt), но когда он пытается подключиться к удаленному компьютеру (networkPC), он не может олицетворять Вы, поэтому он подключается как NT AUTHORITY\ANONYMOUS LOGON.

Я думаю, что у вас есть 2 возможных решения здесь:

  1. Разрешите общему ресурсу networkPC иметь доступ на чтение для NT AUTHORITY\ANONYMOUS LOGON - это немного сложнее, чем кажется - вы должны предоставить ANONYMOUS LOGON общий доступ и разрешения на уровне файлов, а также разрешить ему активировать WMI в dcomcfg
  2. Настройте свой вызов WMIC для использования олицетворения делегата. Для этого необходимо настроить учетные записи пользователей и компьютеров в AD с полномочиями " Доверенные для делегирования ". Затем вы можете позвонить wmic с /IMPLEVEL:Delegate - но это открывает новую проблему, потому что вам также нужно пройти в /AUTHORITY:"kerberos:targetdomain\targetcomputer" Параметр - и targetcomputer - это имя компьютера из compList.txt - это означает, что вам нужно будет помещать свои wmic-вызовы в цикл вокруг компьютеров в compList.txt вместо использования /NODE:@compList.txt

Один из способов преодоления этой ошибки - использовать runas, Если у вас есть доступ к командной строке, то используйте /runas:<domain>\<domainadmin> cmd.exe, Вы получите вторую командную строку, которая работает с учетными данными администратора домена. (Примечание: для выполнения на Windows 7, возможно, придется подняться выше UAC.)

Получив командную строку администратора домена, продолжайте использовать WMIC.

C:\\>**runas /user:dom\domadmin cmd.exe**

(запросит пароль администратора домена и откроет новую командную строку)

C:\\>**wmic /node:@c:\list.txt**

затем

wmic:root\cli>**call create process "xcopy \\\server\file C:\folder\file"**

должен скопировать.

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