![]() |
Автоматизированное копирование файлов на парк машин
Коллеги, добрый день! Помогите в написание скрипта!!!!))))) Есть парк из 300 ПК, необходимо разлить файлы с эталонного ПК на все доменные ПК под все учетки в системе (или конкретно указанною учетку из списка use.txt) с автоспуском, после копирования на каждый из ПК должна произойти перезагрузка. Если до ПК не достучатся (он Выключен) выполнение скрипта продолжать (с возможность писать лог. на какие машины не скопированы файлы)
в файле pc.txt - все имена ПК: ------------------------------------------------------------------- в файле use.txt - все логины: PC-1 --------------------------------------------------------------------- user1 PC-b --------------------------------------------------------------------- multik2 PC-27a --------------------------------------------------------------------- polzovatel2 Каждый ПК по порядку соответствует списку пользовательских профилей ( на PC-1 --> user1, PC-b --> multik2, PC-27a --> polzovatel2 и т.д....) Набросал такой скрипт (в файле pc.txt - все имена ПК, в файле use.txt - все логины (они же профиля в системе) пользователей: @ECHO ON set listfile=pc.txt for /f "tokens=1" %%i in (%listfile%) do call :procedure %%i :procedure MD "%1\C$\ProgramData\systems" copy "\\%computername%\C$\ProgramData\systems\*" "\\%1\c$\ProgramData\systems" set listfile=use.txt for /f "tokens=2" %%i in (%listfile%) do call :procedure %%i :procedure copy "\\%1\c$\ProgramData\systems\hoster.lnk" "\\%1\C$\Users\%2\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" pause |
ITdevel, если машины в домене — Вы выбрали наихудший вариант реализации.
|
Iska, Через групповые политики не вариант, через smb тоже... только как-то так.... через костыль....
|
|
Цитата:
Цитата:
Помогите допилить 2-ю часть (как правильнее будет?) ;) for /f "tokens=2" %%i in (%listfile%) do call :procedure %%i :procedure copy "\\%1\c$\ProgramData\systems\hoster.lnk" "\\%1\C$\Users\ Коллеги, если есть правильные варианты, просьба просветите неуча.. ;) |
ITdevel, единственно правильный вариант я уже озвучил.
Проблема в том, что это может быть не c$, не Users$, и даже не UserName. Единственный вариант таким путём выяснить «где» — получить доступ к удалённому реестру, найти путь к локальному профилю и от этого уже «танцевать». Либо же успользовать PowerShell и его Remote Session — будет чуть проще. |
| Время: 22:51. |
Время: 22:51.
© OSzone.net 2001-