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

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

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

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

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

MaTpockuHKoT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да я разобрался.
Дело оказалось в самой АД, которая из двух сереверов, и тут рюхнулась реплика. А логон шёл то с одного, то с другого...
Ща заработало...

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задача поставила меня в тупик, нужно при логоне пользователя @userid прописывать в сведения о пользователе в Office. Дело в том, что у меня на машинах есть Office2k и Office 3k, ну я думал хранятся себе данные в ветке какой-нить об имени пользователя, но всё не так просто http://support.microsoft.com/kb/290528/ru
В принципе можно сразу на все офисы писать в реестр, менять "UserName"=hex:41,00,6c,00,65,00,78,00,38,00,00,00 но ведь имя надо как-то в такую строку преобразовать в в REG_BINARY ...
 
PS Нужно для того, чтобы оффис в создаваемых документах проставлял реальное имя пользователя.
 
...Всё, сваял...
$LE=LEN(@USERID)
:LOOPLE  
$LE=($LE-1)
$x=DECTOHEX (Asc(SUBSTR(@USERID, LEN(@USERID)-$LE, 1)))  
$ren=$ren+$x+"00"
IF ($LE > 0) GOTO LOOPLE ELSE $ren=$ren+"0000" ENDIF
Writevalue ("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo", "UserName", $ren, "REG_BINARY")
Writevalue ("HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\UserInfo", "UserName", $ren, "REG_BINARY")
Writevalue ("HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\UserInfo", "UserName", $ren, "REG_BINARY")
 
PPS Мне не очень нравятся последние 3 строчки, может можно узнавать как-то где офис и записывать конкретно, а не создавать ненужные ветки?

Всего записей: 171 | Зарегистр. 24-09-2005 | Отправлено: 13:19 21-11-2007 | Исправлено: UdAvSt, 17:32 21-11-2007
ra1n



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос, можно ли на kix сделать следующее:
 
Юзеру копируется файл
Если файл уже есть на ПК, копирование не происходит
 
??
 
Добавлено:
вопрос отменяется..
но есть другой
 
написал скрипт, все ок работает, но есть засада с путями
 
RUN "c:\Documents and Settings\user\Local Settings\Temp\program.exe"
работает нормально, а если напишу -  
RUN "\%TEMP%\Bginfo.exe"
то не работает..  
 
Как выйти из положения, подскажите..

Всего записей: 328 | Зарегистр. 22-12-2006 | Отправлено: 11:05 04-04-2008 | Исправлено: ra1n, 12:03 04-04-2008
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ra1n
>  RUN "\%TEMP%\Bginfo.exe" -  не работает..  
?  "\%TEMP%\Bginfo.exe"  
 
теперь понятно?

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 17:11 04-04-2008
toni3d



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здравствуйте!
нужно выполнить проверку наличия ярлыка на рабочем столе пользователя
и если нет - создать(или переписать откуда нито)
 
IF EXIST (%UserProfile% + "\Рабочий стол\1С Предприятие.lnk")
DISPLAY %UserProfile% + "\Рабочий стол\users.txt"
ENDIF
 
на строчку DISPLAY %UserProfile% не обращайте внимание, это просто пока для проверки
 
здесь будет действие создания или копирования ярлыка
 
вопрос номер раз - каким символом заменить пробел в имени ярлыка "1С Предприятие" а то скрипт не понимает его(пробел)
 
и второй, можно ли средствами KiXtart создать ярлык(потому как у пользователей по разному обозван системный диск проще было бы оперировать %SystemDrive%)
 
Добавлено:
странно, сейчас имя с пробелом нормально отработало
 
но как создать ярлык пока не знаю

Всего записей: 30 | Зарегистр. 30-05-2008 | Отправлено: 13:36 30-05-2008
AlexSSS

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

Код:
 
 
DIM $res
DIM $WSHShell, $DesktopPath
$WSHShell    = CreateObject("WScript.Shell")
$DesktopPath    = $WSHShell.SpecialFolders("Desktop")
$ShortcutName = "$DesktopPath\мой супер ярлык.lnk"
IF not exist($ShortcutName)
    $MyShortcut = $WSHShell.CreateShortcut($ShortcutName)
    $MyShortcut.TargetPath = "m:\common\soft\permit\start.exe"
    $MyShortcut.WorkingDirectory = "m:\common\soft\permit"
    $MyShortcut.WindowStyle = 4
    $MyShortcut.Save()
endif
 
 

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 15:48 30-05-2008
toni3d



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо
скрипт отрабатывается без ошибок но найти ярлык не могу :'(

Всего записей: 30 | Зарегистр. 30-05-2008 | Отправлено: 10:01 02-06-2008
AlexSSS

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

Код:
 
DIM $res
DIM $WSHShell, $DesktopPath
$WSHShell    = CreateObject("WScript.Shell")
$DesktopPath    = $WSHShell.SpecialFolders("Desktop")
$ShortcutName = "$DesktopPath\мой супер ярлык.lnk"
IF not exist($ShortcutName)
    $MyShortcut = $WSHShell.CreateShortcut($ShortcutName)
    $MyShortcut.TargetPath = "c:\windows\notepad.exe"
    $MyShortcut.WindowStyle = 4
    $MyShortcut.Save()
endif  
 

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 10:49 03-06-2008
toni3d



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ооо!
все заработало!
спасиба!!!

Всего записей: 30 | Зарегистр. 30-05-2008 | Отправлено: 11:04 03-06-2008
rild

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

Цитата:
Сбор информации об железе компьютера  
Предварительно скачивается программа mvSysInfo с http://idb.newmail.ru/programs.html  
программа работает под любой Win операционкой, начиная с Win95. Скрипт легко переделать под использование любой другой программы, собирающей информацию об железе.  
mvSysInfo записывается в подкаталог _Admin пути, который вы задали в $PathLog  
Вызов этого скрипта записывается в конец предыдущего скрипта перед EXIT  
Call "k_hardware.kix"  
 

Ссылка не найдена,подскажите,где ещё можно её достать?
 
п.с. а на русском языке есть инструкция ?

Всего записей: 65 | Зарегистр. 05-06-2008 | Отправлено: 12:58 06-06-2008
UdAvSt



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
xttp://archive.rin.ru/more/6091.html/
а на русском в администрировании вообще очень мало исрукций, а то что есть - только сбивает, иногда лучше никакой
 
xttp://narod.yandex.ru/100.xhtml?neoprogs.narod.ru/Utils/05_06_01/mvSysInfo.exe
вот ещё на всякий случай, а то действительно с этой версией всё мёртво

Всего записей: 171 | Зарегистр. 24-09-2005 | Отправлено: 21:08 14-06-2008 | Исправлено: UdAvSt, 21:11 14-06-2008
ss777



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересно начиналась тема, точнее она так и не началась потому как не написано с чего начинать, сразу полезли вопросы про скрипты.
У меня есть следующая задача подключать пользователям домена при входе в систему два сетевых диска.
1-это общая папка (диск)  
2-личная папка (диск) для каждого пользователя.
Как это можно сделать с чего начать? Интересует не просто скрипт а куда его положить чтобы он запускался куда положить KIX и т.д.

Всего записей: 113 | Зарегистр. 02-02-2006 | Отправлено: 03:59 25-08-2008
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ss777
> Интересует не просто скрипт а куда его положить  
> чтобы он запускался куда положить KIX и т.д.
для KIX-а эти вопросы решаются аналогично любым другим логонным скриптам
 
1. проще всего поместить KIX и скрипты на \\DomainController\Netlogon
2. запуск скриптов прописывается или на каждого пользователя через оснастку Active Directory Users and Computers или через политики
 
подробнее см. в основной ветке по скриптам (ссылка в первом сообщении)

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 09:22 25-08-2008
AlexeyID

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите новичку. Нужен скрипт по проверке неработающих ссылок в сетевом окружении (nethood).  
Вот маленький скрипт, вроде работает если исчезает расшаренный ресурс на другом ПК.
 
Function DropBadLinkNetHood()
    dim $WSHShell, $FSO, $Folder, $File, $Text, $Sortcut
    
    $FSO = CreateObject("Scripting.FileSystemObject")
    $WSHShell = CreateObject("WScript.Shell")
    $Folder = $FSO.GetFolder($WSHShell.SpecialFolders("NetHood"))
    
    for each $File In $Folder.Subfolders
        $Sortcut = $WSHShell.CreateShortcut($File.files.item("target.lnk"))
        if not exist($Sortcut.TargetPath)
            $File.Delete(true)
        endif
    next
    $ = MessageBox($Text,"")
EndFunction
 
Если этот ресурс был на ПК где запускается скрипт, то не работает. Как средствами kix или wsh проверить расшарена папка на данном ПК или нет?

Всего записей: 72 | Зарегистр. 01-10-2005 | Отправлено: 07:42 04-12-2008
Rrusl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз... как с помощью kix проверить я вляется ли принтер подключенным по умолчанию...
При входе пользователя, я удаляю все принтеры... и хочу запомнить принтер, бывший по умолчанию в перем $DefPrinter
$Index=0
$Printer=""
$DefPrinter=""
Do
    $Printer = lcase(ENUMKEY("HKEY_CURRENT_USER\Printers\Connections\", $Index))
    if SetDefaultPrinter($Printer) = 0
        $DefPrinter=$Printer
    EndIf
 
        $defpr1="\\" + right(left($Printer,10),8) + "\" + right($Printer,len($Printer)-11)
        $del=DelPrinterConnection($defpr1)
$Index = $Index + 1
Until Len($Printer) = 0
 
дальше, я подключаю принтеры....
и если принтер бывший по умолчанию, снова входит в список подключенных, я делаю его по умолчанию...
 
Проблема в том, что  
if SetDefaultPrinter($Printer) = 0
        $DefPrinter=$Printer
    EndIf
не срабатывает.... тоесть происходит не проверка принтера на использование по умолчанию.... а просто по очереди всем принтерам присваивается значение по умолчанию... и соответственно невозможно восстановить какой принтер использовался по умолч

Всего записей: 1 | Зарегистр. 18-12-2008 | Отправлено: 12:25 18-12-2008 | Исправлено: Rrusl, 12:32 18-12-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сорри не в тот топ пульнул
 
Исправляет некорректное имя автора в Office 2003 на ФИО (displayName) из AD.
Собственно баг в кодировке при добавлении в реестр. Коллеги как исправить?
(видимо ldap utf > реестр 1251)
 

Код:
Set fs = CreateObject("Scripting.FileSystemObject")
set WshShell = WScript.CreateObject("WScript.Shell")
' get UserName
strName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
 
On Error Resume Next
 
' Constants for the NameTranslate object.
Const ADS_NAME_INITTYPE_DOMAIN = 1
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1179 = 1
 
Set objNetwork = CreateObject("Wscript.Network")
 
' Determine DNS domain name from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
If Err.Number <> 0 Then
    Wscript.Quit
End If
strDNSDomain = objRootDSE.Get("defaultNamingContext")
 
' Use the NameTranslate object to find the NetBIOS domain name from the
' DNS domain name.
Set objTrans = CreateObject("NameTranslate")
objTrans.Init ADS_NAME_TYPE_NT4, strDNSDomain
objTrans.Set ADS_NAME_TYPE_1179, strDNSDomain
strNetBIOSDomain = objTrans.Get(ADS_NAME_TYPE_NT4)
' Remove trailing backslash.
strNetBIOSDomain = Left(strNetBIOSDomain, Len(strNetBIOSDomain) - 1)
 
' Use the NameTranslate object to convert the NT user name to the
' Distinguished Name required for the LDAP provider.
objTrans.Init ADS_NAME_INITTYPE_DOMAIN, strNetBIOSDomain
objTrans.Set ADS_NAME_TYPE_NT4, strNetBIOSDomain & "\" & strName  
strUserDN = objTrans.Get(ADS_NAME_TYPE_1179)
 
' Bind to the user object in Active Directory with the LDAP provider.
Set objUser = GetObject("LDAP://" & strUserDN)
 
'Get Common name
strUsername=objUser.Get("displayName") & ", " & objUser.Get("telephoneNumber")
'strUsername= objUser.cn
'WScript.Echo strUsername
'Convert Initials to HEX
For i = 1 to Len(strName)
 strInitialsHex = strInitialsHex & "," & Hex(Asc(Mid(strName, i, 1))) & ",00"
Next
strInitialsHex = Right(strInitialsHex , Len(strInitialsHex ) -1)
strInitialsHex = strInitialsHex & ",00,00"
 
'Convert Username to HEX
For i = 1 to Len(strUsername)
 strUsernameHex = strUsernameHex & "," & Hex(Asc(Mid(strUsername, i, 1))) & ",00"
Next
strUsernameHex = Right(strUsernameHex, Len(strUsernameHex) -1)
strUsernameHex = strUsernameHex & ",00,00"
 
' Create temporary registry file
Const OverwriteIfExist = -1
Const FailIfExist      = 0
Const OpenAsASCII   =  0
Const OpenAsUnicode = -1
Const OpenAsDefault    = -2
sTmpFile = WshShell.ExpandEnvironmentStrings("%TEMP%") & "\UserInfo.reg"
Set fFile = fs.CreateTextFile(sTmpFile, OverwriteIfExist, OpenAsASCII)
 
 
' Write to the temporary registry file
fFile.WriteLine "Windows Registry Editor Version 5.00"
fFile.WriteLine
fFile.WriteLine "[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo]"
fFile.WriteLine """UserName""=hex:" & strUsernameHex
fFile.WriteLine """UserInitials""=hex:" & strInitialsHex  
fFile.Close
 
' Import the registry file
WshShell.Run "regedit /s " & sTmpFile, 0, True
 
' Delete the temporary registry file
fs.DeleteFile sTmpFile

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 14:56 26-02-2009 | Исправлено: abasov, 16:43 26-02-2009
AlexeyZet

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые!
Нужен скрипт простой, но с заковыркой. Желательно в batch-пакете, но может быть и на kix кто-то знает. ПОдскажите, как сделать?
Задача:
При запуске скрипта в папке F:\Archive создается новая папка с названием, которое должно содержать текущую дату (Типа "archive_19.04.2009"), и затем в эту созданную папку копируется файл back_full.bkf из папки F:\Backup. Всё!
 
Подскажите готовое решение, или скажите как подставить в имя создаваемой папки текущую дату?
 
Спасибо откликнувшимся.

Всего записей: 12 | Зарегистр. 09-11-2004 | Отправлено: 13:53 27-03-2009
Vby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexeyZet
Как-то так:
cd F:\Archive
md archive_%date%
copy F:\Backup\back_full.bkf F:\Archive\archive_%date%

Всего записей: 781 | Зарегистр. 16-09-2004 | Отправлено: 14:56 27-03-2009
mupybup

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мужыки а как сделать так шоб для группы пользователей в домене запускался экзешник на всех компах введенных в домен кроме одного ?

Всего записей: 2 | Зарегистр. 25-08-2008 | Отправлено: 15:14 20-07-2009
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mupybup
ну так делай любые условия, испольуя @wksta и @Ingroup()
 

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 21:33 23-07-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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