Как скопировать сетевой файл с помощью 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 возможных решения здесь:
- Разрешите общему ресурсу networkPC иметь доступ на чтение для NT AUTHORITY\ANONYMOUS LOGON - это немного сложнее, чем кажется - вы должны предоставить ANONYMOUS LOGON общий доступ и разрешения на уровне файлов, а также разрешить ему активировать WMI в dcomcfg
- Настройте свой вызов 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"**
должен скопировать.