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

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

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

emx (13-12-2006 21:07): http://forum.ru-board.com/topic.cgi?forum=8&topic=19088#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ooptimum



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

                               Коллеги-администраторы  ....  


Часть 1


Думаю каждый из вас сталкивался с необходимостью выполнять некие несложные рутинные операции, на котороые уходит много драгоценного времени.
 Например, создать определенную структуру каталогов для каждого пользователя домена, изменить некие параметры в профилях всех или части пользователей, изменить полномочия/владельца однотипных файлов в разных каталогах т.д.  
Я, как сисадмин, тоже не раз был вынужден делать все это.  Руками делать это тоскливо и муторно, как вы понимаете. Должен заметить, что по неким "религиозным" убеждениям я всегда старался избегать любых отношений с бейсиком и его производными. Еще мой отец учил меня не иметь с ним никаких дел. Буквально. А теперь я учу своего сына тому же. Но, тем не менее, полностью избежать этого, по всей видимости, невозможно, тем более, что бейсик от M$ сейчас уже далеко не та "лапша", которой он был изначально, а современный структурированный язык, нашедший множество применений. Похоже, что для меня в очередной раз настала пора выучить еще что-то. Знаете, как курильщик много раз безуспешно пытается бросить курить, так и я не раз пытался подступиться к изучению VBScript, но пока никак не одолел. Лень, знаете ли. А инструмент в делах административных был бы весьма пользительный, должен заметить, для быстрого написания всякого рода скриптов.

 
    Внимание   !  !  !  

  • Поскольку данный топ весьма не мал, не забывайте  использовать "версию для печати" для более удобного поиска по теме. А также МЕГА ПОИСКОВИК от NEPa

  • Дабы не раздувать топ,  примеры своих  скриптов  заключаем в тег  "more"

Консольные команды. Командный интерпретатор

Windows Script Host (WSH) &  VBScript  &  JScript


Вышеперечисленные буки можно  взять здесь

    ТOOLS :
  1. Autoit+readme.rus
  2. Scriptologic
  3. AutoMate
  4. KIXTART
  5. nnCron-Планировщик с поддержкой скриптового языка --  РЕКОМЕНДУЮ
  6. WGET, GREP, GETMAIL, BLAT for Windows замечательные консольные утилиты
  7. 4dos/4nt -- отличная замена стандартного коммандного интерпретатора  
  8. JudoScript - java подобный скриптовый язык с исходниками

    Дружественные темы :
  1. Автоматическая (unattended) установка Windows
  2. Интересные команды при работе с Linux
  3. Отличный сайт по скриптингу, и не только
  4. Использование KIX
  5. Использование WMI

 
>>HOW -  TO:
Создается по материалам данного топа

 
Надеюсь данная тема будет полезна для Вас.
 Предложения по реформированию шапки принимаю в ПМ Jovanotti

 

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 08:55 13-12-2002 | Исправлено: FreemanRU, 17:29 11-12-2006
FreemanRU



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

Цитата:
"SELECT * FROM Table_1 (Test)",  

Это ты где такой синтаксис взял?
 
Очень советую (просто таки настаиваю!) - скачай SQL 2000 books online. Там весь синтаксис описан.
 
Должно быть:

Код:
 
SELECT Test FROM Table_1
 


----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 14:38 04-08-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FreemanRU скачал, еще раньше скачал, только никак не обращался, обычно все в MSDN смотрел.  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 15:22 04-08-2006
Molevole

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Помогите, пожалуйста.
Надо переделать bat файл в vbs скрипт.
Допустим запускается 2 программы:
 
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run c:\program1_1.exe
WshShell.Run c:\program1_2.exe
 
1. Как сделать что бы вторая программа не выполнялась пока не законичит работу первая. В bat файле это решалось так:  
 
start /w c:\program1_1.exe
c:\program1_2.exe
 
2. Как в скрипте узнать код завершения программы? В bat файле это делается с помощью if errorlevel 1 goto...

Всего записей: 3 | Зарегистр. 02-04-2006 | Отправлено: 02:25 06-08-2006
RoloTomasi



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Надо курить команды Run и Exec.
WshShell.Run
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])  
WshShell.Exec
 
 
//oxc=WshShell.Run(szCmd,6,true);
//WScript.Echo(oxc);// 225 - break; 0   - success
 
//oxc = WshShell.Exec(szCmd);//while(oxc.Status==0){WScript.Sleep(100);}
//WScript.Echo(oxc.Status);

Всего записей: 1135 | Зарегистр. 18-05-2005 | Отправлено: 05:11 06-08-2006 | Исправлено: RoloTomasi, 05:11 06-08-2006
Molevole

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

Цитата:
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])  

 
с [bWaitOnReturn] действительно ждет.
С остальным пока не разобрался. Это jscript?

Всего записей: 3 | Зарегистр. 02-04-2006 | Отправлено: 22:24 06-08-2006
unreal666



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

Цитата:
Это jscript?

Да.

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 02:39 07-08-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не могу понять как сделать следующую вещь - есть две колонки в одной таблице (sql).
 
В первую внесены значения, вторая пустая.  
 
В первой начинаем вести поиск значения "A" и как только значение найдено. В соответствующей ячейки второй колонки делаем запись, например, "ip" компьютера. Т.е. фактически нужно ихвлечь номер строки, в которой было найдено значение и на этой строке, только в другой колонке внести соответствующее значение.  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 17:35 07-08-2006 | Исправлено: Sk1f, 17:38 07-08-2006
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые All
Подскажите хочу удалять на удаленном компе установленную через Windows Installer программу
 
Получаю с помощью скрипта
 

Код:
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile("c:\test\list.txt", True)
 
strComputer = "ws14"
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
   ("Select * from Win32_Product")
 
objTextFile.WriteLine "Caption" & vbtab & _
   "Description" & vbtab & "Identifying Number" & vbtab & _
   "Install Date" & vbtab & "Install Location" & vbtab & _
   "Install State" & vbtab & "Name" & vbtab & _
   "Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _
      & "Version"
 
For Each objSoftware in colSoftware
   objTextFile.WriteLine objSoftware.Caption & vbtab & _
   objSoftware.Description & vbtab & _
   objSoftware.IdentifyingNumber & vbtab & _
   objSoftware.InstallDate2 & vbtab & _
   objSoftware.InstallLocation & vbtab & _
   objSoftware.InstallState & vbtab & _
   objSoftware.Name & vbtab & _
   objSoftware.PackageCache & vbtab & _
   objSoftware.SKUNumber & vbtab & _
   objSoftware.Vendor & vbtab & _
   objSoftware.Version
Next
objTextFile.Close
 
 

 
IdentifyingNumber
 
опираясь на него и хочу выбирать удаляемые проги так как по имени не получаеться  
имена некторых прог совподают
 
Вот примерно скрипт но не работает  
 

Код:
 
'Удаление программы
 
'Этим скриптом можно удалить любую установленную через Windows Installer программу. В этом примере её имя LeftSoft Program.
 
'strComputer = "."-для локального компьютера для остальных меняем на имя компа
strComputer = "ws14"
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colSoftware = objWMIService.ExecQuery _
   '("Select * from Win32_Product Where Name = 'LeftSoft Program'")
("Select * from Win32_Product Where IdentifyingNumber='{02ADB122-1F47-4B32-B0EA-33534B5A07DF}'")
 
For Each objSoftware in colSoftware
   objSoftware.Uninstall()
Next
 

 
Помогите плиз

----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 11:53 09-08-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
rosalin, а какая ошибка выскакивает?  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 12:16 09-08-2006
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sk1f
 
Line:        12
Char:       1
Error:       Expected statement
Code:      800A0400
Source:    Microsoft VBScript compilation error

----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 12:59 09-08-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
rosalin
У тебя просто ошибка в синтаксисе где-то... 12я строка у тебя - это какая?

----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 13:02 09-08-2006
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
'Удаление программы
 
'Этим скриптом можно удалить любую установленную через Windows Installer программу. В этом примере её имя LeftSoft Program.
 
