|
a.m.c
Цитировать выделенное
|
Добрый день!
Подскажите как узнать ID хоста не через приложение! Через реестр или может через файл с настройками?
У нас в организации используется скрипт который отображает информацию необходимую для Тех.Поддержки на рабочем столе - IP, MAC, имя пользователя, телефон ТП.
Необходимо добавить информацию по ID RMS хоста. |
Профиль |
Сообщений:
10 |
Дата создания:
17.08.2020 13:53:25 |
|
alex
Модератор
Цитировать выделенное
|
ID хранится в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\TektonIT\RMS Host\Host\Parameters
значение InternetId там понятный XML.
|
Профиль |
Сообщений:
3439 |
Дата создания:
17.08.2020 14:32:08 |
|
a.m.c
Цитировать выделенное
|
Спасибо! Может подскажите какой командой можно получить из значения этого параметра InternetId только сам ID xxx-xxx-xxx-xxx? |
Профиль |
Сообщений:
10 |
Дата создания:
17.08.2020 14:46:46 |
|
alex
Модератор
Цитировать выделенное
|
a.m.c,
такой команды нет.
|
Профиль |
Сообщений:
3439 |
Дата создания:
17.08.2020 14:48:17 |
Re: Re: Как узнать ID хоста
|
|
|
a.m.c
Цитировать выделенное
|
а через WMI Query ни как нельзя получить этот параметр? |
Профиль |
Сообщений:
10 |
Дата создания:
26.08.2020 17:30:11 |
|
alex
Модератор
Цитировать выделенное
|
a.m.c,
нельзя. |
Профиль |
Сообщений:
3439 |
Дата создания:
26.08.2020 18:21:56 |
|
a.m.c
Цитировать выделенное
|
В общем вот VB скрипт. Может кому-то пригодиться.
Dim WshShell
Dim sReg
Dim reg_data(112)
Dim Info
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell"
sReg = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\TektonIT\RMS Host\Host\Parameters\InternetID"
if Err.Number<>0 then WScript.Quit
i = 0
for each x in sReg
reg_data(i) = x
i = i + 1
if (i>112) then Exit For
next
num1 = (reg_data(98)-(reg_data(98)\16)*16)*100+(reg_data(99)-(reg_data(99)\16)*16)*10+(reg_data(100)-(reg_data(100)\16)*16)
num2 = (reg_data(102)-(reg_data(102)\16)*16)*100+(reg_data(103)-(reg_data(103)\16)*16)*10+(reg_data(104)-(reg_data(104)\16)*16)
num3 = (reg_data(106)-(reg_data(106)\16)*16)*100+(reg_data(107)-(reg_data(107)\16)*16)*10+(reg_data(108)-(reg_data(108)\16)*16)
num4 = (reg_data(110)-(reg_data(110)\16)*16)*100+(reg_data(111)-(reg_data(111)\16)*16)*10+(reg_data(112)-(reg_data(112)\16)*16)
Info=CStr(num1)&"-"&CStr(num2)&"-"&CStr(num3)&"-"&CStr(num4)
Info_ID="RMS_ID: "&Info
WScript.Interactive = true
On Error Resume Next
call Echo(Info) 'Вывод для BGInfo
call WScript.Echo(Info_ID) 'Вывод для консоли или окна
On Error Goto 0 |
Профиль |
Сообщений:
10 |
Дата создания:
07.09.2020 15:10:37 |
|
dmitrybars2019
Цитировать выделенное
|
a.m.c писал(а):
Dim WshShell
Dim sReg
Dim reg_data(112)
Dim Info
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell"
sReg = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\TektonIT\RMS Host\Host\Parameters\InternetID"
if Err.Number<>0 then WScript.Quit
i = 0
for each x in sReg
reg_data(i) = x
i = i + 1
if (i>112) then Exit For
next
num1 = (reg_data(98)-(reg_data(98)\16)*16)*100+(reg_data(99)-(reg_data(99)\16)*16)*10+(reg_data(100)-(reg_data(100)\16)*16)
num2 = (reg_data(102)-(reg_data(102)\16)*16)*100+(reg_data(103)-(reg_data(103)\16)*16)*10+(reg_data(104)-(reg_data(104)\16)*16)
num3 = (reg_data(106)-(reg_data(106)\16)*16)*100+(reg_data(107)-(reg_data(107)\16)*16)*10+(reg_data(108)-(reg_data(108)\16)*16)
num4 = (reg_data(110)-(reg_data(110)\16)*16)*100+(reg_data(111)-(reg_data(111)\16)*16)*10+(reg_data(112)-(reg_data(112)\16)*16)
Info=CStr(num1)&"-"&CStr(num2)&"-"&CStr(num3)&"-"&CStr(num4)
Info_ID="RMS_ID: "&Info
WScript.Interactive = true
On Error Resume Next
call Echo(Info) 'Вывод для BGInfo
call WScript.Echo(Info_ID) 'Вывод для консоли или окна
On Error Goto 0
Не работает в BGinfo. Выводит 0-0-0-0
|
Профиль |
Сообщений:
1 |
Дата создания:
29.12.2021 14:04:39 |
|
alex
Модератор
Цитировать выделенное
|
a.m.c,
dmitrybars2019,
сложные пути какие-то. имхо, лучше загрузить данные в какой-то XML процессор (например poweshell Select-Xml) и одной функцией загрузить текстовый узел. |
Профиль |
Сообщений:
3439 |
Дата создания:
01.01.2022 22:57:37 |
|
Fedor.K
Цитировать выделенное
|
#PowerShell
(
(
(
(
Get-ItemProperty 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\TektonIT\RMS Host\Host\Parameters' |
Select -ExpandProperty InternetId
) -join ','
).Split(",",[System.StringSplitOptions]::RemoveEmptyEntries) |
ForEach{[char][int]"$($_)"}
) -join '' -split "`n" |
? -FilterScript {
$_ -match '\d{1,3}\-\d{1,3}\-\d{1,3}\-\d{1,3}'
}
) -replace '\S*\s*\S*<internet_id>(?<RMSID>\d{1,3}\-\d{1,3}\-\d{1,3}\-\d{1,3})</internet_id>\S*','${RMSID}' |
Профиль |
Сообщений:
1 |
Дата создания:
11.05.2022 16:50:40 |
|
k.vazlin
Цитировать выделенное
|
Добрый день!
Fedor.K писал(а):
Fedor.K
И как теперь можно этот скрипт вставить в BGINFO? чтобы он возвращал в поле RMS ID? |
Профиль |
Сообщений:
1 |
Дата создания:
02.11.2022 17:14:04 |
|
darksmann
Цитировать выделенное
|
Сие легко - в конце вышеприведённого скрипта добавляем перенаправление в файл "> C:\Windows\rmsid.txt" и добавляем сей скрипт в автозапуск компьютера (важно, НЕ пользователя).
В БГИнфо создаём кастомный показатель и указываем откуда брать данные - C:\Windows\rmsid.txt
У меня работает без нареканий.
А вообще разработчикам стоит призадуматься о том, что бы в реестре ИД был легко понятным, может даже отдельным параметром. |
Профиль |
Сообщений:
4 |
Дата создания:
21.12.2022 01:43:49 |