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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Jovanotti



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexSSS
Здесь обсуждалось  
http://forum.ru-board.com/topic.cgi?forum=8&topic=1908&start=240#10
и в шапке тоже

Всего записей: 718 | Зарегистр. 22-12-2002 | Отправлено: 15:32 03-02-2005 | Исправлено: Jovanotti, 15:43 03-02-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>Как скриптом максимально быстро проверить, доступен ли компьютер?  
ответ взят из TechNet Script Center  
 
machine = "compname"
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
        ExecQuery("select * from Win32_PingStatus where address = '"_
            & machine & "'")
    For Each objStatus in objPing
        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then  
            WScript.Echo("machine " & machine & " is not reachable")  
        End If
    Next

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 15:54 03-02-2005 | Исправлено: AlexSSS, 16:37 03-02-2005
GaDiNa



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

Цитата:
@echo off  
echo Size of %~nx1 is %~z1  
pause  

Подскажи - где можно почитать о вснех параметрах типа %~nx1 и %~z1. Как в них разобраться ?

Всего записей: 1551 | Зарегистр. 17-06-2003 | Отправлено: 18:31 03-02-2005
distance

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

Цитата:
Как скриптом максимально быстро проверить, доступен ли компьютер?

попробуй так:
 

Код:
 
function alive(strComputer)
{
    try
    {
        var refLocator = new ActiveXObject("WbemScripting.SWbemLocator");
        var refService = refLocator.ConnectServer(strComputer, "root\\default");
        return (true);
    }
 
    catch(e)
    {
        return (false);
    }
}
 


Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 20:09 03-02-2005
igor_andreev

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

Цитата:
Подскажи - где можно почитать о вснех параметрах типа %~nx1

Да тут в интернете и можно.
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx
http://www.windowsitpro.com/Article/ArticleID/13443/13443.html
А если сделаешь у себя на рабочем столе ярлык:
%windir%\hh.exe ms-its:%windir%\Help\ntcmds.chm::/ntcmds.htm
то в описании команды for найдешь тоже самое по русски
Ну или просто в командной строке набери: for /?

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 20:50 03-02-2005 | Исправлено: igor_andreev, 21:02 03-02-2005
Smitis



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

Цитата:
Подскажи - где можно почитать о вснех параметрах типа %~nx1 и %~z1. Как в них разобраться ?

В файловом архиве в разделе "операционные системы" есть переделанный из стандартного русский хэлп (с более удобной навигацией). Правда, несколько кривовато скомпиленный

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 01:37 05-02-2005
vworld



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> например создаем новую учетку в АД, и хотелось бы, чтобы для нового юзера при  
> входе в домен все и создавалось, т.е. как мы уже обсуждали - 3 папки (личная, группы, конторы), причем не просто на файл-сервере, но и у юзера тоже они сразу  
> подключались....
Мне ответили........
Да, это возможно при помощи логонных скриптов. Более того, можно написать скрипты так, чтобы на какой компьютер пользователь не сел, после входа в систему у него подключались все его ресурсы.  
Единственное, что мне не удалось нормально организовать, это чтобы автоматом при этом настроились учетные записи для почты (используются Outlook Express и Outlook без Exchange)  
Так вот вопрос....по скриптам....как писать.....точнее просто не знаю тольком вообще ничего про скрипты

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 15:59 09-02-2005
Alxdhere



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пжлс, кто знает, как проще всего в VB скрипте проверить пользователя на обладание привилегий администратора? Т.е. есть имя юзера - с правами админа он или нет?

Всего записей: 183 | Зарегистр. 24-11-2004 | Отправлено: 16:37 09-02-2005
Jovanotti



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

Всего записей: 718 | Зарегистр. 22-12-2002 | Отправлено: 18:03 09-02-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> точнее просто не знаю тольком вообще ничего про скрипты  
н-да...
 
Скрипт - это такая программа, которая выполняет какие-то действия ;o)
Логон скрипт - скрипт, который выполняется сразу после идентификации пользователя и входе его в виндовс. В домене очень легко повесить логон скрипт на каждого пользователя через "Active Directory Users and Computers" ("Domain Users and Computers" в NT4 домене). D В этом случае скрипт сработает и на win95 клиентах.
Либо можно повесить логон скрипты через политики. Но тогда клиенты должны быть не ниже win2000.
 
расмматриваем первый вариант.
Active Directory Users and Computers-->выбираешь конкретного пользователя, напр. себя-->properties-->profile-->logon script
Пишешь туда имя скрипта, напр. LOGON.BAT
Самый простой пример - надо конкретному пользователю при входе в систему подключить зашаренный ресурс. Делаешь файл LOGON.BAT и в него засовываешь пару строк
net use x: /delete
net use x: \\server\resource
На домен контроллере смотришь, какая папка зашарена как Netlogon и забрасываешь туда  logon.bat
Если репликация в домене идет нормально, то скоро этот файл появится на всех домен контроллерах.
 
Теперь, как только пользователь зарегистрируется в домене, у него запустится этот батник и соответственно присоединится диск X.
 
Это самый простейший пример. даже с помощью BAT файлов можно произвести достаточно много настроек. Более развитые скриптовые языки могут сделать еще больше. Из часто используемых -VBScript,  JScript, KIX Script. Кто-то на форуме вообще предлагал писать скрипты на C.
 
Если хочешь быстро начать писать реально работающие скрипты, я бы посоветовал Kix Script.

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 18:54 09-02-2005 | Исправлено: AlexSSS, 19:28 09-02-2005
Jovanotti



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

Цитата:
точнее просто не знаю тольком вообще ничего про скрипты  

В  шапочке  все есть  ....  (и даже больше   )
 Потрать  пару часов  (даже меньше  )  что бы вникнуть,  а  вот  потом  .....
Окроются  врата  админовского рая для тебя .....
Я имею в виду что СКРИПТЫ  тебе НАСТОЛЬКО облегчат работу,  
что сам себе завидовать будешь...
 
AlexSSS

Цитата:
Кто-то на форуме вообще предлагал писать скрипты на C.  

Kibkalo  это  был  ....    Парень сам начинал  с   WSH,  затем уровень повысился
и перешел на С, чего и всем желает я думаю.

Всего записей: 718 | Зарегистр. 22-12-2002 | Отправлено: 19:36 09-02-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Окроются  врата  админовского рая для тебя
Для открытия админовского рая лично мне не хватает решения одной задачи ;o)
 
В 2000-м домене пара сотен пользователей используют для почты Outlook. Версии, начиная от 97-го до 2003-го. Можно ли с помощью скриптов настраивать хотя бы учетные записи для  Оутлука, чтобы пользователь получал доступ к своей учетной записи с любого компа?
 
использовать Exchange только для почты экономически нецелесообразно
использование перемещаемых профилей не подходит из-за большой разницы в софте на разных компьютерах.

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 19:49 09-02-2005 | Исправлено: AlexSSS, 19:54 09-02-2005
vworld



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jovanotti
AlexSSS
просто земной поклон вам, за советы....вот это дельные ответы я называю, когда первую инфу для дальнейшего изучения человек получает от знающих людей, в придачу ссылку на мануалы, ну а дальше в свободное плаванье (пока не утонет)
Кстати Kibkalo в виндовых вещах именно в плане админство не превзайденный гуру
(заочно ему тоже спасибо)
З.Ы. сорри если наоффтопил.....

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 20:51 09-02-2005
Alxdhere



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

Цитата:
Alxdhere  
Просто ....  
Проверка на содержимое группы Administrators

Я так и делаю, однако если зайти не под локальным админом, а под доменным, то его в группе нет! Там есть только группа Domain Admin
Я предполагаю, что должно быть какое-то аккуратное решение для определения привелегий пользователя без перебора их в группах (локальных и доменных). Типа bool IsAdmin(UserName). Но где ее искать?

Всего записей: 183 | Зарегистр. 24-11-2004 | Отправлено: 07:21 10-02-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проверяешь, есть ли пользователь в группе локальных админов и группах, которые входят в группу локальных админов. Использую рекурсию можно проверить любой уровень вложенности.  
Можно чуть упростить задачу - просто проверять группы локальных админов и домен  
админов, если другие группы в фирме не входят в группу локальных админов.
Можно поискать, какие конкретно права доступны только для админов, напр. запись в конкретные ветки реестра. И просто проверять, можно ли писать в эту ветку или нет. Если получилось - значит админ. И не забыть стереть записанное
Хотя, может быть, есть все же и более красивое решения на VBS.
 
На KIX все такие проблемы решаются с полпинка
просто членство в группе - InGroup("group")
а для конкретно твоего вопроса - @priv (User's privilege level (GUEST, USER, ADMIN))

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 10:36 10-02-2005
Alxdhere



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2 AlexSSS
Проверил группы админов локальных и доменных. Мне достаточно. Спасибо за помощь.

Всего записей: 183 | Зарегистр. 24-11-2004 | Отправлено: 11:14 10-02-2005
vworld



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот надумал создать вот такой батник
net use f: \\UNC Path (типа папка отдела)
net use g: \\UNC Path (типа папка конторы)
Это в продолжение мой проблемы
теперь вопрос....нормально написал?
И еще один....как подзаменить у юзера папку Мои документы, так чтобы он и не знал об этом, в смысле папка мои документы хранилась на сервере, ну или просто синхронизировалась с папку локальной?

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 16:25 11-02-2005
Alan Mon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообще-то по хорошему пишут сначала
net use f: /delete
а потом уже
net use f: \\Path
Это на тот случай, если диск F: уже замаплен на какой-то сетевой путь. Тогда вторая команда выдаст ошибку и не сработает.
А насчет папки "Мои документы" проще всего через групповые политики. "Конфигурация пользователя\Перенаправление папки". Хорошо еще включить "Конфигурация пользователя\Административные шаблоны\Рабочий стол\Запретить пользователям менять путь папки "Мои документы". Это все если есть домен.
Если домена нет, то через реестр HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 16:46 11-02-2005
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Option Explicit  
 
'Смена пароля с регистрацией факта смены в MSSQL-Server  
 
Const DomainName = "DOMAIN"  
Const SQLServerName = "SQL2k"  
Const SQLDBName = "AD"  
Const UserId = "Vasja"  
Const UserPassword = "password"  
Const LocalUser = "Administrator"  
Const LocalAdminPassword = "password"  
 
Dim WshNetwork  
Dim ComputerName  
Dim ConnectToSQL  
 
'возвращает True, если пароль менялся ранее  
Function IsChangePassword()  
    Set ConnectToSQL = CreateObject("ADODB.Connection")  
    ConnectToSQL.Open "Provider=SQLOLEDB.1;" & _  
"Password=" & UserPassword & ";" & _  
"Persist Security Info=True;" & _  
"User ID=" & UserId & ";" & _  
"Initial Catalog=" & SQLDBName & ";" & _  
"Data Source=" & SQLServerName  
     
    Dim cmd  
    Set cmd = CreateObject("ADODB.Command")  
    cmd.CommandText = "ChangePassword"  
    cmd.CommandType = 4 'adCmdStoredProc  
    Set cmd.ActiveConnection = ConnectToSQL  
 
    Dim prm  
    'adVarChar=200, adParamInput=1  
    Set prm = cmd.CreateParameter("@computer", 200, 1, 20)  
    cmd.Parameters.Append prm  
    prm.Value = ComputerName  
    'adBoolean=11, adParamOutput=2  
    Set prm = cmd.CreateParameter("@exists", 11, 2)  
    cmd.Parameters.Append prm  
    cmd.Execute  
 
    IsChangePassword = prm.Value  
 
End Function  
 
'Изменяет пароль первого пользователя в первой локальной группе  
'(локальный администратор)  
Sub ChangePassword()  
    Dim comp, grp, usr, objArgs  
    Set comp = Nothing  
    Set comp = GetObject("WinNT://" & ComputerName & ",computer")  
    comp.Filter = Array("Group")  
    Set usr = Nothing  
    For Each grp In comp  
Exit For  
    Next  
    For Each usr In grp.Members  
Exit For  
    Next  
    Set objArgs = WScript.Arguments  
    If objArgs.Count = 0 Then  
    usr.SetPassword LocalAdminPassword  
    Else  
usr.SetPassword objArgs(0)  
    End If  
    usr.SetInfo  
End Sub  
 
'точка начала выполнения сценария  
Set WshNetwork = CreateObject("WScript.Network")  
ComputerName = WshNetwork.ComputerName  
 
On Error Resume Next  
If IsChangePassword = False Then ChangePassword  
 
If Err.Number <> 0 Then  
    Dim cmd  
    Set cmd = CreateObject("ADODB.Command")  
    With cmd  
Set .ActiveConnection = ConnectToSQL  
.CommandText =  "INSERT INTO ErrTraccer (ComputerName, ErrNumber, Description) " & _  
"VALUES ('" & ComputerName & "'," & Err.Number & ",'" & Err.Description & "')"  
.Execute  
    End With  
End IF

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 08:13 14-02-2005
inew



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть сервер Windows 2000 Adv Server, есть клиенты Windows 2000 Prof, всё это в рабочей группе,  как организовать смену паролей так, чтоб не пришлось бегать к каждой клиентской тачке и менять локальный пароль.
В общем нужен скрипт меняющий пароли локальных пользователей.

Всего записей: 130 | Зарегистр. 07-05-2003 | Отправлено: 05:40 15-02-2005
   

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