Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Автоматизация администрирования. Часть 2

Автор: YNY
Дата сообщения: 28.02.2011 10:41
Rush> Мне понять нужно. У меня отрабатывает правильно
Этот скрипт не мой, а твоя модификация, которая не работает!

Да у тебя правильно в [more=этом скрипте]
set "DV=E:"
if exist %DV% call:StCopy1 "%cd%"
goto qw
:StCopy1
xcopy %1 "%DV%\%~nx1\" /C /H /Y /Q
exit /b
[/more], относительно вопроса о том, что не нужны все папки в пути и, к стати, твой ход оказался действенным для папок, в то время когда, в справке написано, что %~nx возвращает имя и расширение).

Мона использовать не %~nx1, а %~n1 причем тогда не нужно знать зарание "имя папки".

ХЗ что не понравилось инициатору вопроса, и почему у него не сработало!

Но, если DV будет указывать на съемный носитель, то твой скрипт запнется с выдачей мессяги в винде о том, что "Windows - Устройство не готово", а мой не запнется, вот зачем нужны были выкрутасы!

firsteducation!!!

Мой скрипт, с учетом варианта от Rush с применением %~nx1, будет выглядеть [more=вот так]
set "DV=E:"
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 Call:StCopy1 %CD%
goto qw
:StCopy1
xcopy "%cd%" "%DV%\%~n1\" /C /E /H /Y /Q
exit /b
:qw
[/more]
Автор: Rush
Дата сообщения: 28.02.2011 11:00
YNY
Я знаю, что первый мой. Он не работает? У меня почему-то работает. Даже не знаю где траблы.
Цитата:
мона использовать не %~nx1, а %~n1

Имя у папки может быть разное, в том числе и подобное имени файла (с расширением). Поэтому и %~nx1.
Автор: YNY
Дата сообщения: 28.02.2011 11:17
Rush> Имя у папки может быть разное, в том числе и подобное имени файла
Хм, вообще то символ "." должен отделять расширение так что я и ограничился %~n .
Дело скорей не в том, что твой первый не работает, а в том, что не работает так как нужно было firsteducation в комплексе, а не в пределах заданного им вопроса.
Посмотри его посты на неск. страниц раньше и поймешь или внимателбней прочти то что я написал выше про выкрутасы!
Автор: Rush
Дата сообщения: 28.02.2011 13:05
YNY

Цитата:
Посмотри его посты на неск. страниц раньше и поймешь или внимателбней прочти то что я написал выше про выкрутасы!

Но этот-то скрипт учитывает все его запросы, я просто переделал чтобы было без промежуточного файла.
Код: set "DV=E:"
for /F "skip=1" %%i IN ('WMIC.Exe Path Win32_LogicalDisk.DriveType^="2" get Caption') Do if /i %%i==%DV% call:StCopy1 "%cd%"
goto qw
:StCopy1
xcopy %1 "%DV%\%~nx1\" /C /H /Y /Q /E
exit /b
Автор: YNY
Дата сообщения: 28.02.2011 13:47
Rush> чтобы было без промежуточного файла
в cmd
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption
и
WMIC.Exe Path Win32_LogicalDisk Where DriveType^="2" get Caption
выполняются одинаково, но вот в For первый вариант упорно сопротивлялся и выдовалость сообщение типа "непредвиденное появление ....", а т.к. для меня не очевидно использование ^, то пришлось пихать в файл!

Цитата:
Но он, как вы оба говорите, не работает.

"Не работает", т.к. ты нарушил логику условия! Правильная логика в твоем варианте должна быть такой: %%i NEQ %DV%, т.к. нам нуна проигнорировать съемные или не готовые носители в общем случае.

Цитата:
Это ошибочное мнение

Это мнение из времен DOS, Win95-98).
Автор: Rush
Дата сообщения: 28.02.2011 13:58
YNY

Цитата:
"Не работает", т.к. ты нарушил логику условия! Правильная логика в твоем варианте должна быть такой: %%i NEQ %DV%, т.к. нам нуна проигнорировать съемные или не готовые носители в общем случае.

Елки зеленые!
Я не обратил внимания на то, что нужно игнорировать съемные диски, я думал наоборот - нужно на них копировать.
Меня ввело в заблуждение это условие - поиск съемных дисков. А почему просто не написать DriveType^="3"? Тогда будет искать только среди жестких дисков.
Автор: YNY
Дата сообщения: 28.02.2011 14:12
Rush
Блин:
http://forum.ru-board.com/topic.cgi?forum=8&topic=19088&start=2060#21
http://forum.ru-board.com/topic.cgi?forum=8&topic=19088&start=2080#3
Ответ искался так как был задан вопрос!
Автор: Rush
Дата сообщения: 28.02.2011 14:27
YNY

