Упрощаем жизнь администратору, ассоциируем имя пользователя и имя компьютера в автоматическом режиме в каталоге AD

Добрый день, хабр!
Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя. То есть мы знаем имя сотрудника, но какой у него компьютер, без понятия. И, зачастую, попытка заставить пользователя определить имя компьютера вызывает мучение. Они вместо этого называют имя пользователя, mail, номер телефона, все что угодно, только не имя компьютера. А попытка объяснить пользователю где находится информация о системе вызывает баттхерт сотрудника и лютую ненависть. Можно, конечно, было бы написать какую-нибудь утилитку, позволяющая отображать имя компьютера на рабочем столе или где-нибудь еще на видном месте, но для этого надо каждый раз объяснять где находится эта информация. Немного упрощает задачу, но не решает ее полностью. Тем более что я склоняюсь к тому, что пользователю и во все положено не знать имя компьютера, на котором он сидит. В результате было решено сделать определение имени компьютера современным, удобным, правильным и, главное, автоматическим.

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

Общий принцип


Скрипт, запущенный из под пользователя определяет имя компьютера, на котором он работает, и от своего имени текущего пользователя записывает значение атрибута в самом себе в каталоге AD. Далее администратор уже волен сам решать что делать с этим значением атрибута. Я в этой статье приведу пример PowerShell скриптов и пример добавления пункта контекстного меню в оснастку Active Directory Users and Computers (далее ADUC).

Создаем атрибут


Многие не шли далеко и не мудрили, используя общедоступные для записи, например параметр «Веб страница» пользователя по-умолчанию доступен для записи самим собой. Однако мне эта идея не понравилась, хотелось создать специализированный атрибут для пользователя, который не имел бы двойного назначения и не требовал компромисса. А то кто знает, как в будущем сложится ситуация и потребует использование этого атрибута, а он уже занят…
Итак, для того, чтобы создать новый атрибут в схеме нужно сначала добавить оснастку. На компьютере с установленным пакетом удаленного администрирования, либо на контроллере домена, нужно запустить с правами локального администратора regsvr32 schmmgmt.dll. Сложно сказать почему эта оснастка по-умолчанию не зарегистрирована, видимо чтобы по незнанию не напортачили. Но тем не менее мы ее можем добавить, зарегистрировав DLL. После этого открываем оснастку Схема Active Directory и идем в раздел Attributes. Создаем новый атрибут. Тут, конечно, я должен предупредить, что атрибуты это не место для экспериментов и создаются они один раз и навсегда, удалить атрибут или переименовать невозможно. Это предупреждение есть во всех местах, где имеет место добавление атрибута, но все же :) Для добавления нового атрибута также потребуются права Администратора схемы. Если ваш административный пользователь имеет права Администратор предприятия, то это больше, чем достаточно.
Для добавления нового атрибута потребуется ввести OID. Это уникальный идентификатор объекта. Почитать про него можно в гугле, углубляться не буду, но скажу что он должен быть уникальный. Пересечение OID недопустимо и если его вбить любым, то есть вероятность, что будут нерешаемые проблемы в будущем. OID обычно начинается с 1.2.840.113556 и далее циферки. Я особенно не заморачивался и т.к. третье число (840) это код страны, а четвертое это код компании (Microsoft), я ввел код несуществующей страны 800 и сгенерировал 2 случайных числа через точку. Список стран можно посмотреть здесь. На самом деле, по хорошему, в этом случае необходимо обратиться в ITU-T и запросить уникальный OID, но мне ответ так и не пришел и я не стал залезать в бутылку и создал на основе случайных чисел. Потом я нашел скрипт, который генерирует относительно уникальный идентификатор, но было уже поздно :))
image
В общем, с OID решили. Дальше нам нужно указать syntax атрибута. В моей конфигурации это Unicode String. Также, конечно, нужно имя атрибута. В этом примере я буду использовать имя LabelComputer, в рабочей конфигурации лучше придумать что-нибудь получше.
После того как мы создали атрибут, нам нужно его добавить в класс. Выбираем класс user и в закладе Attributes добавляем наш новый атрибут. Теперь пользователь с нужными правами будет иметь право записывать этот атрибут в пользователе. По-умолчанию эти правом владеет Account operator или выше. Но нас интересует ситуация, когда пользователь сам бы мог редактировать этот атрибут. Для подобных целей существует пользователь с именем SELF, который олицетворяем самого себя. Нам нужно дать права для всех пользователей пользователю SELF записывать атрибут LabelComputer. Т.к. наследование еще ни кто не отменял, переходим на столько высоко, на сколько это нужно и изменяем права. Я предлагаю изменить права на весь домен, для нас это будет dc=contoso,dc=com, входим в настройки безопасности объекта домен в оснастке ADUC. Входим в закладку разрешения и нажимаем кнопку Advanced. Добавляем права для пользователя SELF и разрешаем ему читать и записывать атрибут LabelComputer. Атрибут в списке, кстати, появляется не сразу после его создания. Должно пройти некоторое время от создания атрибута до того момента, как мы сможем видеть его в списке назначения прав и в свойствах атрибутов пользователя.
image

Маркировка


В итоге мы создали атрибут, права назначили. Переходим к рабочему этапу, нужно добавить имя компьютера в значение атрибута.
Для этого используется VBscript. Как показывает практика, Microsoft не пытается делать PowerShell заменой VBS. А жаль. Для таких задач VBS оказывается быстрее и универсальнее.
Скрипт, записывающий данные в текущего пользователя:
On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo")
Set objNetwork = CreateObject("WScript.Network")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
objUser.Put "LabelComputer", objNetwork.ComputerName
objUser.SetInfo

Скрипт прост и примитивен. Скрипт и модель впрочем, можно расширить, сохранять не только компьютер, а, например, и время для актуальности, но в данном примере я не буду касаться этого.
Скрипт с помощью групповой политики назначаем на запуск во время Logon. Но не только. Возможна ситуация, когда человек залогинен на двух компьютерах, хочется чтобы информация все равно была актуальна, даже в этом случае. Для этого добавляем выполнение скрипта в планировщик со срабатыванием по событию разблокировки компьютера.
image
В этом случае, даже если логин был выполнен на нескольких компьютерах, актуальным будет записан тот компьютер который был разблокирован последним. Есть только одно разочарование. Этот метод работает исключительно на Vista+ компьютерах. То есть в XP нельзя в планировщике поставить такой триггер. И к великому сожалению, VBS тоже не позволяет определить, заблокирован ли компьютер или нет. Иначе можно было бы запускать скрипт раз в 15 минут с проверкой заблокирован ли компьютер или нет. В VBS можно только по субъективным признакам определять, например, по записям в евент логе Security, но тогда, как минимум, потребуется дать обычному пользователю права на просмотр этого журнала. Это неудобно, плохо применимо да и вообще XP становится все меньше, эту группу компьютеров можно игнорировать, для них будет достаточно Logon скрипта.
Т.к. нам хочется помечать не каждый вход, а только тот, который локальный, нам нужно исключить запуск Logon скрипта на терминальных и других серверах, не относящихся к локальным компьютерам. Я этого достигал включением замыкании групповой политики в режиме слияние и применением объекта групповой политики к области персональных компьютеров, серверов, в которой, нет. Метод, соглашусь, достаточно плохой и растрачивающий ресурсы, лучше использовать замыкание групповой политики только тогда, когда это точно надо, а не для всех компьютеров. Но, возможно, это будет следующим этапом улучшения. Тем не менее, таким образом мы четко ограничиваем на каких именно компьютерах будет выполняться нужная нам групповая политики с Logon скриптом и настройками планировщика.

Пример PowerShell скрипта для сбора данных


