Главная

Saturday, 12 September 2020

Утилита BGinfo - помощник администратора.

Всем привет! 

Суметь выудить у пользователя нужную информацию по его проблеме непросто. Сегодня я вам подскажу как улучшить взаимодействие между пользователем и специалистом технической поддержки или системным администратором. Самое ценное для нас это знать где эта проблема обитает, т.е. на каком хосте. Да, можно начать с ФИО пользователя которое он часто не сообщает, далее пройтись в AD, там найти его учетку сопоставить с IP-адресом и т.п. Долго! Много движений мышкой, а рука может быть занятой трубкой телефона, пользователи ведь так любят чтобы  с ними говорили голосом...

Решение есть - популярная утилита BGinfo.

BGInfo - это маленькая утилита входящая в состав всем известного пакета Sysinternals от Марка Русиновича. Как вы поняли в ее задачи входит отображение на рабочем столе, некой полезной системной информации.

Сколько раз вы заходя в систему на своем рабочем компьютере получали ситуацию, что вам нужно было щелкнуть несколько диагностических окон, чтобы раскрыть его DNS имя, IP-адрес или версию операционной системы? Если таких компьютеров за сотню то вам нужен BGInfo. Он автоматически отображает соответствующую информацию о компьютере Windows на фоне рабочего стола, такую как имя компьютера, IP-адрес, версия пакета обновления, размер дисков, любые другие WMI данные и т. д. Вы можете редактировать любое поле, шрифт и цвета фона, можете поместить его в папку автозагрузки, чтобы он запускал каждую загрузку, или даже настроить его для отображения в качестве фона для экрана входа в систему. Поскольку BGInfo просто записывает новое настольное растровое изображение и завершает работу, вам не нужно беспокоиться о том, что он потребляет системные ресурсы или мешает другим приложениям.

Думаю достаточно рекламы. Как ее внедрить в систему показано здесь и и здесь.

Остановлюсь на рабочих моментах. Итак, нет никакой небходимости копировать утилиту на каждый ПК на фирме. Достаточно положить в Logon пользователя скрипт ее запуска с контроллера домена. Вот такой:

//dc01.forza.com/NETLOGON/BGInfo/Bginfo.exe" "//dc01.forza.com/NETLOGON/BGInfo/admin.bgi" /silent /timer:00 /nolicprompt

Следующее. На ПК пользователя частенько присутствуют сетевые интерфейсы, как реальные так и виртуальные без назначенного IP-адреса. Они отображают адрес как (none) что не несет нам информации а лишь путает пользователя. Поэтому их лучше сразу отсечь с помощью WMI-запроса:

SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True



Bginfo поддерживает WMI-запросы в одну строку. Bginfo также поддерживает выполнение VB-скриптов. В этом случае VB-скрипт должен быть в виде отдельного файла. К сожалению выполнение Powershell скриптов Bginfo не поддерживает. А так хотелось внедрить в нее такое:

Get-NetAdapter | where Status -eq "Up" | select InterfaceDescription, LinkSpeed

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


Технология Bginfo предусматривает замену изображения экрана на такую же с полученной информацией. При этом может быть неконтрастный фон оригинального рисунка. Можно сформировать корпоративное изображение с затетмнением в нужном углу экрана. Также следует учесть что Bginfo сбрасывает фон на "Фото" и положение "Замостить". Т.е. пользователь может сам вернуть себе тот фон который у него был до этого и, разумеется, информацию про ПК от Bginfo потерять. Это уже до следующего перелогина.

Вот такая вот полезная утилитка Bginfo. Рекомендую!


6 comments:

  1. Разрядность:
    select AddressWidth from Win32_Processor

    ReplyDelete
  2. Обратите внимание, что значение которое вы хотите увидеть в Bginfo скрипт vbs должен возвращать через Echo.

    ReplyDelete
  3. Как сделать опрос сети и вывод в утилиту, если сеть отключили и через минут 10 снова включили, и айпи поменялся

    ReplyDelete
  4. Вам придется ставить вызов BGinfo в шедулер, например, на каждые полчаса.

    ReplyDelete
  5. winmgt = "winmgmts:{impersonationLevel=impersonate}!//"
    Set oWMI_Query_Result = GetObject(winmgt).InstancesOf("Win32_OperatingSystem")

    For Each oOS In oWMI_Query_Result
    iOSLoc = oOS.Locale
    Next

    Select Case iOSLoc
    Case "0409" iOSLang = "English"
    Case "0422" iOSLang = "Russian"
    Case Else iOSLang = "Other"
    End Select
    Echo iOSLang

    или
    SELECT Locale FROM Win32_OperatingSystem

    ReplyDelete

А что вы думаете по этому поводу?