Цитата:
Нужно не на все диски скопировать, а пропустить сменные!

Ну и что? Он и будет копироваться только на диск E, если он не съемный. Как будет копироваться на все, если указан конкретный диск? Если среди жестких такого нет, цикл просто отработает, не выполнив никаких действий и так же перейдет по метке qw.
Именно такой цикл и пропускает съемные. Ладно, я заканчиваю. Делайте как хотите - работает и ладно.
Автор: YNY
Дата сообщения: 28.02.2011 14:34
Rush
если у тя есть картридер в компе пустой -- потестируй свой вариант и если что то в ЛС
Автор: firsteducation
Дата сообщения: 28.02.2011 16:41
YNY СПС за скрипт, пока его не тестирую, вроде работает, щас на нескольких машинах по запускаю, если опять будет глючить, вставлю твой новый скрипт!
Rush я тебя не игнорирую, просто ты не читал все мои посты, они связаны, YNY в курсе всего что я писал, и явно знает ответы на них(проверено на своём компе)!

Автор: king_stiven
Дата сообщения: 01.03.2011 14:05
Нужно мониторть, подключен к роутеру хоть ещё один комп кроме моего. Он может быть открыт по сети или не открыт. Без скачки в файл. Это видно по веб интерфейсу роутера по адресу
http://192.168.1.1/arpview.cmd
Мне надо в комстроке.
Автор: YNY
Дата сообщения: 01.03.2011 16:08
king_stiven> подключен к роутеру хоть ещё один комп... если интересует подкл кто нить к роутеру через веб интерфейс или по телнет, то это мобыть тот кто знает пароль))
Приводить путь http://192.168.1.1/arpview.cmd -- просто бессмысленно.....т.к. ни о чем не говорит, а вот результат работы скрипта -- другое дело!
Автор: king_stiven
Дата сообщения: 01.03.2011 18:10

Цитата:
а вот результат работы скрипта -- другое дело!

давай скрипт


Добавлено:

Цитата:
то это мобыть тот кто знает пароль))

надо через комстроку чтоб показало мне
Автор: firsteducation
Дата сообщения: 01.03.2011 18:18
Всем здрасте! интересно, а можно ли ограничивать потребление батником ресурсов процессора и отслеживать выключение виндовс хр из батника?
У меня резидентный батник, выключаю винду, вылезают ошибки, типа остановка служб.
Автор: king_stiven
Дата сообщения: 01.03.2011 19:04
Нужно постоянно мониторить список компов сети. Какое решение есть самое ресурсолёгкое? В комстроке разумеется. Утилиты можно.XP
Net view помогло.
Автор: Alukardd
Дата сообщения: 01.03.2011 19:15
king_stiven
самое легкое и быстрое это arp-scan.
Автор: YNY
Дата сообщения: 02.03.2011 09:50
firsteducation> резидентный батник...
Оптимизация ресурсоемкости скрипта:
- если используется Loop без sleep, то добавь sleep и ресурсоемкость скрипта упадет;
- если в нем используется sleep, то подбери оптимальное время засыпания: маленькое будет избавлять от проблем с остановкой служб, но увеличит ресурсоемкость;
Ссылка
Отслеживать выключение имеет смысл только если оно происходит не быстро!
Автор: firsteducation
Дата сообщения: 02.03.2011 14:40
YNY временная пауза у меня есть в скриптах, просто не знаю как сделать, чтоб зацикленный без пауз батник не грузил систему, такой, наверное, сразу обнаружил бы выключение и вырубил все процессы как надо(без сообщений об ошибках).
Автор: firsteducation
Дата сообщения: 05.03.2011 14:28

Цитата:
YNY временная пауза у меня есть в скриптах, просто не знаю как сделать, чтоб зацикленный без пауз батник не грузил систему, такой, наверное, сразу обнаружил бы выключение и вырубил все процессы как надо(без сообщений об ошибках).

Видимо так сделать не выйдет, ладно работает и так.
Автор: YNY
Дата сообщения: 05.03.2011 16:33
firsteducation> птимизация ресурсоемкости скрипта +
Можно попробовать пойти другим путем: с помощью eventtriggers create (см справку по win xp "Новые средства командной строки") попробовать намутить триггер.


