Назад | Перейти на главную страницу

Как скопировать сетевой файл с помощью 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 на удаленном компьютере.

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

Один из способов обойти эту ошибку - использовать 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"**

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

Возможно ли, что у вас включен брандмауэр 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 общий доступ и разрешения на уровне файлов, а также разрешить ему активировать WMI в dcomcfg
  2. Настройте вызов WMIC на использование олицетворения делегата. Для этого вам необходимо настроить учетные записи пользователей и компьютеров в AD с помощью "Надежно для делегирования"авторитет. Затем вы можете позвонить wmic с /IMPLEVEL:Delegate - но это открывает новую проблему, потому что вам также необходимо передать /AUTHORITY:"kerberos:targetdomain\targetcomputer" параметр - а targetcomputer - это имя компьютера из compList.txt - это означает, что вам нужно будет поместить свои вызовы wmic в цикл вокруг компьютеров в compList.txt вместо использования /NODE:@compList.txt