Я ИТ специалист или Жизнь ИТшника Это блог о моей работе, жизни и увлечениях! Решим ИТ проблемы вместе!

13Янв/119

Как узнать имя пользователя за компьютером?

Иногда необходимо узнать какой пользователь домена работает за компьютером, а иногда и наоборот необходимо узнать за какими компьютерами в домене работает пользователь (или просто получить список пользователей работающих на Пк в домене). Для этого дела у меня есть два небольших скрипта:

Скрипт № 1:  получение имени пользователя работающего на компьютере в домене

strComputer = "computername"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems
Wscript.Echo "UserName: " & objItem.UserName
Next

Этот скрипт выдаст логин с которым работает пользователь на указанном компьютере. Если нужен не только логин, но и DN , то можно скомбинировать его с примером из предыдущего поста:  Список пользователей в группе AD.

13Янв/111

Список пользователей в группе AD

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

On Error Resume Next

Set objGroup = GetObject ("LDAP://cn=X_Users,ou=Security - Groups,dc=blabla,dc=bla,dc=ru")
objGroup.GetInfo

arrMemberOf = objGroup.GetEx("member")

For Each strMember in arrMemberOf

Set objUser = GetObject("LDAP://" & strMember)
WScript.echo objUser.samaccountname & ";" & objUser.userPrincipalName &";"& objUser.distinguishedName

Next

Принцип работы очень простой. Копируете в текстовый файл, сохраняете с разрешением VBS, указываете функции GetObject необходимый DN  до нужной группы. Затем запускаете из командной строки:

cscript //nologo вашскрипт.vbs > users.csv

Ключ //nologo подавляет вывод в результаты команды служебных заголовков, а модификатор > переправляет результаты в текстовый файл.  Его потом можно открыть  Excel как структурированные данные с разделителем точка с запятой, и использовать как необходимо.

2Дек/100

Миграция сервера печати (окончание)

Не так давно я писал о том что  мне необходимо мигрировать сервер печати на новый сервер.  Сегодня эта работа была закончена я и могу поделиться своим опытом с окружающими.

Итак по порядку что было сделано:

  • Настроен новый сервер в доменном окружении
  • Используя программу Printer migrator были перенесены все принтеры с старого принтсервера
  • После того как было проверено что оба сервера функционируют нормально и печать на принтеры есть была осуществлена подмена  имен серверов.
21Окт/104

Список неактивных пользователей домена

Пожалуй каждый администратор домена сталкивается с так называемыми "мертвыми душами". Никакой мистики тут нет. Люди устраиваются на работу, увольняются, а отдел кадров обычно не спешит сообщать об этом системному администратору. Также бывает и с неактивными компьютерами. И со временем накапливается куча пользователей, давным давно не не работающих.  Мне понадобилось таких пользователей почистить и я накатал небольшой скрипт:

12Окт/101

Чтобы подключиться к этому сеансу удаленной консоли, нужно иметь права администратора на этом компьютере

Поймал очередной глюк терминального сервера, а точнее клиента.

Необходимо предоставить доступ человеку удаленному на пару тысяч километров. Учетку создали, права дали, проверяю локально все ништяк работает.

Отправляю человеку логин-пароль, у него возникает проблема при подключении

Чтобы подключиться к этому сеансу удаленной консоли, нужно иметь права администратора на этом компьютере

Чтобы подключиться к этому сеансу удаленной консоли, нужно иметь права администратора на этом компьютере

Полчаса ушло на локализацию проблемы. Ведь все работет и на моем и на соседнем компьюетре, никаких проблем, в логах сервера вижу успешный вход. Служба winlogon успешно аутентифицирует и дает доступ а потом раз и все...

Проблема крылась в мелочах. Человек использовал клиента из серверной поставки, и всегда администрировал свой сервер, а на этот у него самые ообычные права. Именно поэтому и обнаружилось что у него в свойстве ярлыка стоял   mstsc.exe /admin, еще бывает вариант mstsc /console.

Оба варианта принуждают клиента терминала подключаться не к сессии RDP  а к консоли, эмулируя физический доступ. Это разумеется требует администраторских прав.

Убираем все лишнее, запускаем только mstsc.exe  и все нормально работает!


8Окт/100

Подключение сетевых папок пользователю домена

Этот пост содержит азбучную истину, которую обычно  использует каждый администратор , однако при этом не знает каждый новичок. Речь пойдет о монтировании сетевых папок пользователям домена при запуске РМ.

17Сен/109

Лечим «Удаленный сеанс отключен из-за отсутствия доступных лицензий клиента сервера терминалов для этого компьютера»

В результате неизвестного глюка  с моего компьютера не получается подключиться к серверу терминалов Remote Desktop и я получаю вот такое вот сообщение: Удаленный сеанс отключен из-за отсутствия доступных лицензий клиента сервера терминалов для этого компьютера.

Нужно вылечить,  для этого, на компьютере с которого подключаемся, запускаем regedit.exe (Пуск -> Выполнить -> Regedit).

В реестре находим ветку
HKEY_LOCAL_MACHINE -> Software -> Microsoft -> MSLicensing
На это ветке нажимаем правой кнопкой и экспортируем в файл на всякий случай.
После того как у нас есть бекап удаляем всю эту ветку, для этого нажимаем на  MSLicensing правой кнопкой мыши выбираем в контекстном меню Удалить.

После этого ваш клиент терминала должен подключиться без всяких проблем.

26Июл/103

Скрипт — список неактивных компьютеров в домене

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

On Error Resume Next
DomainString=Inputbox("Введите имя домена","Проверка активных компьютеров","Имя домена")
if DomainString="" then
wscript.echo "Имя домена не введено или сценарий отменен."
wscript.quit
end if
numDays=InputBox("Введите число дней, определяющее порог неактивности" & "учетных записей","Проверка активных компьютеров","XX")
if numDays="" then
wscript.echo "Число дней не задано или сценарий отменен."
wscript.quit
end if
Set fs=WScript.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile("donefs.txt",2,True)
Set DomainObj = GetObject("WinNT://"&DomainString)
if err.number<>0 then
wscript.echo "Ошибка соединения с " & DomainString
wscript.quit
end if
DomainObj.Filter = Array("computer")
rem Wscript.echo "Учетные записи домена " & DomainString & " старше " & numDays & " дней."
For each Computer in DomainObj
Set Account = GetObject("WinNT://" & DomainString & "/" & Computer.Name &  "$")
RefreshTime = FormatNumber((Account.get("PasswordAge"))/86400,0)
If CInt(RefreshTime) >= CInt(numDays) Then
f.WriteLine  Computer.Name & " ; " &  RefreshTime & " дней."
End If
Next
set DomainObj=Nothing
set Shell=Nothing

Собственно скрипт очень простой, берет из AD выборку компьютеров и проверяет когда последний раз изменялся PasswordAge.  Если больше указанного количества дней то выводит в текстовый файлик.

Разумеется введенный параметр должен быть больше дефолтного значения или установленного GPO значения:  Обновление УЗ компьютера

Метки записи: , 3 Комментарии
15Май/102

Как выгнать (вывести) компьютер из домена

Мне часто попадается вопрос Как выгнать компьютер из домена? Очень просто!

Есть два пути, один для любителей командной строки и скриптов :

выполняем команду NETDOM.EXE REMOVE machinename /Domain:domain

Для работы необходимо иметь права Администраора домена ли оператора домена, команда работает с любого компьютера в домене, пациент должен быть в сети.

Ну а для обыденных случаев вполне пойдет и обычный старый добрый  рецепт:

Клик  правой кнопкой мыши на значке Мой компьютер - > Свойства - > Имя компьютера

заполняем рабочую группу и нажимаем ОК. Также необходимо быть администратором.

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

3Мар/106

Переименовываем компьютер в домене из консоли

active directoryИногда необходимо переименовать компьютер в домене AD. Как это сделать?

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

Самый правильный и удобный способ переименовать компьтер в домене, это использовать возможности предоставленные нам самим доменом.

Итак переименовываем компьютер:

Страница 1 из 212