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

» Автоматизация администрирования

Автор: Yourbill
Дата сообщения: 14.12.2003 15:33
ALEX_SP
Век живи век учись... буду знать. Но знание встроенных комманд еще ни кому не мешало
Автор: AcidDrinker
Дата сообщения: 16.12.2003 17:39
ooptimum
Возврасчаясь к етому скрипту

Цитата:
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select Name, Location from 'LDAP://DC=yourdomain,DC=ru' " _
& "where objectClass='computer'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strComputer = objRecordSet.Fields("Name").Value
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
objUser.SetPassword "testpassword"
objUser.SetInfo
objRecordSet.MoveNext
Loop

У меня ругается что:

18 line -->Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
В чем проблема? Буду премного благодарен за совет.
Автор: ooptimum
Дата сообщения: 16.12.2003 19:49
AcidDrinker

Цитата:
В чем проблема? Буду премного благодарен за совет.

Менял "DC=yourdomain,DC=ru" на свои данные?

Код: "Select Name, Location from 'LDAP://DC=yourdomain,DC=ru' "
Автор: AcidDrinker
Дата сообщения: 16.12.2003 19:57
ooptimum
да, конечно поменял. более того, скрипт
....
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strUser = objRecordSet.Fields("Name").Value
Wscript.echo strUser

objRecordSet.MoveNext
Loop

исправно выводит имена компов в домене...
Автор: ooptimum
Дата сообщения: 16.12.2003 20:24
Ну, тогда я полагаю может быть несколько причин. Во-первых, компьютер с данным именем в настоящий момент может быть недоступен по сети (например, выключен). Во-вторых, возможно, что пользователь, из-под которого ты выполняешь данный скрипт, не имеет необходимых полномочий на данном удаленном компьютере. В-третьих, может отсутствовать пользователь с таким именем. Может и еще что.
Автор: AcidDrinker
Дата сообщения: 16.12.2003 20:44
я добавил строку
[б] Wscript.echo strComputer [/б]
и получается что скрипт останавливается на первом компутере, который 100% в сети, скрипт запускается с контролера домена под администратором, все компы на ХР, user Administrator есть на всех компах...

может проблема в пустом пароле на локальном админском аккаунте?...
Автор: ooptimum
Дата сообщения: 16.12.2003 21:31
Firewall на XP не включен? Доменные администраторы не удалены ли из группы локальных администраторов на данной машине?
Автор: AcidDrinker
Дата сообщения: 16.12.2003 21:58
Точно! Надобно установить доменного админа локальным! Как это я не усмотрел )
Спасибо!

Добавлено
Сразу вопрос: как написат такой скрипт, что бы добавить всем машинам в домене доменного админа с правами локального админа?
Шутка %)
просто я пронял что у меня уже составлен рабочий график на пару дней вперёд
Автор: ALEX_SP
Дата сообщения: 17.12.2003 09:11
AcidDrinker
Посмотрите вот здесь
http://www.forum.ru-board.com/topic.cgi?forum=8&topic=5517#1
Может полегчает
Автор: AcidDrinker
Дата сообщения: 17.12.2003 17:03
Уже посмотрел. Полегчало %)
Автор: iLok
Дата сообщения: 15.01.2004 17:39
Хочу автоматом засетапить весь комп.
Стал писать.
Начал со скрипта на WinRAR:

var WshShell = WScript.CreateObject("WScript.Shell");
wrar_id = WshShell.Run("c:\\winrar_311ru\\install\\wrar311ru.exe");
WScript.Sleep(1000);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{ENTER}"); WScript.Sleep(500);
WshShell.AppActivate (wrar_id.ProcessID); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.AppActivate (wrar_id.ProcessID); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(200);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(220);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys (" "); WScript.Sleep(500);
WshShell.AppActivate (wrar_id.ProcessID);WScript.Sleep(500);
WshShell.SendKeys ("{ENTER}");WScript.Sleep(500);
WshShell.AppActivate (wrar_id.ProcessID);
WshShell.SendKeys ("{TAB}"); WScript.Sleep(500);
WshShell.SendKeys ("{ENTER}");WScript.Sleep(500);
WshShell.AppActivate (wrar_id.ProcessID);WScript.Sleep(500);
WshShell.SendKeys ("{ENTER}");WScript.Sleep(500);
WScript.Sleep(500);
WshShell.SendKeys ("%{F4}");

Теперь собственно о глюках:

1. В процесе инсталяции (из 20 раз , один раз случайно потерялся фокус на окне, и началось такое.......)
2. Не известно сколько времени программа инсталится (на разных компах поразному)
3. Глюк с чек боксами (если запустить скрипт два раза в подряд, короче чек боксы остаются на тех местах где их поставил предыдущий запуск скрипта)

Что можете сказать по поводу решения вышеописаных глюков.
Допустим этот скрипт для WinRAR отлажен, а если я примером офис захочу....

Автор: elite128
Дата сообщения: 16.01.2004 14:00
2000 сервер, без домена, с заведенными локальными пользователями. Собираюьс переходить на 2003, можно ли как либо выгрузить логины и пароли пользователей и после установки 2003 продублировать их?
Автор: dadu
Дата сообщения: 16.01.2004 14:58
iLok
сомневаюсь , что это относится к "Автоматизации администрирования".

Теперь по сабжу. WinRaR проще поставить самораспаковывающимся ехе-ником.
Запакуй тем же WinRaR'ом папку в Program Files. И вуаля. Регистрация
xcopy RARREG.KEY C:\Program Files\WinRAR
Этим же способом ставятся все программы которые работают без установки.
Например EmEditor, FleshGet, MyIE, и т.п.

Теперь еще по сабжу, есть более простые методы автоматической установки программ. Без извращений.... см. пример выше.
Тут по прогам куча ключей для автоматической установки:
http://www.msfn.org/board/index.php?s=10c7e9e2ef6963c192ddc65c6e360ce7&showforum=80
Офис и Вынь ставим тут
http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=0012&start=100#lt
Автор: naPmu3aH
Дата сообщения: 20.01.2004 19:47
Что-то я торможуууу....
Не подскажет ли сто красивого и простого способа изменения нескольких ключей в реестре на всех (избранных) компьютерах в домене 2000.
В общем-то для них есть в AD специальный OU, так что если это можно через политики - даже лучше. Но сам я не нашел как сделать такое (нашел только как права на ключи назначить)
Автор: pe3yc
Дата сообщения: 20.01.2004 20:42
naPmu3aH
а как на счет создать батник, который будет запускать *.reg и запустить этот батник на требуемых машинах?
Запускать одним кликом файл на множестве компов могут достаточно много прог, те же сканеры/фиксаторы безопасности.
Автор: iLok
Дата сообщения: 21.01.2004 14:49
Нужно с помощю WSH получить доступ к Computer managment -> services
Автор: kibkalo
Дата сообщения: 22.01.2004 07:34
naPmu3aH - сделать новую политику. в Logon script добавить .reg файл.
Права на чтение политики дать только нужным аккаунтам.
Автор: iLok
Дата сообщения: 27.01.2004 17:58
Ставлю delphi с помощью WSH (передаю кнопки окну)
Как в WSH отследить то что копирование завершено и можна слать кнопку что-бы закрыть окно
Автор: Jovanotti
Дата сообщения: 03.02.2004 14:05
naPmu3aH

Цитата:
(нашел только как права на ключи назначить)


Поделись идеей плиз....

kibkalo

Цитата:
в Logon script добавить .reg файл.

Если ты имеешь в виду GPO--> Script-->,
то там место только скриптам JS VBS WSH etc
но не всяким BAT CMD REG etc....
IMHO




Автор: Lamerok
Дата сообщения: 04.02.2004 16:43
привет отцы!!!


есть логонскрипт формата .cmd
-------------------------------------
rem проверка версии OC
gettype.exe
if errorlevel=9 goto FILENOTFOUND

if ERRORLEVEL=8 goto EIGHT
if ERRORLEVEL=7 goto SEVEN
if ERRORLEVEL=6 goto SIX
if ERRORLEVEL=5 goto FIVE
if ERRORLEVEL=4 goto FOUR
if ERRORLEVEL=3 goto THREE
if ERRORLEVEL=2 goto TWO
if ERRORLEVEL=1 goto ONE


:EIGHT
rem Windows XP
goto nextAA
net use t: /delete
net use t: /persistent:no \\servername\users$\%username%
net use y: /delete
net use y: /persistent:no \\servermame\users$\%username%
goto nextAA

.....

rem Template for assignment network drive on shared resources for special workgroup users
:nextAA
rem Checking for users GROUP('s) (COMMENT) for GOAL
ifmemberGROUP('s)
if not errorlevel 1 goto nextAA+1
net use D: /delete
net use D: /persistent:no \\servername\RESOURCES$
:nextAA+

---------------------------

помогите написать .vbs ибо я в VB как свинья в апельсинах

заранее 10x



Автор: JcVai
Дата сообщения: 05.02.2004 08:54
Lamerok
А не проще версию ОС проверять используя встроенные комманды?
Например:
======
VER | FIND /I "2000"
IF %ERRORLEVEL%==0 goto w2k
VER | FIND /I "95"
IF %ERRORLEVEL%==0 goto w95
VER | FIND /I "98"
IF %ERRORLEVEL%==0 goto w98
VER | FIND /I "ME"
IF %ERRORLEVEL%==0 goto me
VER | FIND /I "XP"
IF %ERRORLEVEL%==0 goto w2k3
VER | FIND /I "NT"
IF %ERRORLEVEL%==0 goto nt4
echo фигня твоя ОС
goto end
:w2k3
ECHO WINXP
goto end
:me
ECHO WINME
goto end
:nt4
ECHO WINNT
got end
:w95
ECHO WIN95
goto end
:w2k
ECHO WIN2K
goto end
:w98
ECHO WIN98
:end
Автор: Lamerok
Дата сообщения: 05.02.2004 10:23
JcVai

ну это не принципиально.. мне нужно .vbs написать...
Автор: JcVai
Дата сообщения: 05.02.2004 10:48
Lamerok

попробуй:
=========
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Exec ("C:\windows\system32\cmd.exe /C твой.cmd")
=========
Автор: Lamerok
Дата сообщения: 05.02.2004 11:03
JcVai


Цитата:
помогите написать .vbs ибо я в VB как свинья в апельсинах




это где и как делать? напиши плиз поподроднее
Заранее 10x
Автор: JcVai
Дата сообщения: 05.02.2004 11:53
Lamerok
Только что проверил работу:
====a.vbs=======
Set WshShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "%comspec% /c c:\000\a.cmd",2
==============
Скрипт выполнит файл c:\000\a.cmd в минимизированном окне.
Т.е. создай текстовый файл, скажем logon.vbs,
забей в него вышеуказанные 2 строчки,
заменив c:\000\a.cmd на полное имя твоего батника и наслаждайся.

PS: http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/scrguide/sas_wsh_ahkp.asp
Автор: Lamerok
Дата сообщения: 05.02.2004 12:12
JcVai


all done!!!
10x
Автор: ice_frog
Дата сообщения: 05.02.2004 17:49
Попробуй этот скрипт
он должен решить твою проблему и идентификацией ОС
------------------------------------------identify.vbs---------------------------------------
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo objOperatingSystem.Caption & " " & objOperatingSystem.Version
Next
-----------------------------------------------------------------------------------------------
Автор: Kristaliar
Дата сообщения: 20.04.2004 15:16

Народ.

Не подскажите примерный скрипт. Нужно проверить станции в сетке, какая стоит ОС, и в зависимости от этого запустить на них sp4w2k.exe, если w2k или sp1xp.exe, если xp.
Так как я всегда писал батники, а это по другому как через vbscript не сделать...

Как сие может выглядеть ?


Автор: JcVai
Дата сообщения: 20.04.2004 15:26
Kristaliar
LOL
Глазки выше подними!
Автор: Kristaliar
Дата сообщения: 20.04.2004 15:31
JcVai

Цитата:
Глазки выше подними!


Вижуу. ) Это только проверка какая ОСь. А вот как файлы садить на !станциях!, да с ключами, вот в чем загвоздка ?!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Зеркалирование дисков Win2000


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