Главная

Sunday, 4 September 2022

BGinfo и Powershell.

Всем привет.

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

В качестве дополнительной опции она может черпать информацию из внутренних WMI-запросов и внешних VB-скриптов. Однако автор уилиты здесь незаслуженно обошел Powershell. Поэтому я сегодня вам покажу как это исправить. 

Логика моего решения проста - запустим Powershell из VBScript. В шаблоне BGInfo указываем вызов VB-скрипта, например файл 11.vbs, в котором и вызываем Powershell:


On Error Resume Next

Set objShell = CreateObject("Wscript.Shell")

Status = objShell.Exec("powershell.exe -ExecutionPolicy Bypass –Noprofile -Windowstyle Hidden -File test.ps1").StdOut.ReadAll()

Echo Status

Не забываем прочитать результат Powershell через ReadAll(), и передать его через эхо в саму BGInfo.

А вот скрипт Powershell test.ps1 должен возвращать максимально простой однострочный ответ, например такой:
$PSVersionTable.PSVersion.Major

Это все. Работает на ура. Кстати убирайте в Path все кроме имени вызываемого vbs-файла, так проще запускать утилиту с нового места, не надо будет каждый раз перестраивать шаблон.

Удачи.

1 comment:

  1. Dim o
    Set o = CreateObject("MSXML2.XMLHTTP")
    o.open "GET", "http://ifconfig.me/ip", False
    o.send
    Echo o.responseText

    ReplyDelete

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