Автор: firsteducation
Дата сообщения: 07.03.2011 20:12
Интересно на счёт триггера, попробуем!
Автор: firsteducation
Дата сообщения: 11.03.2011 16:47
Вопрос не в тему, но ответ нужен очень, есть системный блок, с видюхой запускаю, на моник ничего не выводится, лампочка на монике мигает, при смене БП видюха пашет, на старом БП только всторенная видюха работает, при увеличении нагрузки на старом БП он всё тянет кроме видюхи, в чём дело?
Автор: Rush
Дата сообщения: 12.03.2011 01:56
firsteducation

Цитата:
Вопрос не в тему

А что, сложно в нужной теме задать вопрос?
http://forum.ru-board.com/topic.cgi?forum=27&topic=11917&glp
Автор: firsteducation
Дата сообщения: 13.03.2011 12:50
YNY как думаешь в батнике такая строчка евенттриггера будет правильно работать, там ид rundll32=3096:

eventtriggers /create /tr "winNT" /eid 3096 /t error /tk C:\"Program Files"\shutdown_batnika.bat
Автор: YNY
Дата сообщения: 14.03.2011 08:10
firsteducation
хм, ну проверь на практике, мне нечем запустить rundll32

Добавлено:
лучше весь путь в кавычки возьми
Автор: Johny_x3mal
Дата сообщения: 15.03.2011 14:09
Доброго времени суток.
Необходимо выполнить активацию Windows 7 и Office 2010 (2007) в конторе, знаю что активацию можно выполнить с командной строки, собственно, сам вопрос: опишите скрипт для автоматизации этого процесса, пожалуйста, ибо сам я не силен...
Что бы мне хотелось получить в итоге:
1. проверка ключа
2. при несовпадении его удаление/изменение
3. активация
4. лог успешной/не успешной активации
Думаю это будет многим полезно, например - внедрить в ГПО Домена, распределить компы по OUшкам, в каждой OUшке свой скрипт, на свое юр. лицо.
Заранее благодарю.
Автор: YNY
Дата сообщения: 15.03.2011 16:05
Johny_x3mal
Блин чувак ты ваще не по адресу, однако вот тебе ссылка на легальную автоматическую активацию вин7 и Office 10

Добавлено:
Еще ссылка для Office
Автор: Johny_x3mal
Дата сообщения: 15.03.2011 16:51
YNY
Это немного не то.
Неужели нельзя сделать батник, который бы подставлял нужный ключ, и делал активацию винды и офиса???
типа так:
slmgr.vbs /ipk 123465-ewrsdf-123123-sdfsdf - команда записывает ключик
а дальше
slmgr.vbs /ato - активация через интернет.
Автор: firsteducation
Дата сообщения: 15.03.2011 16:54
YNY Здорово. Пробовал триггеры, что-то не катят, не срабатывают, я в нете нашёл скриптик, ток не знаю как оптимизировать чтоб грамотно вырубал задачи висящие в винде, не подскажёшь?
Вот скрипт:

Set WshShell = WScript.CreateObject("WScript.Shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colMonitoredEvents = _
objWMIService.ExecNotificationQuery("Select * from " _
& "Win32_ComputerShutdownEvent")
Do
Set strLatestEvent = colMonitoredEvents.NextEvent
If strLatestEvent.Type = 1 Then
intReturn = WshShell.Run("путь к файлу", 0, true)
End If
Loop


Добавлено:
YNY как думаешь так сработает?


Set WshShell = WScript.CreateObject("WScript.Shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colMonitoredEvents = _
objWMIService.ExecNotificationQuery("Select * from " _
& "Win32_ComputerShutdownEvent")
Do
Set strLatestEvent = colMonitoredEvents.NextEvent
If strLatestEvent.Type = 1 Then
intReturn = WshShell.Run("taskkill /IM cmd.exe find.exe xcopy.exe copy.exe ping.exe", 0)
End If
Loop
Автор: YNY
Дата сообщения: 16.03.2011 10:23
firsteducation
попробуй добавить ключи /F /T
если find.exe xcopy.exe copy.exe ping.exe выполняются в отдельных cmd окнах то достаточно убить cmd!

Добавлено:
Вопрос о том, будет ли работать скрипт, при его наличии, обычно, решается практикой))

Добавлено:
для срабатывания триггеров еще может понадобиться включение соответствующего аудита событий

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

Предыдущая тема: BackUp Win2003Serer


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.