Вопрос по логин скрипту - сравнение строк

Обсуждение технических вопросов по продуктам Novell

Вопрос по логин скрипту - сравнение строк

Сообщение Андрей Тр. aka RH » 10 ноя 2008, 14:25

Появилась необходимость на некоторых компьютерах проделать некое действие, некоторых - это на компах определённой модели. Выполнить желаемое хочется из новелловского логин скрипта. Каждый из компов в своем имени содержит инициалы пользователя и эту самую модель - например, AA-IBM.

Вопрос в том, есть ли способ в логин скрипте выполнить сравнение типа IF переменная=*-IBM

Значение переменной получаем через REGREAD, непосредственно из реестра, так что это не проблема. Проблема в том, что в имени искомая строка ( IBM ) дополняется переменной ( инициалами ). Выносить всё это дело в батник и т.п. неохота, так как батник потом будет выполняться на каждом компе при каждом логине.
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Влад А.Сокол aka Akina » 10 ноя 2008, 15:10

А почему не написАть VBS/JS, который выполнит требуемые операции по преобразованию и либо вернет код ошибки, либо установит переменную среды окружения?
Влад А.Сокол aka Akina
 
Сообщения: 1326
Зарегистрирован: 05 июн 2002, 09:24
Откуда: Зеленоград, Москва, Россия

Сообщение Андрей Тр. aka RH » 10 ноя 2008, 15:44

Написать, конечно, можно. Но я для начала хочу уточнить, что требуемое нельзя выполнить средствами самого логин скрипта. Из реестра читать уже можно, прямо в переменную - осталось только её проверить. Если с * не получится, то можно ещё попробовать подыскать что-нить в реестре уникальное для данной модели ( к тому же это ноуты ) - типа драйвера там и т.п.

К тому же, если честно, то не люблю я VBS .. у меня есть один клиент, где в чисто вендозной сети примерно половина её автоматизирована за счёт как раз таких скриптов. Типа раздачи принтеров, ограничения числа логинов и пр. Я уж лучше батником как-нить ..
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Влад А.Сокол aka Akina » 10 ноя 2008, 16:32

Андрей Тр. aka RH писал(а):я для начала хочу уточнить, что требуемое нельзя выполнить средствами самого логин скрипта.

Чисто теоретически - надо попробовать
Код: Выделить всё
#cmd /c SET tempvat=%somevar:~-4%
IF %tempvar == "-IBM" THEN
; Perform something
ELSE
; Perform something else
END

Понятно, что somevar - имя то самой переменной, а tempvar - имя врЕменной переменной, которую мы используем для вычислений. Желательно, чтобы таковой не существовало, а то изгадится безвозвратно на всё время выполнения скрипта.
До окончания загрузки tempvar, есссно, не доживёт... и окно CMD по-любому мелькнёт.
Влад А.Сокол aka Akina
 
Сообщения: 1326
Зарегистрирован: 05 июн 2002, 09:24
Откуда: Зеленоград, Москва, Россия

Сообщение Андрей Тр. aka RH » 10 ноя 2008, 16:57

Влад А.Сокол aka Akina писал(а):[code]#cmd /c SET tempvat=%somevar:~-4%

Ok, попробуем .. а что именно такое вот это вот %somevar:~-4% ?
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Сулейменов Олжас » 10 ноя 2008, 16:58

может задействовать внешний bat-ник, который и обработает все нужные переменные? Пройдет ли фокус с маской - не знаю, не пробовал...
Было:
NetWare 6.0/6.5 SP5
eDir 8.6.2 SMP
GroupWise 7
ZENworks 7

Стало:
MS Windows Server 8 R2 Datacenter
Exchange Server 2010
Аватара пользователя
Сулейменов Олжас
 
Сообщения: 281
Зарегистрирован: 17 июн 2003, 10:00
Откуда: г. Казань

Сообщение Влад А.Сокол aka Akina » 10 ноя 2008, 17:04

Андрей Тр. aka RH писал(а):а что именно такое вот это вот %somevar:~-4% ?

Код: Выделить всё
Пуск - Выполнить - CMD<Enter>
SET /?<Enter>
Влад А.Сокол aka Akina
 
Сообщения: 1326
Зарегистрирован: 05 июн 2002, 09:24
Откуда: Зеленоград, Москва, Россия

Сообщение Влад А.Сокол aka Akina » 10 ноя 2008, 17:04

Сулейменов Олжас писал(а):Пройдет ли фокус с маской - не знаю, не пробовал...
Только что пробовал - проходит.
Влад А.Сокол aka Akina
 
Сообщения: 1326
Зарегистрирован: 05 июн 2002, 09:24
Откуда: Зеленоград, Москва, Россия

Сообщение Музалёв Николай » 10 ноя 2008, 18:52

такое вот это вот %somevar:~-4% ?

Предполагается, что это копирование по количеству.
Т.е. в перем tmpvar попадают только 4ре правых символа от пременной somevar.
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

Сообщение Андрей Тр. aka RH » 11 ноя 2008, 02:53

Музалёв Николай писал(а):
такое вот это вот %somevar:~-4% ?

Предполагается, что это копирование по количеству.
Т.е. в перем tmpvar попадают только 4ре правых символа от пременной somevar.

Ага .. об это как раз и пишут в
Код: Выделить всё
Пуск - Выполнить - CMD<Enter>
SET /?<Enter>

А вот еще вроде бы все же была какая-то хитрость с предотвращением открытия ДОС окна при старте из логин скрипта, или что оно стартовало свернутым .. хотя это как раз меня не сильно волнует.
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение VIP_ » 11 ноя 2008, 07:31

[quote]А вот еще вроде бы все же была какая-то хитрость с предотвращением открытия ДОС окна при старте из логин скрипта, или что оно стартовало свернутым .. хотя это как раз меня не сильно волнует.[/quote]

Я запускаю батники скрыто не в Win98 с помощью такой утилиты:
runcmd install.bat HIDDEN NOWAIT QUIET
VIP_
 
Сообщения: 4
Зарегистрирован: 14 дек 2007, 13:28

Сообщение Константин Ошмян » 11 ноя 2008, 14:24

Влад А.Сокол aka Akina писал(а):Чисто теоретически - надо попробовать
Код: Выделить всё
#cmd /c SET tempvar=%somevar:~-4%
[...]
[...]
До окончания загрузки tempvar, есссно, не доживёт... и окно CMD по-любому мелькнёт.
Боюсь, что tempvar "не доживёт" ещё раньше: ведь она будет жить только в рамках отдельного внешнего процесса cmd.exe (запущенного через "#") и уже завершившегося к моменту возврата управления в логин-скрипт. :?
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Сообщение Музалёв Николай » 11 ноя 2008, 15:30

runcmd install.bat HIDDEN NOWAIT QUIET

Вин 2000 ру.
Не находит такого файла.

Недоставлено чего-то или в 2000 еще нет такой утилитки?[/b]
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

Сообщение Влад А.Сокол aka Akina » 11 ноя 2008, 15:36

Музалёв Николай писал(а):
runcmd install.bat HIDDEN NOWAIT QUIET

Вин 2000 ру.
Не находит такого файла.

Недоставлено чего-то или в 2000 еще нет такой утилитки?[/b]

http://www.novell.com/coolsolutions/tools/19837.html
Влад А.Сокол aka Akina
 
Сообщения: 1326
Зарегистрирован: 05 июн 2002, 09:24
Откуда: Зеленоград, Москва, Россия

Сообщение Музалёв Николай » 11 ноя 2008, 16:15

Влад, спасибо.
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

След.

Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11