Главная задача выполнена. Мы начинаем видеть, что в пользователях начинает появляться информация о текущем компьютере.
image
Теперь нам надо что-то с этими данными сделать. Например, сделать удобную табличку с тем, какие пользователи на каких компьютерах сидят. Или увидеть у каких пользователей нет значения в атрибуте, несмотря на недавний вход в систему, чтобы проследить, выполняются ли групповые политки в системе, например, либо в пользователе почему-то не хватает прав для записи значения атрибута в своего пользователя. Такое бывает, если у пользователя отключено наследование прав, к примеру.

Я написал 3 PowerShell скрипта, помогающих работе.

Поиск пользователей без значений

Import-Module ActiveDirectory
Get-ADObject -filter {(sAMAccountType -eq "805306368") -and (LabelComputer -notlike "*")} -Properties DisplayName,GivenName,SN,LabelComputer,cn,sAMAccountName,lastLogonTimestamp, OperatingSystem -SearchBase "OU=Пользователи сети,DC=contoso,dc=com" | Select-Object @{Expression={$_.DisplayName};Label="Отображаемое имя"},@{Expression={$_.sAMAccountName};Label="Логин"}, @{label="Последний вход";expression={[datetime]::FromFileTime($_.lastLogonTimestamp)}} | Sort-Object "Последний вход"| Format-Table -Autosize
Read-Host "Отсортировано по дате последнего входа по возрастанию. Для выхода нажмите любую клавишу..."


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

Все компьютеры с метками

Import-Module ActiveDirectory
Get-ADObject -filter {(sAMAccountType -eq "805306368") -and (LabelComputer -like "*")} -Properties DisplayName,GivenName,SN,LabelComputer,cn,sAMAccountName,lastLogon -SearchBase "OU=Пользователи сети,DC=contoso,dc=com" | Select-Object @{Expression={$_.DisplayName};Label="Отображаемое имя"},@{Expression={$_.sAMAccountName};Label="Логин"}, @{Expression={$_."LabelComputer"};Label="Последний компьютер"},@{label="Последний вход";expression={[datetime]::FromFileTime($_.lastLogon)}} | Sort-Object "Последний вход" | Format-Table -Autosize
Read-Host "Отсортировано по последней дате входа по возрастанию. Нажмите любую кнопку для выхода..."

Этот скрипт похож на предыдущий, но показывает список помеченных пользователей. Позволяет прикинуть относительное количество помеченных пользователей.

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

Import-Module ActiveDirectory
$exit = 0
do
{
    Write-Host "Поиск по атрибутам пользователя: Имя, Фамилия, Отображаемое имя, Логин, Имя компьютера. Выход при пустом поле поиска."
    $us = Read-Host -Prompt "Введите строку для поиска"
    $find = ""
    $find += '*' + $us + '*'
    write-host = $find
    Get-ADObject -filter {(sAMAccountType -eq "805306368") -and ((GivenName -like $find ) -or (sn -like $find ) -or (cn -like $find ) -or (DisplayName -like $find ) -or (LabelComputer -like $find ) -or (sAMAccountName -like $find ))} -Properties DisplayName,GivenName,SN,LabelComputer,cn,sAMAccountName | Select-Object @{Expression={$_.DisplayName};Label="Отображаемое имя"},@{Expression={$_.sAMAccountName};Label="Логин"},@{Expression={$_."LabelComputer"};Label="Последний компьютер"} | Format-Table -Autosize
} While ($us -ne "")


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

По всем скриптам, вывод можно делать не в Format-Table, а в Export-CSV и создавать сразу CSV файл и анализировать его уже в каком-нибудь табличном редакторе.
{{картинка с Леонардо Ди Каприо из фильма Начало}}

Добавление пункта в оснастку


Скрипты это красиво, но хочется большей автоматизации. И захотелось, чтобы при нажатии в контекстном меню происходило автоматическое подключение к компьютеру программой для удаленного управления DameWare. Безусловно, можно запускать любую удобную программу, можно таким образом удаленно перезагружать, например, машину, если надо. Тем не менее рассмотрим пример с DameWare.
Настройки контекстного меню оснастки ADUC находятся не локально, как может сначала показаться, а, опять же, в каталоге AD. Для того, чтобы добавить новый пункт, необходимо воспользоваться редактором конфигурации AD, утилитой ADSI Edit. Необходимо подключиться к конфигурации AD.
image

Требуемый атрибут для изменения находится в объекте
CN=user-Display,CN=419,CN=DisplaySpecifiers,CN=Configuration,DC=contoso,DC=com. При том CN=419 это, как не сложно догадаться, язык. Если нужно поменять параметр для англоязычной оснастки ADUC, то CN=419 нужно поменять на CN=409.
image
Добавляем в adminContextMenu пункт. Первое это, на сколько я понимаю, сортировочный номер, второе это непосредственно имя и третье это, собственно, адрес объекта для выполнения. Параметры разделяются запятыми. После перезапуска ADUC для объектов user в контекстном меню появится новосозданный пункт. Скрипт будет запускаться от прав пользователя, от имени которого оснастка и была запущена. Всего при запуске программы из контекстного меню ADUC скрипту или программе передается 2 значения в параметрах, это DN объекти и типа объекта. Нам интересен только первый параметр, по которому мы находим имя пользователя в скрипте.
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell")
set fs=createobject("Scripting.FileSystemObject")
Dim CompName
Dim RunCMD
Dim FilePath
Set objAD = GetObject(Wscript.arguments.Item(0))
CompName = objAD.Get ("LabelComputer")
If CompName = "" Then WScript.Echo "Имя компьютера отсутствует для пользователя"
If CompName = "" Then WScript.quit
If MsgBox ("Подключиться к компьютеру " & CompName & "?",vbOKCancel+vbQuestion,"Серьезно?") = vbCancel Then WScript.quit
If fs.FileExists ("C:\Program Files\DameWare\DameWare Mini Remote Control 7.5\DWRCC.exe") Then FilePath = """C:\Program Files\DameWare\DameWare Mini Remote Control 7.5\DWRCC.exe"""

RunCMD = FilePath &" -c: -h: -x: -m:" & CompName & " -u:LocalAdmin -p:1072206713 -d:contoso"
RetCode = WshShell.Run (RunCMD,5)

Этот скрипт запускает программу Damware с учетными данными contoso\LocalAdmin. Этот пользователь заранее был добавлен в список локальных администраторов на компьютерах пользователей. По сути, параметры -u:, -p: и -d: можно исключить и тогда DameWare будет запускаться от имени текущего пользователя. Если у вас есть права локального администратора на компьютерах пользователя, то так будет проще.

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

Несмотря на то, что никакие уникальные знания здесь не описаны, надеюсь, что как минимум, примеры скриптов помогут начинающим админам в понимании этой области :) Все это можно продолжать улучшать, добавить новые атрибуты, добавлять метку не только пользователю, но и компьютеру добавлять Timestamp, сохранять последние компьютеры и т.п. В каждой компании могут найтись свои потребности.
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 48

    0
    Как-то давно сделал сборку миранды для жаббера, прямо из которой можно было подключаться по РДП, удаленному помощнику, VNC, Radmin, к чему угодно, по сути. Т.е. прямо в интерфейсе диалога общения с юзером (или в ростере) были кнопки для запуска приложений с нужными параметрами. Имя компа бралось из «ресурса». Есть даже статья в инете. Ссылку давать не буду, т.к. однозначно ляжет.

    Цитата из статьи:
    Возможности:
    Подключение Radmin (+ просмотр отдельно ), UltraVNC, TightVNC, Remote Desktop, compmgmt.msc (оснастка «управление компьютером»), открытие локальных дисков в Uneal Commander. Нужный вам функционал легко добавляется по аналогии.
    Мультидоменность. Указав заранее какие группы к какому домену принадлежат (см. ниже) вы можете подлючаться к удаленным компьютерам в другой подсети. При условии, конечно, что у вас соответствующим образом настроена маршрутизация и адекватно работает DNS.
    Внешняя аутентификация. Миранда лишь автоматически генерирует строку вызова приложения. Аутентификация и авторизация происходит средствами самого приложения, что исключает несанкционированный доступ через админ-версию (этот пункт как бы сам собой разумеется ) Хотя вы можете включить логин/пароль в ключи командной строки некоторых приложений.
      0
      У нас чатик не используется, но о подобных решениях тоже слышал.
        0
        У меня целая чреда решений была, на данную тему:
        1. Ручное. В ту пору использовались удаленные профили на ФСе и опытном путем было выяснено, что быстрее получается посмотреть в РДП ФСа активную сессию от пользователя, отметив для себя имя машины с которой он соединен, нежели объяснять пользователю где он может это посмотреть сам. чтобы сообщить мне. Минус такого подхода очевиден — он ручной, плюс — если пользователям разрешено работать под своим логином с разных машин — мы 100% идентифицируем на какой машине он работает в данный момент времени.
        2. Запретили пользователям логиниться со всех подряд машин, соответственно у них появилось значение атрибута Login To — для «напоминания» себе с какой машины работает пользователь, стало достаточно просто подглядеть данный атрибут через оснастку. Минус понятен — при заведении учетки пользователя, либо переезде пользователя на другое рабочее место — надо ручками изменить ему данный атрибут.
        3. Внедрили в работу SCCM — описания излишни, очень удобный сервис от МС. Минус — не подходит для использования в смешанных сетях.

        Статью прочитал с огромным интересом, спасибо.
          0
          CM и во все из пушки по воробьям) То есть продукт, конечно, хороший, но определение пользователя скорее всего лишь небольшое дополнение.
            0
            Он решил нам массу вопросов, а определение машины пользователя, действительно лишь бонус =)
        0
        Спасибо за статью.
        Сразу рекомендация: если собираетесь искать по значению созданного атрибута — поставьте в его свойствах флаг «Индексировать атрибут» (на вашем скриншоте он не стоит)
        Было очень интересно прочитать про альтернативное решение.
        Я, в свою очередь, когда столкнулся с необходимостью поиска компьютера пользователя — написал на C# службу, подписывающуюся на события входа в систему на всех контроллерах и сохраняющую эту информацию в SQL БД.
          0
          Да, на скриншоте нет. В рабочей конфигурации есть.
          Регистрация событий входа тоже интересно. Хотя, мне кажется, имеет свои существенные недостатки.
            0
            Ну — у меня задача стояла шире — нужно было получить физическое расположение пользователя — поэтому в той же БД ведётся журнал размещения сетевого оборудования и кроссовки кабельных систем. По данным из cisco + события входа + журнал кроссировки определяется из какого помещения, через какой порт оборудования пользователь осуществлял вход в систему в последний раз.
              0
              хм. Надо будет тоже подумать о методах обнаружения физического расположение пользователя :)
            0
            А не могли бы вы поделиться своим примером на C#? Я начинающий программист и как раз решаю подобную задачу.
            +4
            Изобретатели велосипедов снова изобрели велосипед без колес! :)
            Что может быть приятнее чем 8000 запросов на обновление атрибута каждое утро?

            Сможете сделать скрипт, который выберет такую информацию из журнала безопасности контроллеров домена с временем входа и выхода?
              0
              или вообще пусть в базу записывает, зачем AD использовать для хранения информации :)
                0
                А что, 8000 это много?
                База AD довольно эффективна. А выборка из журнала безопасности это минутное дело? К тому же там свои грабли.
                Если уж будет 8000 каждое утро, я лучше, как предложили ниже, действительно буду писать в отдельную БД.
                  +1
                  Это _не_ нормально.

                  Да, у велосипеда есть много вариантов.
                  Я вам расскажу про довольно таки старинный велосипед, изобретенный еще в каменном веке, эпохе NT4.

                  logon.cmd
                  echo %date%-%time% %username%-%computername% >>\\SERVER01\Share\logonstat.txt

                  Примерно так.

                  Если бы был нормальный способ сопоставления пользователя и ПК — Microsoft давно бы это уже сделала, в промежутке между покупкой Skype и Nokia.

                  Способ записи имени ПК в AD при входе состоит только из недостатков.
                  — Что если компьютера два? Вы уже сами выше рассмотрели что это доставит интересных эффектов.
                  — Что если я не входил в сеть перед разблокировкой экрана, а подключил ноутбук к сети после входа в ОС?
                  — А когда я вышел из машины? А если она перед этим просто заснула?

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

                  В общем задача эта _нормально_ и универсально не решается, и всегда придется мириться с каким-то компромиссом. Не надежно.

                  Даже вариант с унылым bginfo.exe кажется не таким унылым (если сотрудник умеет читать).
                    0
                    Я соглашусь, что для каждой компании есть свои методы решения. Определенно, в компании со 100 тысячами сотрудников, мой способ неприемлем и надо искать другие методы. Но в компаниях среднего размера, с количеством сотрудников до 1000 я бы не считал этот метод определенно плохим.

                    По поводу ваших вопросов, не сказал бы что это большие проблемы.
                    Что есть компьютеров два? Разблокировка экрана. Кто последний тот и комп. Не думаю, что найдется сотрудник, который специально разблокирует компьютер и метнется к предыдущему, пока он не заблокировался.
                    Что если не входили в сеть? Если в компании бы это встречалось, я бы понял проблему, в нашей такая ситуация исключена. Хотя решение этой ситуации у меня есть в голове, только оно не требуется.
                    Если вышел из машины? Ну выходи, вряд ли пользователь будет звонить с проблемой с выключенным компьютером. Я намеренно не стал делать механизм очищения атрибута при выходе из системы т.к. не смог объяснить для себя для чего это нужно. Ну будет устаревшая информация, в чем проблема?

                    Я бы, кстати, с удовольствием послушал какие бывают еще ситуации. Можно теоретически предположить тучу уникальных случаев, вплоть до того, что на компьютере отказываются запускаться VB скрипты, но подобные вещи я бы отнес к исключительным, которые можно понять и простить. А вот смоделировать реальные ситуации было бы интересно. Я попытался в голове прогнать все что может случиться и отнес либо к незначительным проблемам, либо решил их, например с помощью разблокировки.
                    С компромиссом придется мириться, согласен, но в ИТ вообще все невозможно считать надежным на 100%. И средства, затраченные на абсолютную надежность могут быть неоправданно большими. Я лучше потерплю 5% ошибочных определений компьютера в моем случае, чем вообще буду без этой системы.
                      0
                      К сожалению (или к счастью) некоторые кампании из 1000 сотрудников имеют тенденцию вырастать до 100000 сотрудников, а «велосипеды» остаются старые…
                        0
                        Согласитесь, что не совсем рационально в компании из 10 человек внедрять корпоративные решения только потому что у компании есть амбиции?
                          0
                          сотрудников до 1000

                          в компании из 10 человек

                          Вы уж определитесь с размером компании ;)
                          И никто не призывает внедрять «корпоративные» решения (например использовать в качестве БД Oracle) — речь идёт о применении концептуально «правильных» решений (например если у Вас маленькая компания — возьмите sqlite — всегда сможете заменить на oracle с минимумом доработок — логика работы не изменится.)
                            0
                            Я не про оракл, а про то что в какой-то момент ексель, например, удобнее специализированной системы. До определенного момента. Также и здесь, я считаю, что если компания еще не реально большая, можно довольствоваться и такими методами, и вряд ли стоит их не использовать только потому что эта компания может войти в 1%, которых разрастется до стотысячных размеров.
                0
                Очень круто, спасибо :)
                  0
                  А зачем было создавать отдельный атрибут в схеме? Есть готовое поле userWorkstations.


                  К тому же, с помощью групповых политик можно разрешить пользователям логиниться только на своих компьютерах.
                    +1
                    Вообще-то userWorkstations для другого используется. У меня не было цели ограничивать никому доступ, была цель только попытка определить текущий компьютер пользователя.
                      –1
                      Если не применять политику, Вы и не ограничиваете, просто есть такая возможность, а так можно хранить значение текущего компьютера в существующем поле.
                        0
                        Ну… вообще-то userWorkstations как-раз для того и сделано. В этом поле прописываются компьютеры, которым разрешен вход пользователю.
                        Новый атрибут я для того и сделал, что бы не напарываться на случаи, когда это делать бы не стоило. Потом исправлять свои ошибки куда сложнее, чем сразу попытаться предусмотреть их.
                        0
                        Я бы Вам крайне не рекомендовал использовать не по назначению атрибуты. Потом такой сюрприз получается…
                    0
                    Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя.
                    Да, была, а потом мы во время инвентаризации составили план офисных помещений, с указанием какой компьютер в каком кабинете стоит, какое имеет имя, кто за ним сидит. И далее, найдя на плане, где сидит сотрудник, можно узнать имя компьютера.
                      0
                      Прекрасно, вот только такой план имеет тенденцию быстро устаревать :(
                        0
                        Да не особо. Достаточно своевременно вносить изменения (переезд сотрудника на другое место, увольнение сотрудника, выход нового сотрудника нм есто старого и т.д.) и все будет в порядке. Поправить план — 2-3 минуты. И ничего не устаревает
                        0
                        Это, конечно, хорошо, когда этот план есть. Но в работе все что может быть автоматизировано, должно быть автоматизировано. В какой-то момент кому-то будет лень внести изменение. А потом изменение не будет внесено потому, что план будет казаться все равно не актуальным. Да и есть в компании 500 рабочих мест, стоит предполагать что ручная запись работать не будет. А если рабочие места еще и географически распределены?
                        0
                        Подумайте над следующим:
                        У Вас в скрипте подключения к компьютеру для удалённого управления явно заданы учетные данные.
                        Что запустить консоль ADUC у себя на компьютере не надо быть администратором домена.
                        Т.е. у Вас на предприятии любой пользователь домена, запустивший у себя ADUC, получит возможность удалённого управления другими компьютерами!?
                          0
                          Про скрипт я также написал, что учетные данные можно не вписывать. Похоже я не написал об этом в статье, но точно собирался, о том что скрипт стоит держать в доступном только ИТ отделу месте. В любом случае это не копирка нашего использования, также это не четкая инструкция к выполнению и корректируется каждым администратором в угоду своих требований к безопасности. Уверен, что по политике безопасности даже имя компьютера в атрибутах пользователя будет являться брешью и будет требоваться запрет на чтение. Так что мое дело привести пример, на основе которого можно сделать что-то свое и, скорее всего, лучше.
                          0
                          Согласен bginfo Решает проблему.
                          В телефоне также забил Фамилия и имя ПК.

                          Плюс наклеил наклейки на мониторы. (после «инвентаризации» некоторые стали говорить номер системника или монитора)

                          Главное не давать лишних букв.
                          Ибо народ порой будет их опускать. Лучше цифры. Только цифры. Хотя префикс обычно вводят для облегчения поиска на деле он только затрудняет поиск.

                          Кстати в комментариях к пк указываю фамилию и телефон в DameWare это очень помогает можно сортировку сделать по фамилии и телефон сразу видно.
                            0
                            У нас как-то тоже остро стоял вопрос определения имени компьютера пользователя. Поначалу старались имя компьютера делать таким же, как и логин пользователя, но бывало так, что либо у пользователя логин какой-то заковырчатый и набирать его было проблематично, либо бывало, что сотрудники за одним и тем же компьютером менялись.
                            В итоге мы не стали привязывать имена компьютеров к логинам, а стали привязывать к номеру телефона, т.е. если пользователь звонит с телефона 1234, то имя компьютера w1234.
                            Да, это не отменяет путаницы, когда пользователь один, компьютеров два, телефонных аппаратов два, а номер один, но такие пользователи уже обучены называть правильное или возможное имя компьютера.
                              0
                              Да, это частый метод. Этот метод имеет минус в том, что имя компьютера админам со временем лень менять.
                                0
                                так а зачем его менять, если телефонный аппарат мы как бы жестко привязываем к компьютеру
                                  0
                                  Например, при переезде компьютера. Не, в целом то тоже рабочий вариант, но лично мне не нравится идея переименования компьютеров, хочется что бы компьютеры имели независимые имена. Да и к тому же у нас нет определения номера телефона, а спрашивать каждый раз номер тоже не дело :)
                                    0
                                    Переименовывать пришлось один раз всех, новые компы называем уже по номеру телефона.
                                    Когда обращается юзер, то его номер телефона всегда видно:
                                    1. По почте — в подписи или в профиле юзера;
                                    2. По джабберу — в профиле
                                    3. По телефону — определитель номера.
                                  0
                                  Ага, например админам в call центре, операторов так на 500, где у тебя сотрудники могут мигрировать по залам в зависимости от проектов и нагрузки, например. Тогда проще таки привязать имя пк и номер телефона — имя телефона = название пк.
                                  0
                                  Не, это ужас получается. Имя компьютера должно задаваться один раз при вводе его в строй, и до самой смерти. А тут оно привязано к телефону получается. Вот сменился номер телефона — и комп перезаводить?
                                    0
                                    ну обычно номер телефона просто так не меняется, если пользователь переезжает, к примеру, то он переезжает с компьютером и своим номером телефона. Если уж как-то получилось, что номер телефона все же сменился, то компьютер переименовать придется — это 1 команда и 1 перезагрузка.
                                      0
                                      В разных компаниях применимы разные модели. Привязка к номеру телефона тоже имеет место быть. Но бывают случаи, когда телефон один на 2 компа (особенно что касается посменной работы), могут использоваться радиотрубки и другие случаи. Но если в компании всегда 100% один телефон, одно рабочее место и план телефонии утвержден и никогда не планируется меняться, то это тоже выход. У нас, например, с трудом можно привязать к номеру телефона.
                                        0
                                        согласен, у нас тоже одно время телефонов было на порядок меньше чем компьютеров, но со временем решили всех обеспечить индивидуальным аппаратом и такая модель именования стала возможной
                                    0
                                    Я вот думаю нафиг сменить имена пк. Ибо сейчас в них чехарда и имя ПК однозначно ни о чем не говорит.
                                    Хотя некоторые не знают и СВОЙ рабочий номер :)

                                    Мне кажется стоит делать так, чтобы следующий админ после тебя не говорил «Б** ну и ****!»
                                    А: «Блин как все удобно и понятно»

                                    Предлагаю повторно обсудить имена серверов.
                                    Я думаю многие встречались с именами Server или Server1.

                                    Нет понятно, что Россия и на 1 сервере очень часто крутится все что можно.
                                    И как быть в таких случаях.

                                    Как вариант на 1 и тот же сервер делать псевдонимы.
                                    Так если там и DC И почта и DNS. То и сделать записи такие же. А потом будет чуть-чуть полегче разносить роли на разные сервера. Или не легче?
                                      0
                                      Тут нет какого-то единого правила. Надо также понимать для чего все это делается. Если в компании пара серверов и 5 компьютеров, то вполне допустимо назвать сервера каким-нибудь красивым именем, а компьютеры по фамилии сотрудника. Если компьютеров много, то, возможно, потребуется учитывать много разных параметров, география, назначение, ОС, уровень подсистемы, вид железа и т.п, что именно должно быть в имени решается в каждой компании по-своему.
                                      Я пытаюсь разделить наименования серверов исходя из географии, назначения и номера и приделываю cname, если к серверу подключаются обычные смертные, что бы для них название звучал как-нибудь красиво.
                                      0
                                      Спасибо за статью, реализовал!
                                        0
                                        Всегда пожалуйста) Если будут вопросы — обращайтесь.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое