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

» Автоматизация администрирования. Скрипты на KIX

Автор: Smitis
Дата сообщения: 03.08.2005 16:41
Кстати, как-то незаметно зарелизился kixtart 4.50, брать сдесь http://kixtart.org/
Справку (английскую) в формате chm брать сдесь http://web1.scriptlogic.com/Kixtart/htmlhelp/default.asp (ссылка в правом верхнем углу)
Автор: Smitis
Дата сообщения: 28.09.2005 17:16
Kixtart 4.51 RC-1 _http://www.kixtart.org/bin/devel/KiX2010_451rc1.zip
Что-то добавили, кое-что пофиксили (смотреть kix2010.txt)
Автор: AlexSSS
Дата сообщения: 28.09.2005 20:52
простейшая задачка, но не могу сообразить как ее решить средствами KIX

$file = '\\server\logs\hardware\@WKSTA'
надо стереть $file, если он создан больше семи дней назад. Как вычислить эти семь дней???

варианты с вытаскиванием из даты дня, месяца, года и их дальнейшим анализом не предлагать!!! ;o)
Автор: Smitis
Дата сообщения: 28.09.2005 23:50
AlexSSS

Цитата:
простейшая задачка, но не могу сообразить как ее решить средствами KIX

Не такая уж простая задачка, так как стандартных средств для работы с датой/временем в kixtart нет.

Но может воспользоваться готовыми решениями? Искать на http://www.kixtart.org/
Например http://www.kixtart.org/ubbthreads/showflat.php?Number=121394
Перевести время создания файла в секунды и сравнить с текущем временем (тоже переведённым в секунды).

Добавлено:
Или вот сдесь ещё, в категории date/time
http://www.scriptlogic.com/kixtart/functionlibrary_functionlist.aspx
Автор: AlexSSS
Дата сообщения: 07.10.2005 21:14
в домене пара десятков фирм, половина компов до сих пор Win98
сейчас в AD Users and Computers на пользователях (т.е. не через политики или OU) на каждую фирму стоит свой запускающий батник - логон скрипт, напр firm1.bat и т.п.
Батник является только запускающим скриптом, из него запускаются скрипты на KIX и VBS

1.
Хочу переделать, чтобы запускался единый скрипт для всех, а название фирмы передавалось через параметр, т.е.
INIT.BAT Firm1
на XP все замечательно работает, на 9X в этом случае скрипт вообще не запускается.
Можно ли каким-то образом на 9X запустить логон скрипт с параметром?

2.
Скрипты запускаются асинхронно, т.е. запущен скрипт, одновременно загружается и сам Windows.
Проблема на Win98. Как точно определить, что профайл пользователя уже загрузился, чтобы вносить изменения в HKCU?
Решение.
Однозначно определить, загрузился ли пользовательский профайл можно анализом
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ProfileReconciliation
ProfileDirectory

Автор: Smitis
Дата сообщения: 10.10.2005 21:49
Зарелизился kixtart 4.51
Файлы:
http://kixtart.org/bin/distrib/KiX2010_451.zip
или
http://sclogic.vo.llnwd.net/o2/downloads/kix/kix2010_451.zip
Справка
http://sclogic.vo.llnwd.net/o2/downloads/kix/KiXhelp451.zip
Автор: OldReader
Дата сообщения: 27.10.2005 14:02
Народ, подскажите кто знает, как в локальной сети без домена (рабочей группе), зная пароли локальных администраторов рабочих станций и серверов, средствами WMI используя KIX32, отследить какой-то процесс. Например обновление базы данных, запускаемого из файла например с именем LoadВ.exe
Автор: 7fortune
Дата сообщения: 22.11.2005 08:09
Народ, помогите со скриптом: имеется файл сервер на нем лежат расшаренные папки отделов и самих пользователей(папки пользователей называются по фамилии), нужно чтобы при логоне каждому юзверю цеплялись 2 сетевых диска - с папкой отдела и
личной папкой соответственно.Буду очень благодарен!
Автор: AlexSSS
Дата сообщения: 22.11.2005 08:25
с отделами проще всего - делаешь группы отделов, куда включаешь всех пользователей отдела и в скрипте.
IF INGROUP("Otdel1")
USE O: "\\Server\Otdel1"
ENDIF
IF INGROUP("Otdel2")
USE O: "\\Server\Otdel2"
ENDIF
проблемы будут, если пользователь может входить в несколько отделов.

где расположены личные папки пользователей?
Автор: 7fortune
Дата сообщения: 26.11.2005 12:37
Cорри за долгое отстутствие =( Ситуация такая: пользователей около 60, их личные папки расположены в корне диска d файл сервера, папка будет называться по учетной
записи в домене (по фамилии)
Автор: AlexSSS
Дата сообщения: 26.11.2005 22:41
> их личные папки расположены в корне диска d файл сервера
неудачное решение. Сделай на D: каталог Personal и засунь личные папки пользователей туда
на клиентах какие операционки? есть ли win9X?
Автор: 7fortune
Дата сообщения: 28.11.2005 11:01
>Сделай на D: каталог Personal и засунь личные папки пользователей туда
В принципе могу и так сделать. У пользователей - win 2k, win xp; win98 у 2-х человек.
Автор: tormozok
Дата сообщения: 03.03.2006 17:59
Может кто подскажет как мне получить IP адрес компа с которого вошли в терминал?
Автор: BergA
Дата сообщения: 16.03.2006 18:25
А можно ли считать StdOut запущенной через SHELL программы?
Автор: Smitis
Дата сообщения: 20.03.2006 21:13
BergA

Цитата:
А можно ли считать StdOut запущенной через SHELL программы?

Нет.
Автор: vasiliy74
Дата сообщения: 03.04.2006 06:37
вопрос такой, необходимо выполнение только на компьютерах с системой win2000 пишу IF @ProductType= "Windows 2000 Professional" ,а в итоге выполняет и на winXP?
Автор: AlexSSS
Дата сообщения: 04.04.2006 15:50
vasiliy74
все нормально работает (проверял именно на XP)
IF @ProductType= "Windows 2000 Professional"
? 'Windows 2000'
else
? 'Other'
ENDIF

ищи ошибки у себя в коде.
Автор: vasiliy74
Дата сообщения: 05.04.2006 15:20

Цитата:
? 'Windows 2000'
что делает эта строчка?(как я понял ? перенос курсора, а в кавычках просто выводит на экран)
вообще это один из моих первых скриптов
IF @ProductType= "Windows 2000 Professional"
RUN "\\%LOGONSERVER%\Common\Admin\MS_Windows_2000_MUI\muisetup.exe /i 0419 /d 0419 /r /s"
ENDIF

вот и всё такой простой скрипт но почему то на WinXP не работает
пока писал ответ в форум подумал про версию KIX она была 3.6 поставил с сайта 4.2 всё нормально заработало. спасибо
Автор: AlexSSS
Дата сообщения: 05.04.2006 16:26
vasiliy74
> что делает эта сторчка?
в окне кикса на новой строке выводит то, что идет далее. Напр,
? 'Версия Windows'
? @ProductType

это очень удобный способ для отладки - выводишь на экран любые промежуточные значения, чтобы убедиться, что в них находится

В твоем случае, после проверки на версию виндов, я бы еще поставил проверку на наличие установленного MUI - иначе он у тебя будет ставиться при каждом логоне.
Поищи в реестре какие-то записи, которые однозначно свидетельствуют об том, что MUI стоит. Соответственно в скрипте читаешь нужное значение реестра и, в зависимости от результата, запускаешь или нет установку
Автор: vasiliy74
Дата сообщения: 06.04.2006 07:43
Key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\MUILanguages
Автор: AlexSSS
Дата сообщения: 06.04.2006 08:36
убегаю до понедельника, времени проверить нет. Но проверь вариант

$path     = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\MUILanguages"
$value    = READVALUE($path, "0419")
?$value
Автор: vasiliy74
Дата сообщения: 06.04.2006 10:38
Да и ещё можно ли использовать !=1 (не равно) по тому что если MUI не установлено значение не присвоится вообще даже 0. Вопрос при попытке выполнения с сервера сообщает об ошибке, мол путь не найден, т.е. необходимо подключить сетевой диск выполнить скрипт отключить сетевой диск?

Код: @ECHO OFF
net use x: %LOGONSERVER%\netlogon
%LOGONSERVER%\netlogon\kix32.exe %LOGONSERVER%\netlogon\w2k_mui.kix
net use x: /delete
Автор: Smitis
Дата сообщения: 08.04.2006 12:25
vasiliy74

Цитата:
я не нашёл как пишется не равно

Не равно пишется <>
Внимательно читай хелп подраздел Expressions
Взять файл помощи можно сдесь:
http://web1.scriptlogic.com/Kixtart/htmlhelp/default.asp
http://www.kixhelp.com/
Автор: BergA
Дата сообщения: 10.04.2006 10:05
Уважаемые знатоки подскажите плз.!

Имеем AD 2003
W98
kix 4.51

Проверка на наличие пользователя в группе работает не на всех машинах w98

Скрипт простой

$Srv=XX
? "Hi, @USERID"
IF InGroup("G_XXX")
    ? "Group G_XXX"
    USE K: /DEL    
    USE K: "\\" + $Srv + "\XXX"
ENDIF
Автор: AlexSSS
Дата сообщения: 10.04.2006 11:53
сервис kxrpc.exe на всех DC запущен?
подробности в документации

USE K: "\\" + $Srv + "\XXX"
можно и проще
USE K: "\\$Srv\XXX"
Автор: BergA
Дата сообщения: 10.04.2006 12:37
AlexSSS

Цитата:
сервис kxrpc.exe на всех DC запущен?
подробности в документации

USE K: "\\" + $Srv + "\XXX"
можно и проще
USE K: "\\$Srv\XXX"


kxrpc.exe не запущен и не хотелось-бы.



Автор: AlexSSS
Дата сообщения: 10.04.2006 12:48
> kxrpc.exe не запущен и не хотелось-бы.
чтобы WIN9X полноценно работал, требуется, чтобы kxrpc.exe был запущен.

***************************************
Thunking and the KiXtart RPC Service

Unlike Windows NT, Windows 9x does not provide all the Win32 APIs that KiXtart 2001 needs to gather information, such as the user's full name and group memberships. KiXtart uses two programming methods to solve this problem: thunking and Remote Procedure Calls (RPCs)

Thunking is the term used when connecting to a 16-bit API from a 32-bit application. The 16-bit APIs required by KiXtart are provided by Netapi.dll. Kx16.dll and Kx32.dll provide the so-called thunking layer required to connect to Netapi.dll.

Unfortunately, Netapi.dll still does not provide all the information that is of interest to KiXtart. Most notably, Netapi.dll does not provide access to the logon domain, the security identifier (SID), the primary group, the home drive and local groups. The KiXtart RPC service provides these missing pieces of information to KiXtart using Remote Procedure Calls (RPCs). The client side of the RPC interface is provided in Kx95.dll
***************************************

кстати, похоже, что его не обязательно запускать именно на DC
я этот вариант сам не пробовал, подробности можешь посмотреть в документации
Автор: AlexSSS
Дата сообщения: 13.04.2006 09:38
Можно ли запустить KIX скрипт без вывода досовского окна?
Как сделать, чтобы под Windows 98 окно скрипта закрывалось само без правки PIF файла?
Автор: vasiliy74
Дата сообщения: 18.04.2006 08:04
есть ли аналог Xcopy в KIX?
[more= из help win...]Help:
Копирует файлы и каталоги, включая подкаталоги.

Синтаксис
xcopy источник [результат] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:файл1[+[файл2]][+[файл3]] [{/y|/-y}] [/z]

Параметры
источник
Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
результат
Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию.
/w
Выводит следующее сообщение с ожиданием подтверждения начала копирования:
Нажмите любую клавишу, чтобы начать копирование файлов

/p
Запрашивает подтверждение при создании каждого файла-результата.
/c
Игнорирует ошибки.
/v
Проверяет каждый скопированный файл на соответствие его оригиналу.
/q
Отменяет вывод на экран сообщений команды xcopy.
/f
Выводит имена исходных файлов и файлов-результатов в процессе копирования.
/l
Отображает список копируемых файлов.
/g
Создает незашифрованные файлы-результаты.
/d[:мм-дд-гггг]
Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.
/u
Копирует (обновляет) только те файлы-источники, которые уже существуют в каталоге результата.
/i
Если источником является каталог или источник содержит подстановочные знаки и результат не существует, команда xcopy считает, что результат — это имя каталога, и создает новый каталог. Затем xcopy копирует все указанные файлы в новый каталог. По умолчанию команда xcopy запрашивает подтверждение, является ли параметр результат каталогом или файлом.
/s
Копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
/e
Копирует все подкаталоги, включая пустые. Параметр /e используется с параметрами /s и /t.
/t
Копирует только структуру подкаталога (т. е. дерево), а не файлы. Для копирования пустых каталогов следует задать ключ /e.
/k
Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут. По умолчанию команда xcopy удаляет атрибут «только для чтения».
/r
Копирует файлы с атрибутом «только для чтения».
/h
Копирует системные и скрытые файлы. По умолчанию команда xcopy не копирует системные и скрытые файлы.
/a
Копирует только те файлы, которые имеют установленный атрибут «архивный». При использовании параметра /a атрибут "архивный" у исходных файлов не меняется. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
/m
Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
/n
Копирует с использованием коротких имен файловой системы NTFS. Параметр /n требуется при копировании из файловой системы NTFS в файловую систему FAT или когда на диске-результате требуется использование соглашения об именах файлов как в файловой системе FAT (8.3). Файлы могут записываться в файловую систему FAT или NTFS.
/o
Копирует сведения о принадлежности файлов и избирательной таблице управления доступом (DACL).
/x
Копирует сведения о параметрах аудита файла и системной таблице управления доступом (SACL) (подразумевается наличие /p).
/exclude:файл1[+[файл2]][+[файл3]]
Определяет список файлов, содежащих строки.
/y
Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
/-y
Выдает запрос на подтверждение перезаписи существующего конечного файла.
/z
Копирует по сети в режиме перезапуска.
/?
Отображает справку в командной строке.
Примечания
Использование параметра /v
В Windows XP эта команда не используется. Она предназначена для обеспечения совместимости с файлами MS-DOS.

Использование параметра /exclude
Построчный вывод всех строк в каждом файле. При соответсвтии выведенной строки части пути копируемого файла, он исключается из процесса копирования. Например, если указана строка «\Obj\», исключается все файлы, расположенные в каталоге «Obj». Например, если указана строка «.obj», исключается все файлы с расширением .obj.

Использование параметра /z
Если во время фазы копирования теряется сетевое подключение (например, если сервер переходит автономный режим, разрывая подключение), копирование возобновляется после восстановления подключения. Использование параметра /z команды вызывает также отображение доли (в процентах) завершенной операции копирования для каждого файла.

Использование параметра /y в переменной среде COPYCMD.
Можно применять параметр /y в переменной среде COPYCMD. Эта настройка может быть переопределена использованием параметра /-y в командной строке. По умолчанию если команда copy выполняется не в пакетной программе, при замене требуется подтверждение.

Копирование зашифрованных файлов
При копировании файлов на том, не поддерживающий шифрованную файловую систему (EFS), возникнет ошибка. Следует предварительно расшифровать файлы или копировать их на том, поддерживающий EFS.

Добавление файлов
Чтобы объединить файлы, укажите один файл-результат, но несколько файлов-источников (с помощью подстановочных знаков или формата файл1+файл2+файл3).

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

Указание в качестве результата файла или каталога
Если параметр результат не содержит существующий каталок или не заканчивается обратной чертой(\), выводится следующее сообщение:

Что означает destination:
имя файла или каталога
(F = файл, D = каталог)?

Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог.

Чтобы устранить вывод этого сообщения, используйте параметр /i. В результате чего, команда xcopy предполагает, что результат является каталогом, если источник престаляет собой несколько файлов или каталогов.

Использование команды xcopy для установки атрибута «архивный» для файлов результата
Команда xcopy создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов. Для получения дополнительных сведений об атрибутах файлов команде attrib см. ссылку «См. также».

Сравнение команд xcopy и diskcopy
Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopy копирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy, если только не требуется получить два диска с одинаковыми образами.

Коды завершения программы xcopy
Для анализа кодов завершения, выведенных командой xcopy, используйте параметр уровень_ошибки в командной строке if пакетных программ. Чтобы увидеть пример пакетной программы, обрабатывающей коды завершения с помощью if, щелкните ссылку «См. также». В следующей таблице перечислены коды завершения с кратким описанием.

Код завершения Описание
0 Файлы скопированы без ошибок
1 Файлы для копирования не найдены
2 Нажата комбинация CTRL+C для остановки команды xcopy
4 Возникла ошибка инициализации. Недостаточно места в памяти или на диске, введено неверное имя диска или неверный синтаксис вызова команды
5 Диск защищен от записи

Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:

xcopy a: b: /s /e

Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /h:

xcopy a: b: /s /e /h

Чтобы обновить файлы в каталоге \Reports файлами из каталога \Rawdata, измененными после 29 декабря 1993 года, введите:

xcopy \rawdata \reports /d:29-12-1993

Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от их даты, введите следующую команду:

xcopy \rawdata \reports /u

Чтобы получить списк файлов, которые были бы скопированы в предыдущем примере, следует ввести команду:

xcopy \rawdata \reports /d:29-12-1993 /l > xcopy.out

Список файлов, которые были бы скопированы, находится в файле Xcopy.out.

Чтобы скопировать каталог \Customer и все подкаталоги \\Public\Address на сетевой диск H, сохранить у файлов атрибут «только для чтения», введите команду:

xcopy \customer h:\public\address /s /e /k /p

Чтобы выдать предыдущую команду, убедиться, что команда xcopy создает каталог \Address и устранить вывод сообщение о создании нового каталога, добавьте параметр /i следующим образом:

xcopy \customer h:\public\address /s /e /k /p /i

Для запуска программы xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор if для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источникаxcopy и результата:

@echo off
rem COPYIT.BAT копирует все файлы во всех подкаталогах
rem исходного диска или каталога (%1) на другой диск

rem или в другой каталог (%2)

?? xcopy %1 %2 /s /e

??if errorlevel 4 goto lowmemory
?if errorlevel 2 goto abort
?if errorlevel 0 goto exit

??:lowmemory ?
echo Недостаточно памяти для копирования файлов,
задан недопустимый ?echo диск или ошибка в синтаксисе командной строки.
?goto exit
??
:abort ?
echo Нажата комбинация CTRL+C для остановки копирования.
?goto exit ?
?
:exit

Эта пакетная программа может быть использована для копирования всех файлов каталога C:\Prgmcode и его подкаталогов на диск B следующим образом:

copyit c:\prgmcode b:

Командный интерпретатор подставляет C:\Prgmcode вместо параметра %1 и B вместо параметра %2, затем использует команду xcopy с параметрами /e и /s. Если при выполнении xcopy произошла ошибка, пакетная программа считывает код завершения и переходит на метку, указанную в соответствующей инструкции IF ERRORLEVEL. В результате на экран выводится сообщение о характере ошибки и осуществляется выход из пакетной программы.

Форматирование
Формат Значение
Курсив Данные, которые должен ввести пользователь
Полужирный шрифт Элементы, которые следует вводить точно, как показано
Пропуск (...) Параметры могут повторяться несколько раз в командной строке
В квадратных скобках ([]) Необязательные элементы
В фигурных скобках ({}); варианты разделены вертикальной чертой (|). Пример: {четные|нечетные} Набор значений, из которого можно выбрать только одно значение
Шрифт Courier Текст кода или выхода программы
[/more]
Автор: AlexSSS
Дата сообщения: 18.04.2006 08:47
vasiliy74
есть просто copy
но никто не мешает тебе вызывать XCOPY из скрипта на KIX
см команду SHELL

Страницы: 12345

Предыдущая тема: включение DHCP на клиентах через GPO


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