Войти

Показать полную графическую версию : Автоматизированное копирование файлов на парк машин


ITdevel
09-09-2017, 17:06
Коллеги, добрый день! Помогите в написание скрипта!!!!))))) Есть парк из 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

Iska
09-09-2017, 17:48
ITdevel, если машины в домене — Вы выбрали наихудший вариант реализации.

ITdevel
09-09-2017, 18:13
Iska, Через групповые политики не вариант, через smb тоже... только как-то так.... через костыль....

Iska
09-09-2017, 18:17
Iska, Через групповые политики не вариант, »
Отчего же? Какие Вы видите препятствия тут?

через smb тоже »
Простите, а copy \\Server\Share… — это что тогда?

ITdevel
09-09-2017, 18:30
Цитата ITdevel:
Iska, Через групповые политики не вариант, »
Отчего же? Какие Вы видите препятствия тут? »
Доступа к серваку нет.

через smb тоже »
Простите, а copy \\Server\Share… — это что тогда? »
Я имел ввиду сетевую шару, а не сам протокол...

Помогите допилить 2-ю часть (как правильнее будет?) ;)

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\Что сюда прописать????\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

Коллеги, если есть правильные варианты, просьба просветите неуча.. ;)

Iska
09-09-2017, 18:56
ITdevel, единственно правильный вариант я уже озвучил.

Проблема в том, что это может быть не c$, не Users$, и даже не UserName. Единственный вариант таким путём выяснить «где» — получить доступ к удалённому реестру, найти путь к локальному профилю и от этого уже «танцевать». Либо же успользовать PowerShell и его Remote Session — будет чуть проще.




© OSzone.net 2001-2012