'strComputer = "."-для локального компьютера для остальных меняем на имя компа
strComputer = "ws14"
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colSoftware = objWMIService.ExecQuery _
   '("Select * from Win32_Product Where Name = 'LeftSoft Program'")
("Select * from Win32_Product Where IdentifyingNumber='{02ADB122-1F47-4B32-B0EA-33534B5A07DF}'")
 
For Each objSoftware in colSoftware
   objSoftware.Uninstall()
Next

----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 13:15 09-08-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
rosalin
У тебя эта строка "висит", т.е. тебе надо её подвинуть вверх, убрав строку с комментарием. Вот именно по этому я не люблю пользоваться переносом строки (подчеркиванием)

----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 13:22 09-08-2006
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Вроде заработало
 
А можно сделать что бы скрипт срабатывал выдавал список програм и версий и при выборе удалял программу

----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 13:37 09-08-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
rosalin
Тебе надо сделать HTA. В нем можно сделать интерфейс.
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/hta/overview/htaoverview.asp

----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 14:25 09-08-2006
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Подскажите что за ошибка в сервере сценариев  
 
Oшибкa: Библиoтeкa нe зapeгиcтpиpoвaнa.
Кoд:        8002801D
Иcтoчник:               (null)
 
Стала возникать после удаления какой то проги
 
рабочие скрипты не выпоняються

----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 10:35 10-08-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
rosalin
из PRB: Installation of WSH 5.5 for Windows 2000 May Cause Scripts to Stop Functioning

Цитата:
 
CAUSE
The Windows Script version 5.5 for Windows 2000 install (scripten.exe) does not handle the case in which the vbscript.dll and/or jscript.dll files are in use. If this situation occurs, the install script does not properly register the .dlls and, when the computer is rebooted, no scripts that use either .dll function correctly.  
 Back to the top  
 
RESOLUTION
To resolve this problem, do one of the following:  
• Run the Windows Script 5.5 install again. At this point, the .dlls cannot be in use because they are not registered so the same situation does not occur.  
• Register the .dlls manually. These dlls are located in the system32 directory. To register them, type the following commands at a command prompt or in the Run window on the Start button:
• regsvr32 %systemroot%\system32\vbscript.dll
• regsvr32 %systemroot%\system32\jscript.dll  
 


----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 10:41 10-08-2006
rosalin



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

Цитата:
RESOLUTION  
To resolve this problem, do one of the following:  
• Run the Windows Script 5.5 install again. At this point, the .dlls cannot be in use because they are not registered so the same situation does not occur.  
• Register the .dlls manually. These dlls are located in the system32 directory. To register them, type the following commands at a command prompt or in the Run window on the Start button:  
• regsvr32 %systemroot%\system32\vbscript.dll  
• regsvr32 %systemroot%\system32\jscript.dll  

 
не помогло поставил обратно прогу все заработало прога я думаю плотно связана с .vbs
 
занимаеться удалением прог с удаленных машин


----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 11:09 10-08-2006
MC_VARGAR



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!  
Думаю те кто занимался перетаскиванием пользователей из старого домена в новый сталкивались с проблемой миграции локальных профилей пользователей (чтобы у них осталось всё так-же как в старом в домене, настройки почты, папка Мои документы и т.д., но они бы работали уже в новом).  
Вот моё решение, как можно избавиться от копирования профилей изменения рееестра и т.п. но всё таки есть некоторые проблемы.... но о них чуть по позжее.  
Перед всей этой операцией были мигрированы учётные записи пользователей, компьютеров и т.д. с сохранением истории SID. Старый домен на NT4 новый домен на Win2k3
 
Вот как это выглядит:
Кладу файлы на контр.домена в папку NETLOGON:
migrate.bat
migrate.reg
netdom.exe
move.bat
moveuser.exe
domain_user.txt
 
Сначала  в старом домене (NT4.0) я пользователю в профиль прописываю запускать при загрузке батник migrate.bat
 
migrate.bat

Код:
 
#######очистка временных папок пользователя########
del "%USERPROFILE%\Local Settings\History\"*.* /f /s /q  
del "%USERPROFILE%\Local Settings\Temp\"*.* /f /s /q  
del "%USERPROFILE%\Local Settings\Temporary Internet Files\"*.* /f /s /q  
del "%USERPROFILE%\Local Settings\Recent\"*.* /f /s /q  
del "%USERPROFILE%\Cookies\"*.* /f /s /q
del "%SystemRoot%\Temp\"*.* /f /s /q
del "%SystemRoot%\Downloaded Installations\"*.* /f /s /q
del "%SystemRoot%\"*.log /f /q
del "%SystemDrive%\"*.log /f /q
del "%SystemDrive%\Recycler\"*.* /f /q /s
del "%SystemDrive%\System Volume Information\"*.* /f /q /s
#########изменяет строку ВОЙТИ В: OldDomain на ВОЙТИ В: NewDomain###########
regedit /s “\\OldDomainController\NETLOGON\migrate.reg"
#######смена принадлежности к домену у компьютера########
netdom move %COMPUTERNAME% /domain:NewDomain /UserD:ADMIN /PasswordD:1234 /REBoot:5
 

migrate.reg

Код:
 
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultDomainName"=" NewDomain "
"AltDefaultDomainName"=" NewDomain "
"CachePrimaryDomain"=" NewDomain "
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DomainCache]
" NewDomain"=" NewDomain.ru"
 

netdom.exe Стандартная утилита из Windows Support Tools
 
///////Со старым доменом закончили////////////////
Для того чтобы мигровать профиль пользователя использую утилиту moveuser.exe из набора Ressource Tools
Это выглядит так:
1)    Создаю файл domain_user.txt в нём содержутся имена пользователей в виде один пользователь на одну строку.  
2)    Создаю батник move.bat который разбирает файл domain_user.txt и подставляет имена пользователей к файлу moveuser.exe :
 
move.bat

Код:
 
for /F "eol=; tokens=1 delims=" %%j IN (domain_users) DO moveuser.exe OldDomain\%%j NewDomain\%%j /y /k  
 

3)    Теперь при помощи программы (Advanced Installer 3.9) создаю исполняемы msi файл который при     запуске вызывает move.bat
4)    Распространяю его при помощи групповой политики на компьютеры которые будут переведены в NewDomain.
 
Теперь вернёмся к моменту когда компьютер пользователя перезагрузился:
 
1)    После перезагрузки устанавливается  msi файл и мигрируется локальный профиль
2)    Пользователь вбивает свой логин/пароль и нормально продолжает работать.
 
С этой технологией у меня возникли вот такие проблемы:
 
1)    Когда пользователь в самый первый раз заходит на компьютер, файл migrate.bat назначенный в его профиле может не испольниться…. Для его исполнения нужно ещё раз перезалогинеться.
2)    Команда netdom move %COMPUTERNAME% /domain:NewDomain /UserD:ADMIN /PasswordD:1234 /REBoot:5 нормально работает только в Windows XP или Windows2003.
 
В Windows 2000 она выдаёт вот такую ошибку: Точка входа в процедуру SetThreadUILanguage не найдена в библиотеке DLL KERNEL32.DLL
 
 
ВОПРОС: Какие ещё есть методы смены домена у компьютера из командной строки? Или как решить эту проблему с Windows 2000 при выполнении команды netdom.exe

Всего записей: 3 | Зарегистр. 10-08-2006 | Отправлено: 11:54 10-08-2006
alexxxn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это, конечно, утилита не командной строки... НО!!! все упрощает - Active Directory Migration Tool.
скачать можно - http://www.microsoft.com/downloads/details.aspx?familyid=6F86937B-533A-466D-A8E8-AFF85AD3D212&displaylang=en

Всего записей: 20 | Зарегистр. 27-12-2002 | Отправлено: 12:22 10-08-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования
emx (13-12-2006 21:07): http://forum.ru-board.com/topic.cgi?forum=8&topic=19088#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru