Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Скрипты на KIX

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7

Открыть новую тему     Написать ответ в эту тему

Arto77

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ещё актуален, я знаю, что InGroup(), но как правильно обратится к групе безопасности домена...

Всего записей: 3 | Зарегистр. 12-07-2007 | Отправлено: 17:31 12-07-2007
kazavo4ka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Arto77
потерто, не то написал
 
вот тут посмотри, в качестве примера

Всего записей: 1655 | Зарегистр. 17-02-2006 | Отправлено: 17:44 12-07-2007 | Исправлено: kazavo4ka, 17:48 12-07-2007
Arto77

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всё это конечно интересно, но больше интересует строка..
If Ingroup ("[путь к группе домена]")  
 
Так вот, как этот путь должен выглядеть...

Всего записей: 3 | Зарегистр. 12-07-2007 | Отправлено: 18:51 12-07-2007
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
какой путь???
просто имя группы

Код:
 
IF INGROUP("Project9350") or INGROUP("Project_CF3850") or INGROUP("L203")
    Use J: "\\Files\le_projects"
ENDIF
 
IF INGROUP("TeleBank")
    USE O: "\\Files\telebank"
ENDIF
 
 


Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 16:54 14-07-2007
der



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexSSS
да-да-да! )) Вопрос о скриптах на тему ведения логов по автозагрузке на клиентах еще актуален

Всего записей: 145 | Зарегистр. 27-07-2002 | Отправлено: 08:28 17-07-2007 | Исправлено: der, 08:30 17-07-2007
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
der
идея должна быть понятна, сам скрипт может сразу не заработать - у меня это несколько скриптов, здесь я слил в один то, что вроде достаточно по твоему вопросу
 
реально скрипт можно еще сократить в несколько раз, у меня он делает еще какие-то вещи, сейчас просто нет времени упрощать его самому
 
 

Код:
 
; ***********************************************************************
; Defined global variables for all scripts
; ***********************************************************************
 
GLOBAL $CR, $PathLog, $PathAddFirm, $TAB, $TAB2, $Level, $TAB3, $TAB4, $PrimaryGroup
GLOBAL $LogHeader
GLOBAL $LogServer
 
$LogServer    = "Files"
$PathLog    = "\\$LogServer\Logs\"
 
$PathAddFirm    = ""
$CR        = Chr(13) + Chr(10)
$TAB        = Chr(9)
$TAB2        = $TAB+$TAB    
$TAB3        = $TAB+$TAB+$TAB
$TAB4        = $TAB+$TAB+$TAB+$TAB
 
$PrimaryGroup    = UCase($FirmGroup)
$PathAddFirm    = $PrimaryGroup+"\"
 
 
 
 
$LogDir        = $PathLog+"run\"
IF EXIST($LogDir)=0    MD $LogDir    ENDIF
 
$LogSoft    = $PathLog+"run\"
$LogSoft    = $LogSoft+@WKSTA+'.log'
IF EXIST($LogSoft)=1    DEL $LogSoft    ENDIF
IF EXIST($LogSoft)=1    EXIT        ENDIF
 
$LogHeader    = substr(@UserID+'      ',1,10)+$TAB+SubStr(@WKSTA+'                ',1,15)+$TAB+@DATE+" "+@TIME+$Tab+SubStr(@FullName+'                    ',1,22)+$TAB+@ProductType
$LogHeader2    = @DATE+" "+@TIME+$Tab+@WKSTA+$TAB+@UserID+$TAB+@FullName+$TAB+@ProductType+$TAB
 
 
$Alert        = 0
 
$LogErr        = 0
$LogErr        = File_Open(3,$logSoft)
$LogErr        = WriteLine(3,$LogHeader+$CR+$CR)
$LogErr        = File_Open(4,$LogDir+"_illegal.log")
$LogErr        = File_Open(5,$LogDir+"_warning.log")
 
$Run    = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\"
$Result    = ver_registry_tree()
 
$Run    = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\"
$Result    = ver_registry_tree()
 
$Run    = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
$Result    = ver_registry_tree()
 
 
; Installed Soft
$LogErr        = WriteLine(3, '---------------------'+$CR)
$LogErr        = WriteLine(3, 'Installed Soft'+$CR)
$LogErr        = WriteLine(3, '---------------------'+$CR)
$Index         = 0
$Uninstal    = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
 
$KeyName     = ENUMKEY($Uninstal, $Index)
WHILE $KeyName<>""
    $KeyName = ENUMKEY($Uninstal, $Index)
    IF EXISTKEY($Uninstal+$KeyName+'\DisplayName')
        $SoftName    = ReadValue($Uninstal+$KeyName,'DisplayName')
        IF $SoftName<>""
            SELECT
            CASE INSTR($SoftName, "Windows XP Hotfix")
            CASE INSTR($SoftName, "Windows 2000 Hotfix")
            CASE INSTR($SoftName, "Пакет исправлений для Windows XP")
                CASE 0=0
                $LogErr        = WriteLine(3, $SoftName+$CR)
            ENDSELECT
        ENDIF
    ENDIF
    $Index = $Index + 1
LOOP
 
$LogErr    = close(3)
$LogErr    = Close(4)
$LogErr    = Close(5)
 
 
If @INWIN=2 and $Alert>0
    Dim $lm_run, $lm_run_text
    $lm_run        = 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce'
    $lm_run_text    = '\\files\netlogon\k_run.bat'
    $ERR         = WriteValue ($lm_run, "Remove viruses and spyware", $lm_run_text, REG_SZ)
ENDIF
 
EXIT
 
function ver_registry_tree
    $Index         = 0
    $LogErr        = WriteLine(3, $Run+$CR)
    $KeyName    = "1"
    WHILE $KeyName<>""
        $KeyName = ENUMvalue($Run, $Index)
        $SoftName= ReadValue($Run,$KeyName)
        $SumKey    = $KeyName+$TAB+$TAB+$SoftName
        $LogErr    = WriteLine(3, $SumKey+$CR)
 
        $LogErr    = WriteLine(7, $LogHeader2+$Run+$Tab+$KeyName+$Tab+$SoftName+$CR)
        $LogErr    = WriteLine(8, $LogHeader2+$Run+$Tab+$KeyName+$Tab+$SoftName+$CR)
 
        $SumKeyL= lcase($SumKey)
        $LogErr    = ver_key()
        $Index = $Index + 1
    LOOP
EndFunction
 
 
 
function ver_key()
 
 
    SELECT
    CASE INSTR($SumKeyL, "hidn.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "5-1-63-4.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "hldrrr.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "anti_troj")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "wintems.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "_exe.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "wiwshost")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "firewall_anti")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "mscnf.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "sysbho.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "syshost")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "audcntr.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "mousecntl.exe")
        $LogErr    = del_key_and_file()
    CASE INSTR($SumKeyL, "template script")    
        $LogErr    = del_key()
    CASE INSTR($SumKeyL, "norten.pif")    
        $LogErr    = del_key()
    ENDSELECT    
EndFunction
 
function del_key()
    $err=DelValue($run,$KeyName)
    $LogErr    = WriteLine(4, $LogHeader+chr(9)+$SumKey+$CR)
EndFunction
 
function del_key_and_file()
    IF exist($SoftName)
        SHELL "attrib $SoftName -s -h -r"
        DEL $SoftName    
    ENDIF
 
    $err    = DelValue($run,$KeyName)
    $LogErr    = WriteLine(5, $LogHeader+chr(9)+$SumKey+$CR)
    $Alert    = $Alert+1
EndFunction
 
Function File_open($handle, $file)
    $res = Open($handle,$file,1)
    $res = Close($handle)
    $res = Open($handle,$file,4)
EndFunction
 
 

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 11:14 17-07-2007
der



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexSSS
Спасиб!
а можно еще \\files\netlogon\k_run.bat прикрепить?

Всего записей: 145 | Зарегистр. 27-07-2002 | Отправлено: 15:17 17-07-2007
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
перепроверил - его у меня сейчас нет
похоже я его и не использовал, просто планировал на будущее запуск отдельного скрипта для удаления конкретной заразы
 
если у тебя много win98-х, могу привести код, который я использовал для того, чтобы чистить их при запуске. Идея простая - в autoexec.bat в конец прописывается запуск дополнительного батника, который просто удаляет конкретные файлы или каталоги. Этот дополнительный батник при входе в виндовс при необходимости обновляется с сервера  
 
пример

Код:
 
@ECHO OFF
 
IF EXIST C:\WINDOWS\SYSTEM\antiav_exe.exe    DEL C:\WINDOWS\SYSTEM\antiav_exe.exe
IF EXIST C:\WINDOWS\SYSTEM\antiav_exe.dll    DEL C:\WINDOWS\SYSTEM\antiav_exe.dll
IF EXIST C:\WINDOWS\SYSTEM\hloader_exe.exe    DEL C:\WINDOWS\SYSTEM\hloader_exe.exe
 
IF EXIST C:\WINDOWS\SYSTEM\anti_troj.exe    DEL C:\WINDOWS\SYSTEM\anti_troj.exe
 
IF EXIST C:\WINDOWS\SYSTEM32\antiav_exe.exe    DEL C:\WINDOWS\SYSTEM32\antiav_exe.exe
IF EXIST C:\WINDOWS\SYSTEM32\antiav_exe.dll    DEL C:\WINDOWS\SYSTEM32\antiav_exe.dll
IF EXIST C:\WINDOWS\SYSTEM32\hloader_exe.exe    DEL C:\WINDOWS\SYSTEM32\hloader_exe.exe
 
IF EXIST C:\progra~1\Webdia~1\5-1-63-4.exe    DEL C:\progra~1\Webdia~1\5-1-63-4.exe
 

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 16:34 17-07-2007
vadimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а скажите, господа, как из киксового скрипта вызывать другой внешний скрипт не киксовый? я не пробовал, но судя по документации, call вызывает другой киксовый скрипт, а если скрипт на vbs или еще какой-нить?

Всего записей: 169 | Зарегистр. 18-09-2003 | Отправлено: 12:57 30-08-2007
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как из киксового скрипта вызывать другой внешний скрипт не киксовый?

 
$Program    = "v_hardware.vbs"
$CMD="wscript $Program"
SHELL $CMD
 
 
Добавлено:
вообще, через SHELL можно запустить любую внешнюю программу. Проблем передать ей параметры тоже нет

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 09:11 31-08-2007
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кроме SHELL есть ещё команда RUN, запускающая внешнюю программу ассинхронно, т.е. скрипт продолжает работу не дожидаясь завершения той программы.

----------
Разум когда-нибудь победит

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 12:38 31-08-2007
MaTpockuHKoT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А реально с помощью KiXtart назначить права папке?
Идея какая: логинится юзер в домене  - проверяется есть ли у него личная папка на сервере. Если нет - то создаётся с правом доступа только ему великолепному...  
Такое можно?
Кстати, у меня почему-то @USERID возвращает 0 (ноль)

Всего записей: 6 | Зарегистр. 19-02-2007 | Отправлено: 23:04 26-09-2007
vadimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexSSS
Smitis
Спасибо, огромное, коллеги!!!
 
Добавлено:
MaTpockuHKoT
назначить права к папке можно с помощью команды cacls, но она будет внешняя для кикса. и потребует соответствующих прав для создания самой папки. logon-script запускается с правами логинящегося юзверя, так что прав на создание папки у него быть не должно. лучше, все же, хоум-драйвы создавать отдельной порцедурой при чек-ине пользователя.

Всего записей: 169 | Зарегистр. 18-09-2003 | Отправлено: 23:13 26-09-2007
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А реально с помощью KiXtart назначить права папке?
Идея какая: логинится юзер в домене  - проверяется есть ли у него личная папка на сервере. Если нет - то создаётся с правом доступа только ему великолепному...  
Такое можно?  

если у самого пользователя есть права на создание папки и изменение прав, то можно. И проще всего это сделать с помощью утилиты cacls
 
Опишу, как это делается у нас. На сервере есть папка Personal, на которую у пользователей стоят права на просмотр, разрешение на создание папок и полный доступ к создателю. А скрипт просто проверяет, есть ли личная папка у пользователя. если нет, создает ее. При этом автоматически получая права на нее. Личная папка у нас по названию совпадает с @UserID
 
недостаток - теоретически пользователь может сам вручную понаделать для себя папок в каталоге личных папок. Но реально этого у нас ни разу не было. Да и отследить это просто
 

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 09:23 27-09-2007
MaTpockuHKoT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vadimo
AlexSSS
 
Ребята, спасибо за ответы.
Что такое за утилита cacls?
 
 
Кстати, я уже кое-что сделал. Кучу ифов понаставил, чтобы при отсутствии связи скрипт не тупил. Зацените, мб что-то надо подправить... Глянь плиз мудрым взглядом.
 
; Подключение домашнего диска пользователя
CLS
Dim $nam_user,$home_fold,$u_fold,$pub_fold,$pub_ook
$nam_user=@FullName
$home_fold="\\BIRD\Home\"
$pub_fold="\\BIRD\Public"
$pub_ook="\\BIRD\For_OOK"
 
$u_fold=$home_fold+$nam_user
 
IF EXIST($u_fold)=0 ;Проверяем доступность домашней папки пользователя
    IF EXIST($home_fold)=0 ;Проверяем доступность каталога домашних папок
        "Домашний каталог "+$home_fold+" недоступен!"
    ELSE ;если каталог доступен, то создаём папку и монтируем диск
        MD $u_fold
        USE M: /DELETE
        USE M: $u_fold
    ENDIF
ELSE ; если доступна папка, монтируем диск
    USE M: /DELETE
    USE M: $u_fold
ENDIF
 
; Подключение диска Public
IF EXIST($pub_fold)=1 ;Проверяем доступность  
    USE P: /DELETE        
    USE P: $pub_fold
ENDIF
 
; Подключение для ООК
IF INGROUP("ook") and EXIST($pub_ook)=1 ;Проверяем доступность и принадлежность к группе ООК
    USE O: /DELETE
    USE O: $pub_ook
ENDIF

Всего записей: 6 | Зарегистр. 19-02-2007 | Отправлено: 15:19 27-09-2007
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MaTpockuHKoT
> Что такое за утилита cacls?  
входит в состав XP
Start-->Run-->cmd-->cacls

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 17:32 27-09-2007
MaTpockuHKoT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2AlexSSS - спасибо.
 
 
Заметил "интересную" вещь с русскими буквами в строковых переменных. Например:
CLS
Dim $a
$a="Ё"
$a
Выдаёт на экран набор символов (смайлик и бубну). А вот если сделать вот так:
CLS
Dim $a
$a="Ё "
$a
или в строке присутствует любой символ, отличный от нашего алфавита (причём неважно в каком месте) - тогда всё нормально.
Версия KiXtart 4.60 Beta 2a
Кто-нибудь наблюдал подобное? И как это лечить?

Всего записей: 6 | Зарегистр. 19-02-2007 | Отправлено: 14:07 03-10-2007
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MaTpockuHKoT

Цитата:
Выдаёт на экран набор символов (смайлик и бубну). А вот если сделать вот так

Глюк.
В версии 4.53 всё нормально.

----------
Разум когда-нибудь победит

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 20:38 03-10-2007
MaTpockuHKoT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Начинаю тихо звереть....
Мало того, что ни с того ни с сего ситуация с русскими буквами резко ухудшилась (они теперь всегда так отображаются), так ещё и скрипт при логоне стартует когда ему вздумается.
Первоначально во вкладке "Профиль" учётки юзера АД прописал kix32. В папке \NETLOGON рядом с kix32.exe лежал и файлик kixtart.kix в котором скрипт. Всё нормально запускалось.
А тут - бац и нифига. При логоне моргает стартанувший kix и всё. Скрипт не идёт.
Прописал в профиле kix32.exe kixtart.kix - заработало, но не у всех  
 
Скоро поедет крыша...

Всего записей: 6 | Зарегистр. 19-02-2007 | Отправлено: 11:22 05-10-2007
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MaTpockuHKoT
Может стОит юзать последний проверенный релиз, а не бету?

----------
Разум когда-нибудь победит

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 23:15 05-10-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Скрипты на KIX


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru