Pull to refresh

Comments 11

Это не инвентаризация в её подлинном смысле. А что у вас имеется ввиду под понятием «зарегистрированный пользователь»? Кто сейчас вошел в систему или кто вообще хоть раз заходил? Ну и как вариант изначально ФИО пользователя машины можно забивать в поле описания компьютера. Даже скриптом в момент входа в систему.
В данном случае «Зарегестрированный пользователь» это пользователь закрепленный за данным рабочим местом(в AD). На счет скриптов, я не являюсь администратором домена и не могу ставить свои скрипты на рабочие места(А администраторам это не нужно, ибо задача одноразовая). Помимо ФИО может понадобиться еще и табельный номер, телефон, еще что-нибудь. В службе какталогов эта информация есть, а добавлять ее в описание аккаутна, обычно не нужно. А по поводу названия, действительно неудачно выбрал.
Есть тут минус, запрос к реестру выдаст всех заходивших на компьютер пользователей. Это и коллега, который один раз залогинился, и кто-нибудь из службы поддержки, настраивавший компьютер под своей учетной записью.
По поводу WMI — извлечение информации из WMI не подразумевает запуска какого либо скрипта на машине, должна лишь быть запущена служба и не закрыты брандмауэром порты.
Попробуйте в Powershell выполнить:
gwmi -comp <имя_компьютера> -class win32_share.
Если отработает — то думаю найденные вами решения с запросами к WMI можно было использовать.
Нет к сожалению не работает, говорит, что отказано в доступе.

Get-WmiObject : Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)) строка:1 знак:5 + gwmi <<<< -comp ***.***.***.*** -class win32_share + CategoryInfo : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
Вы правы, в реестре содержится запись последнего залогиневшегося пользователя. Но в данном случае мне повезло.
echo %date% %time% %computername% %username% >> \\server\share$\logon-log.txt
Можно добавить как run-script в какое-нибудь GPO и потом уже его смотреть.
Но вообще — желательно сразу планировать механизмы, которые бы позволяли видеть соответствие в любой момент не выполняя лишних действий. Например, использовать поле Managedby для объекта компьютера в AD.
Если бы у меня были права администратора домена, я бы возможно вообще не заморачивался, просто взял связку (пользователь-> рабочая станция) непосредственно из службы каталогов. Но я не администратор, а также в АД мне видно далеко не все. Задача была одноразовая, поэтому вводить подобный механизм ни кто не стал бы.
pstools — psloggedon.
Показывает залогиненного на конкретный пк пользователя — распарсить вывод не проблема.
Если это разовая задача.
Я в начале сказал, что не хотелось использовать сторонних инструментов, даже тех которые не нужно устанавливать. Софтовых вариантов множество можно найти или самому написать, но это лениво.
VBS как-то всё больше остается для аналитики excel'я или макросов для отчётов в word'e…
Что-то серьёзно-системное на нём писать при наличии powershell'а уже смысла нет, тем более, что почти всё уже написано до нас.
Но если Вы хотели что-то изучить для себя, и показать статью для таких же начинающих — это позитив, и я рад, что Вы это сделали. Успехов Вам.
К сожалению psloggedon требует прав администратора(прав администратора у меня нет), для получения профиля текущего пользователя на удаленном компьютере.
Судя по описанию на сайте, она берет данные из HKEY_USERS.
Sign up to leave a comment.

Articles