CMD/BAT - Скрипт с проверкой условий

Ответить
Аватара пользователя
wiznv

CMD/BAT - Скрипт с проверкой условий

Сообщение wiznv »

Вот текст скрипта для бэкапа файлов с помощью robocopy :

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5



условия задачи: Нужно выполнять этот скрипт при выключении ПК и копировать папку текущего доменного пользователя в сетевую шару с созданиям папки с названием логина пользователя.



исправьте если ошибаюсь, но в данном случае определине текущего пользователя невозможно и целевая папка не создастся т.к. теоритически имя пользователя не постоянно , их может быть несколько на одном ПК и при выключении

происходит выход из системы пользователя, а в этом время будет выполнятся скрипт. Переменные среды вида %userfolder% тоже не помогут по тем же причинам. Поэтому нужен скрипт с условиями и сравнением переменных, но я не силен в написание сложных скриптов и прошу помочь в его написании:



Мысли на счет решения: : Т.к. имя компьютера постоянное, то нужно составить список соответствия - компьютера(а2) и имени пользователя(b2) - a2=b2

Скрипт должен сравнить фактическое имя компьютера (а1, командой hostname), со списком и если фактическое имя компьютера совпадет с одним из списка (a1=a2) , то нужно присвоить значение из списка b2 фактическому именя пользователя b1 т.е. b2=b1

т.е.

a1=b1

если a2=a1, то

b2= b1.

Ну и потом присовить эти значение переменным в строке параметров robocopy

Верно ?

Если компьютеров 50 то нужно создавать 50 переменных для списка потом 50 условий... или есть способ проще.. ?

Как в скрипте вытащить данные из текстового файла чтобы не писать весь список в скрипте ?
Аватара пользователя
Iska

Re: CMD/BAT - Скрипт с проверкой условий

Сообщение Iska »

Цитата wiznv:



или есть способ проще.. ?
CMD/BAT - Скрипт с проверкой условий




Назначьте исполнение скрипта на завершение сеанса пользователя.
Аватара пользователя
Опиум

Re: CMD/BAT - Скрипт с проверкой условий

Сообщение Опиум »

особенно доставляют такие logoff-скрипты если копируют несколько гигов...
Аватара пользователя
Опиум

Re: CMD/BAT - Скрипт с проверкой условий

Сообщение Опиум »

Цитата Опиум:



особенно доставляют такие logoff-скрипты если копируют несколько гигов...
CMD/BAT - Скрипт с проверкой условий




Ага. Но там есть противоядие в виде ограничения на 10 минут максимум (по умолчанию; регулируется групповой политикой) Изображение.
Аватара пользователя
wiznv

Re: CMD/BAT - Скрипт с проверкой условий

Сообщение wiznv »

Цитата Iska:



Назначьте исполнение скрипта на завершение сеанса пользователя.
CMD/BAT - Скрипт с проверкой условий




назначил,но 1.параметр /ZB (режим архивации в случае если файл открыт ) от пользователя не работает! А делать оператором архива всех пользовамтелей не вариант. Можно выполнять скрипт от имени администратора, но тогда не сработают переменные среды. 2. Проблема с переименованными профилями - не работают переменные среды т.к. логин некоторым пользователям был переименован.Решаемо, но бегать не хочется т.к. в ручную нужно делать ((
Аватара пользователя
Iska

Re: CMD/BAT - Скрипт с проверкой условий

Сообщение Iska »

Цитата wiznv:



назначил,но 1.параметр /ZB (режим архивации в случае если файл открыт ) от пользователя не работает! А делать оператором архива всех пользовамтелей не вариант.
CMD/BAT - Скрипт с проверкой условий




А зачем Вам /zb в момент завершения сеанса? Какие именно потребные файлы пользователя заблокированы?




Цитата wiznv:



2. Проблема с переименованными профилями - не работают переменные среды т.к. логин некоторым пользователям был переименован.
CMD/BAT - Скрипт с проверкой условий




«%UserProfile%» тоже переименован?
Аватара пользователя
wiznv

Re: CMD/BAT - Скрипт с проверкой условий

Сообщение wiznv »

Цитата Iska:



А зачем Вам /zb в момент завершения сеанса? Какие именно потребные файлы пользователя заблокированы?
CMD/BAT - Скрипт с проверкой условий




К сожалению программа не работает до конца и во время выключение или перезагрузки задание просто завершается..отдельной опции "ждать завершения задания" там я не нашел. Задание завершается не начавшись, в журнале задания ошибок нет, только сообщения о запуске. Если запустить вручную то все работает, поэтому подумываю о выполнении задания в обеденное время ( например), но у всех Outlook открыт и задании не выполнится.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»