Централизованно меняем пароли локального системного администратора::Журнал СА 6.2006
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9926
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8136
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8240
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5219
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5902
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Централизованно меняем пароли локального системного администратора

Архив номеров / 2006 / Выпуск №6 (43) / Централизованно меняем пароли локального системного администратора

Рубрика: Администрирование /  Продукты и решения   | Дополнительные материалы

Иван Коробко

Централизованно меняем пароли локального системного администратора

Регулярная смена паролей локальных системных администраторов – необходимое мероприятие, обеспечивающие безопасность хранения данных в сети. Автоматизировав этот процесс, вы значительно снизит затраты на администрирование.

Специалисты системной поддержки, как правило, не обладают правами системного администратора. Для установки программного обеспечения они используют пароль локального системного администратора. Рекомендуется максимально ограничить права пользователям, поскольку установка программного обеспечения, подключение новых физических устройств, например Flash Card, несет в себе потенциальную опасность: может произойти утечка важной информации, что не допустимо. Таким образом, регулярная смена пароля очень важна. Поскольку в сети есть русско- и англоязычные версии операционных систем, то стандартные учетные записи и группы администраторов могут записываться по-разному, согласитесь, это очень неудобно. Достичь универсальности имени локальной учетной записи администратора и его пароля можно с помощью скрипта. Для его создания используем VBScript.

Режимы работы сценария

Создаваемый сценарий будет обладать следующими возможностями:

  • Поддерживать работу в нескольких режимах: для конкретной машины, для членов группы в AD или для всех рабочих станций в сети.
  • Унифицировать имя системного администратора, переименовывая учетную запись, например, из «Администратор» в «Administrator».
  • По окончанию работы сценария формировать файл отчета.

Мультирежимность скрипта

Поддержка нескольких режимов работы реализована с помощью параметров запуска командной строки. Договоримся, что запуск сценария, изменяющего имя администратора на указанном компьютере, осуществляется с помощью параметра «pc», для компьютеров, перечисленных в группе, хранящейся в AD, – «group», а для всех компьютеров в домене – «-domain». При запуске скрипта во всех остальных случаях будет выводиться справка.

Таблица 1. Режимы работы сценария

Аргумент

Значение переменной MODE

Описание режима

Mode=0

Вывод справки

-рс

Mode=3

Изменение на локальном компьютере

-group

Mode=2

Изменение у группы компьютеров

-domain

Mode=1

Изменение на всех компьютерах домена

Чтение аргументов осуществляется с помощью объекта Wscript.Arguments, их количество определяется с помощью команды Wscript.Arguments.Count. В зависимости от полученного аргумента запускается тот или иной режим работы сценария (см. таблицу 1):

Set objArgs=Wscript.Arguments 

If Wscript.Arguments.Count=1 Then

    If strcomp(ucase(objArgs(0)),UCase("-Domain"))=0 Then

           mode=1

    End If

    If strcomp(ucase(objArgs(0)),UCase("-Group"))=0 Then

           mode=2

    End If

    If strcomp(ucase(objArgs(0)),UCase("-PC"))=0 Then

           mode=3

    End If

Else

    mode=0

End If

Вывод справки

Этот режим, как и все остальные, реализован с помощью инструкции Select… Case и представляет собой вывод текстового сообщения на экран:

Select Case mode

Case 0

txt="ТЕКСТ СПРАВКИ"

WScript.Echo txt

Case 1

End Select

Переименование учетных записей

Поскольку речь идет о локальных учетных записях пользователя и группы, то использовать для этих целей протокол LDAP нельзя. Необходимо применять хорошо известный еще со времен Windows NT 4 протокол WinNT. Все три оставшихся режима выполняют одну и ту же операцию: проверяют на правильность имя группы и пользователя, в случае ошибки переименовывают в правильное и задают новый пароль. Как видно – это общий фрагмент, который рекомендуется внести в функцию, её входным параметром будет имя локального компьютера. Функция состоит из 3 частей:

  • верификация и в случае необходимости изменение имени пользователя;
  • верификация и в случае необходимости изменение имени группы;
  • присвоение учетной записи «administrator» нового пароля.

Верификация и изменение имени пользователя

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

    ' Определение списка локальных пользователей

    ' на компьютере

    Set obj_user= getobject("WinNT://" & pcname)

        obj_user.filter = Array("user")

           For Each user in obj_user

                 user_name= user_name +cstr(user.Name)

                        Next

    ' Переименование русского (*)Администратор(*) в латинское

           If StrComp (UCase(user_name), UCase("Администратор"))=0 Then

Set obj_user2= getobject("WinNT://" & pcname&"/Администратор,User")

Set obj_user3= getobject("WinNT://" & pcname)

Set q=obj_user3.movehere(obj_user2.adspath,"Administrator")

Set obj_user2 = Nothing

Set obj_user3 = Nothing

End If

Переименование группы осуществляется аналогичным способом. Полный текст сценария смотрите на сайте журнала www.samag.ru, в разделе «Исходный код». Замечание: для успешной работы скрипт должен быть запущен от имени администратора сети. Задание нового пароля локального пользователя реализовано с помощью функции setpassword(), параметром которой является новый пароль:

Set obj_user4= getobject("WinNT://" & pcname&"/Administrator,User")

Call obj_user4.setpassword(PWD)

Set obj_user4 = Nothing

Изменяем пароль на локальном компьютере

Ранее говорилось, что смена пароля локального системного администратора выполняется при запуске скрипта с аргументом «-pc». При этом значение переменной mode – 3. При запуске в этом режиме необходимо задать два параметра: имя рабочей станции и новый пароль. Лучше всего это сделать с помощью диалогового окна, вызываемого с помощью InputBox().

После того как исходные параметры заданы, необходимо выполнить обращение к функции, которая изменит пароль, передавать ей в качестве параметра имя компьютера. Значение переменной, в которой содержится новый пароль, не имеет смысла передавать как параметр функции. Рекомендуется объявить эту переменную как глобальную:

Dim PWD

PWD = "987654321"

Select Case mode

Case 3

PWD=CStr(inputbox("Введите новый пароль локального администратора",,PWD))

PCNAME = "1230PC"

PCNAME=CStr(inputbox("Введите имя рабочей станции",,PCNAME))

    ' вызов функции изменения имен и назначения нового пароля

    make pcname

End Select

Изменяем пароль на группе компьютеров

Для смены пароля на компьютерах, входящих в группу безопасности, требуется создать группу в Active Directory и включить в нее учетные записи компьютеров, на которых необходимо сменить локальный пароль (см. рис. 1). Доступ к AD в данной ситуации можно осуществлять с помощью провайдеров LDAP и WINNT. Для простоты воспользуемся последним из них.

Запрашиваемые параметры скрипта в данном режиме – имя группы и новый пароль.

Рисунок 1. Члены группы безопасности, обрабатываемые скриптом

Рисунок 1. Члены группы безопасности, обрабатываемые скриптом

Чтобы получить доступ к AD, необходимо знать имя домена. Для протокола WINNT имя домена должно быть представлено в сокращенном варианте, например SPD. Получить имя домена в сокращенном виде можно несколькими способами. Один из них – использование стандартной библиотеки ADSystemInfo:

Dim PWD

PWD = "987654321"

Select Case mode

Case 2

pwd=CStr(inputbox("Введите новый пароль локального администратора",,PWD))

GROUPNAME = "PC$_group"

GROUPNAME=CStr(inputbox("Введите имя группы, включая префикс",,GROUPNAME))

 Set objSysInfo = CreateObject("ADSystemInfo")

 domain=cstr(objSysInfo.DomainShortName)

                  Set obj_group= getobject("WinNT://" & domain &"/"&GROUPNAME)

                  For Each pc in obj_group.members

                               p=cstr(pc.name)

                               pcname=Left(p,Len(p)-1)

                               make pcname

                        Next

                 Set obj_group= Nothing

End Select

Изменяем пароль на всех компьютерах в домене

Для изменения пароля локального администратора на всех компьютерах домена необходимо определить его короткое имя:

Set objSysInfo = CreateObject("ADSystemInfo")

domain=cstr(objSysInfo.DomainShortName)

Затем получить поочередно доступ ко всем компьютерам домена и последовательно вызывать функцию make с изменяющимся значением параметра:

Case 1

    Set obj_comp = getobject("WinNT://" & domain)

    obj_comp.filter = Array("Computer")

        For Each Computer in obj_comp

    pcname=cstr(Computer.Name)

                        make pcname

       Next

    Set obj_comp= Nothing

Формируем отчет

Отчет может представлять собой какой-либо текстовый файл, содержащий информацию о выполненных скриптом действиях. Рекомендуется сделать файл отчета в формате HTML и отображать его после завершения работы программы.

Во время работы скрипта следует накапливать информацию в переменной, затем обрабатывать ее с помощью функции, которая выводила бы членов группы «Administrators». Если такой группы нет, то делается соответствующая пометка в файле. Отсутствие группы говорит о том, что компьютер недоступен (см. рис. 2): он выключен или на нем настроен firewall.

Рисунок 2. Пример файла отчета

Рисунок 2. Пример файла отчета

Запись данных файл осуществляется с помощью объекта FSO:

Set FSO=CreateObject("Scripting.FileSystemObject")

    Set MyFile1 = fso.CreateTextFile("c:\"+report+".htm", True, TRUE)

    MyFile1.WriteLine(data)

    MyFile1.Close

Когда сценарий завершит работу, отобразите с помощью созданной функции на экране созданный HTML-файл. Управление веб-страницами осуществляется с помощью объекта InternetExplorer.Application. Доступ к объекту из VBScript также осуществляется с помощью функции CreateObject().

Path=c:\report.htm

set oIE=Wscript.CreateObject("InternetExplorer.Application")

With oIE

    .Left=100

    .Top=100

    .Height=400

    .Width=400

    .MenuBar=0

    .Toolbar=0

    .Statusbar=0

    .Resizable=1

End With

oIE.Navigate Path

oIE.Visible=1

Созданный сценарий может быть запущен с любой машины с привилегиями администратора.

Надеюсь, что этот простой, но мощный скрипт поможет в вашей работе.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru