Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 3

Автор: 01MDM
Дата сообщения: 22.08.2007 10:13
Lutvun

Код:
@ECHO OFF
echo выбери нужый образ:
echo 1 - 1 диск, 1 раздел
echo 2 - 1 диск, 2 раздел
echo 3 - 2 диск, 1 раздел
echo 4 - 2 диск, 2 раздел

choice /C:1234
if errorlevel 1 set disk=1:1
if errorlevel 2 set disk=1:2
if errorlevel 3 set disk=2:1
if errorlevel 4 set disk=2:2

ghost -clone,mode=pload,src=.\gho\2k3.gho:1,dst=%disk%
Автор: Lutvun
Дата сообщения: 22.08.2007 10:16
Не совсем то. Такое я могу сделать и через BCDW. Нужно чтоб показывало только сущиствующие разделы. И жылательно хоть какуюто инфу о них(например размер).
Автор: 01MDM
Дата сообщения: 22.08.2007 10:26
Lutvun


Цитата:

List all local hard drives including megabytes free and megabytes total.
DRVSPACE /LI |FIND.EXE "Local hard drive"


Поковыряйся здесь http://home7.inet.tele.dk/batfiles/batfiles.htm
Автор: boomman37
Дата сообщения: 22.08.2007 11:11
Задача.
1. Поменять у одного из двух физических интерфейсов IP, шлюз и DNS.
2. Создать VPN подключение с нужными настройками.
3. Автоматически его подключить (это rasdial вроде).
Автор: paveltr
Дата сообщения: 22.08.2007 12:31
Задача: запускать программу при выходе из Спящего режима (Hibernation)

1.Делаем событие для журнала
Код: eventcreate /l SYSTEM /so "RunDll32.exe powrprof.dll,SetSuspendState" /t INFORMATION /id 666 /d Hibernate
Автор: KapralBel
Дата сообщения: 22.08.2007 14:19
paveltr
А зачем запускать блокнот?
Запусти то что не требует интерактивности
Автор: paveltr
Дата сообщения: 22.08.2007 14:48
KapralBel
Сформулирую малость иначе. Если программа висит в автозагрузке (тот же блокнот), при загрузке винды она запустится и будет перед глазами висеть (так и надо). Если же использовать спящий режим, то при входе в систему автозапуск не срабатывает. Вот и хотелось бы придумать ему замену на этот случай.
Т.е. интерактивность как раз и нужна!

+ да и просто интересно почему именно так срабатывает
Автор: 01MDM
Дата сообщения: 22.08.2007 14:49
paveltr
Если ты будешь создавать событие от своего имени (eventtrigger /create /u paveltr), то и окно блокнота должно быть видимым.
Автор: paveltr
Дата сообщения: 22.08.2007 15:09
01MDM
Всё делал под одним пользователем, с правами администратора. Можете у себя попробовать
Добавление к обеим командам /s ИмяКомпьютера /u Домен\Пользователь ничего не дало
Автор: 01MDM
Дата сообщения: 22.08.2007 15:18
paveltr
Ты указывал ключ /U <пользователь> ?
Если не указать, то триггер создастся с системными правами, что не подразумевает интерактивности (по аналогии с заданиями по расписанию).
Автор: paveltr
Дата сообщения: 22.08.2007 15:28
01MDM
Да, прописал и /U и /S (на один только /U ругается), картина та же - в процессах программа висит, визуально её нет.

На домашнем компьютере ещё вечером попробую, который не в домене


Добавлено:
Ну вобщем так... Дома вообще ничего не запускается почему-то, хотя и событие в журнале есть и триггер создаётся

При использовании ключей /S /U /P для eventtriggers выдаёт предупреждение:
Учетные данные пользователя не могут быть использованы для местных подключений

Пробовал eventcreate с теми же ключами и без, но ничего не заработало. Даже не знаю в чём дело... Завтра на работе попытаюсь домучить, я помоему /P не указывал там - надо проверить

Кстати, для созданных триггеров по eventtriggers /query /v в столбце "Запустить от имени (пользователь)" пишет NT AUTHORITY\SYSTEM, и учитывая невосприимчивость к ключам, похоже что для систем, работающих не в домене это изменить нельзя. Так что, видимо, даже если бы блокнот и запустился, всё равно был бы невидим

У кого-нибудь есть по всему этому идеи?
Автор: Lutvun
Дата сообщения: 22.08.2007 23:22
2 01MDM

Цитата:

Цитата: List all local hard drives including megabytes free and megabytes total.
DRVSPACE /LI |FIND.EXE "Local hard drive"


Поковыряйся здесь http://home7.inet.tele.dk/batfiles/batfiles.htm
Автор: KapralBel
Дата сообщения: 23.08.2007 00:08
paveltr
А почему бы в батничке, который выполняется по событию не создать задачу по расписанию и она запустит нужную программу
AT /?
SCHTasks /?
Автор: boomman37
Дата сообщения: 23.08.2007 11:03

Цитата:
Задача.
1. Поменять у одного из двух физических интерфейсов IP, шлюз и DNS.
2. Создать VPN подключение с нужными настройками.
3. Автоматически его подключить (это rasdial вроде).

Ну подскажите пожалусто, в какую сторону копать.
Автор: Elroir
Дата сообщения: 23.08.2007 12:47
boomman37

Цитата:
Ну подскажите пожалусто, в какую сторону копать.

Лопату в зубы и вперед :
1. Посмотри встроенную в Windows утилиту netsh
2. Утилиту, которая бы создавала VPN соединение из командной строки, я не нашел.
Но все эти соединения хранятся в текстовом виде в файле rasphone.pbk (найдешь поиском). Если разберешься в его структуре - можно дописать в него необходимые параметры.
3. rasdial.
Автор: paveltr
Дата сообщения: 23.08.2007 12:56
KapralBel
Спасибо за идею, попробую. Что-то всё это становится похожим на удаление гланд через то самое место
Автор: KapralBel
Дата сообщения: 23.08.2007 13:05
paveltr
Расскажешь что вышло

ЗЫ. Кажется в nnCron есть такое условие, но точно не помню
Автор: boomman37
Дата сообщения: 23.08.2007 14:56

Цитата:
2. Утилиту, которая бы создавала VPN соединение из командной строки, я не нашел.
Но все эти соединения хранятся в текстовом виде в файле rasphone.pbk (найдешь поиском). Если разберешься в его структуре - можно дописать в него необходимые параметры.

Нашел решение в самом неожиданном месте. http://support.microsoft.com/kb/284269
Автор: paveltr
Дата сообщения: 23.08.2007 19:15
Ну более-менее разобрался с задачей, отчитываюсь...

У меня была запутка с eventcreate, вязванная вероятно фразой из описания её параметров:
"/so имя_источника
Задание источника, используемого для данного события. Допустимый источник может быть представлен любой строкой и должен указывать на приложение или компонент, в котором произошло событие. "

Я так понял эту фразу, что команда eventcreate создаёт именно событие с источником /so, при наступлении которого заносится соответствующая запись в журнал. Всё совсем не так. Команда всего лишь создаёт запись о событии, фактически добавляет строку к журналу в соответствии с теми параметрами, которые мы указываем с командой eventcreate. Параметр /so даже не является обязательным! Никаких наблюдений за аналогичными системными процессами она не ведёт

Т.е. для моей задачи решения при помощи eventcreate не придумать, т.к. при переводе системы в спящий режим записи в журнал не добавляются

С eventtriggers тоже рабобрался, там параметры /U /P отвечают за то, с какими правами запускать саму команду eventtriggers, потому и ругалась она когда указываешь текущего пользователя - ведь он применяется по умолчанию и явно его указывать не надо. Но кроме них ещё есть параметры /RU пользователь /RP пароль, и они-то определяют учётку, под которой выполняется команда из /TK. С указанием здесь нужных данных Блокнот стал видимым

Похоже, что не так просто решается поставленная задача... Хотелось бы всё штатно сделать, без использования сторонних программ (я про вариант с nnCron). Есть ещё вариант с настройкой аудита (чтобы создавалась запись о hibernate в журнале Безопасности) + eventtriggers, но с этим ещё надо поковыряться.
Автор: paveltr
Дата сообщения: 24.08.2007 01:44
Порылся в инете, как включить аудит использования спящего режима так и не нашёл Никто не в курсе как это сделать?
Автор: dardreams
Дата сообщения: 24.08.2007 07:24
Возможно ли запустить батник до закрузки экрана ввода пароля XP?
Я хочу сделать чтобы пароль менялся при каждой загрузке.
Автор: igor_andreev
Дата сообщения: 24.08.2007 09:14
dardreams
http://support.microsoft.com/kb/243486/ru
Автор: Rotorina
Дата сообщения: 24.08.2007 09:39
Как через командную строку в текстовом документе найти последовательность символов, заменить её на другую и тут же сохранить этот файлик (желательно с другим именем)?
Автор: igor_andreev
Дата сообщения: 24.08.2007 09:51
Rotorina
В шапке, в Полезных утилитах:
gsar - General Search and Replace, поиск и замена текста в файле

Автор: dardreams
Дата сообщения: 24.08.2007 10:08
igor_andreev
Спасибо, то что надо !
Автор: Elroir
Дата сообщения: 24.08.2007 10:12
Rotorina
Я же тебе ответил в топике Командная строка, батники, сценарии (bat, cmd) (Программы).
Автор: Rotorina
Дата сообщения: 24.08.2007 10:14
Elroir
Спасибо.
Вчера сонный писал топик, сегодня утром не смог найти... думал, удалили )
Автор: slayer120
Дата сообщения: 24.08.2007 10:59
Есть пара вопросов:
1. Как в этой строчке будет работать цикл?

for /f "tokens=3,4 delims= " %%a in ('echo list volume ^| diskpart ^| findstr /l /i "raid"') do

если том с такой меткой не найден то что в do вообще не выполняется.
Как проанализировать что ничего не найдено по коду возврата чтоли?

2. Эта строчка используется для проверки подключения внешнего HDD с usb
интерфейсом:

for /f "tokens=3 delims= " %%a in ('echo list volume ^| diskpart ^| findstr /l "Removeable"')

Но увы для такого hdd он не показывается как сменный, а как обычный диск.
Больше никак нельзя определить что он usb ный?

3. Как присвоить переменной значение нескольких переменных из цикла for

set yte="%%f""%%l""%%q" ? После выхода из for yte пустая Что я делаю не так?
Автор: 01MDM
Дата сообщения: 24.08.2007 11:32

Цитата:
set yte="%%f""%%l""%%q" ? После выхода из for yte пустая Что я делаю не так?


Если в цикле переменная %%a, то

Код:
set yte="%%a%%b%%c"
Автор: Elroir
Дата сообщения: 24.08.2007 11:42
01MDM
Небольшое добавление - все это сработает, если определены токены для дополнительный букв.

slayer120

Цитата:
если том с такой меткой не найден то что в do вообще не выполняется.
Как проанализировать что ничего не найдено по коду возврата чтоли?

В теле for-a определи переменную, например, "set flag=true", а после выхода из for-a проветь существует-ли переменная - "if defined flag ( .... )"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


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