Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Составить скрипт с условием

Ответить
Настройки темы
CMD/BAT - Составить скрипт с условием

Аватара для Firebolt

Старожил


Сообщения: 260
Благодарности: 13

Профиль | Отправить PM | Цитировать


Вот такой вот пишу скрипт:

Код: Выделить весь код
@ echo off  IF NOT EXIST %windir%\logo2.bmp (     
REGEDIT /S \\svrmain\prog\logonwp.reg 
copy /Y \\svrmain\prog\logo2.bmp %windir%    
) ELSE (  
exit  
)
Тут все работает, но нужно добавить нюанс. Что-то типа условия в условии. Если словами, то... Когда файл logo2 не найден, то добавить такое-то измение реестра... А потом еще одно условие: если изменение не было внесено в реестр, тогда goto end - пропускаем копирование файла logo2. Вот как это условие записать про изменения в реестре?

Отправлено: 10:19, 10-07-2009

 

Аватара для Firebolt

Старожил


Сообщения: 260
Благодарности: 13

Профиль | Отправить PM | Цитировать


Petya V4sechkin,
Цитата Petya V4sechkin:
Вы говорите, что REGEDIT /S файл.reg не вносит изменения в раздел "HKCU\Control Panel\Desktop", интересно, по какой причине? Разрешения изменены, что ли? »
Ну вообще, да, пользователь имеет ограниченные групповой политикой права. Но если локально он является администратором, то все изменения вносятся. По идее, если задуматься, то получается, не имеет значения, есть ли у него права администратора локально или нет. Ведь даже если он локально и админ, то он все равно не может вносить изменения в реестр согласно групповой политике. Но вот появились подозрения, что если пользователь не имеет локально прав администратора, то при логоне изменения не вносятся. И мне сказали написать скрипт с вот таким условием, о котором я говорил выше.

Отправлено: 10:14, 11-07-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Moderator


Сообщения: 53482
Благодарности: 15510

Профиль | Отправить PM | Цитировать


Цитата Firebolt:
Но вот появились подозрения, что если пользователь не имеет локально прав администратора, то при логоне изменения не вносятся.
Команда:
Цитата Firebolt:
copy /Y \\svrmain\prog\logo2.bmp %windir%
не работает, потому что обычный пользователь не имеет прав на запись в папку %windir%

Еще непонятно, почему вы используете логон-скрипт, ведь для установки обоев существует отдельная политика.

Отправлено: 10:24, 11-07-2009 | #12


Аватара для Firebolt

Старожил


Сообщения: 260
Благодарности: 13

Профиль | Отправить PM | Цитировать


Petya V4sechkin,
Цитата Petya V4sechkin:
не работает, потому что обычный пользователь не имеет прав на запись в папку %windir% »
Ну так это здорово!!! Вот мне и нужно, чтобы было вообще исключено, что эта картинка, этот файл копировался, если у пользователя нету прав на изменение реестра. Блин, ну и тупик!

Пожалуйста, просто скажите мне, как создать из командной строки в ветке реестра HKU\.DEFAULT\Control Panel\Desktop параметры
Код: Выделить весь код
"Wallpaper"="C:\\Windows\\logo2.bmp"
"WallpaperStyle"="2"
"OriginalWallpaper"="C:\\Windows\\logo2.bmp"
Я REG ADD колбашу, но ниче не выходит. По умолчанию в ХР параметры эти все есть, просто надо дать из значения. А у меня вообще никак не получается.

Вот это вот запускаю для примера
Код: Выделить весь код
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Fignya /t REG_SZ /d D:\fignya.exe
но ничего не изменется.

Отправлено: 14:41, 11-07-2009 | #13



Moderator


Сообщения: 53482
Благодарности: 15510

Профиль | Отправить PM | Цитировать


Цитата Firebolt:
Весь этот скрипт прописан в групповой политеке и запускается каждый раз при логоне пользователя.
Стесняюсь спросить, а вы уверены, что это политика для пользователей, а не для компьютеров?

Отправлено: 15:24, 11-07-2009 | #14


Аватара для Firebolt

Старожил


Сообщения: 260
Благодарности: 13

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Безымянный.PNG
(51.1 Kb, 12 просмотров)

Petya V4sechkin, вот тут все видно

Отправлено: 15:42, 11-07-2009 | #15


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Не могу понять, почему не выполняется условие по выбору задания внутри условия. (кусок скрипта)
Код: Выделить весь код
@echo off
Echo Выберите задание:
Echo.
if exist "c:\Program Files\Winrar\WinRAR.exe" (
echo 1 - установка обновлений Office 2010
echo 2 - создание самораспаковывающегося архива Office 2010
echo 3 - выход из скрипта
echo.
Set /p choice=Ваш выбор: 
if "%choice%"=="1" (ping 127.0.0.1 -n 3 > nul &start Inst.cmd &&goto n2) 
if "%choice%"=="2" (ping 127.0.0.1 -n 3 > nul &&goto n1)
if "%choice%"=="3" (ping 127.0.0.1 -n 3 > nul &&goto n2)

:n1
Echo.
Set /p instdate=Введите дату сборки: 
...
...
)
exit
) else (
echo 1 - установка обновлений Office 2010
echo 2 - выход из скрипта
echo.
Set /p choice=Ваш выбор: 
if "%choice%"=="1" (ping 127.0.0.1 -n 3 > nul &start Inst.cmd &&goto n2) 
if "%choice%"=="2" (ping 127.0.0.1 -n 3 > nul &&goto n2)
)

:n2
Echo.
Echo.
Echo                             Работа скрипта закончена. 
Echo               Окно командной строки закроется через некоторое время.
ping 127.0.0.1 -n 10 > nul
exit

Отправлено: 21:14, 12-07-2011 | #16


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


sov44,
На первый взгляд ошибка в том, что переменная %choice% и присваивается и проверяется в одном скрипт-блоке "if". Пример:
Код: Выделить весь код
@echo off

:: C отложенным расширение переменных среды
setlocal enabledelayedexpansion

if "1"=="1" (

   set "var=test"
   echo 1. var=%var%
   echo 2. var=!var!

)

endlocal

:: Без отложенного расширения переменных среды
setlocal

if "1"=="1" (

   set "var=test"
   echo 3. var=%var%
   echo 4. var=!var!

)

Отправлено: 21:42, 12-07-2011 | #17


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
На первый взгляд ошибка в том, что переменная %choice% и присваивается и проверяется в одном скрипт-блоке "if" »
Возможно, но в этом суть проверки на наличие WinRar.

Отправлено: 21:48, 12-07-2011 | #18


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата sov44:
Возможно, но в этом суть проверки на наличие WinRar. »
И? Переделай и все будет тип-топ:
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

if exist "%programfiles%\winrar\winrar.exe" (

    set /p choice="Бла-бла: "
    
    if "!choice!"=="1" .....
    if "!choice!"=="2" .....

)
....
PS. Для меню выбора лучше сразу определить значение по-умолчанию, либо при проверке введеного значения использовать if defined:
Код: Выделить весь код
set /p choice=": "
if defined choice (

   if "%choice%"=="1" ...

)
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:56, 12-07-2011 | #19


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Foreigner, ушел от скобок, поменяв и добавив дополнительные пути перехода.
Код: Выделить весь код
if exist "c:\Program Files\Winrar\WinRAR.exe" goto n1 else goto n4
задачка решена.

Отправлено: 22:07, 12-07-2011 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Составить скрипт с условием

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
V. 2007 - Антивирус и антиспам для exch 2007 с условием. Alexandrovav Microsoft Exchange Server 10 17-02-2010 12:03
Составить Классификацию уязвимостей СУБД. Morsel Хочу все знать 1 04-06-2009 16:22
Прочие БД - Составить Классификацию уязвимостей СУБД. Morsel Программирование и базы данных 1 04-06-2009 16:20
Разное - Помогите алгоритм составить MaZaFaKa46 Программирование и базы данных 3 28-12-2008 22:00
запрос в MySQL из PHP с условием. что-то не так делаю koresaram Вебмастеру 7 09-08-2006 14:49




 
Переход