Хорошо, у меня есть два файла. Это просто vbs-скрипты. Файлы тоже прикрепил. Они используют WMI вместо SNMP, поэтому я не могу понять, как вставить их в ярлыки.
Этот скрипт просто определяет, кто сейчас вошёл в систему. «WhoLogonInput.vbs»
Пример VBScript для определения, какой пользователь сейчас залогинен
Автор: Guy Thomas и John Eck
Версия 2.5 – декабрь 2005
-------------------------------------------------------
Option Explicit
Dim objWMIService, objComputer, colComputer
Dim strLogonUser, strLogonUser1, strComputer
strComputer = "."
strComputer = wscript.arguments(0)
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputer = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
If not objComputer.UserName = "" Then
strLogonUser = Split(objComputer.UserName,"")
strLogonUser(1) = UCase(Left(strLogonUser(1),1)) & Trim(Mid(strLogonUser(1),2,20))
Wscript.Echo strLogonUser(1) & " сейчас вошёл в систему на " & strComputer
Else
Wscript.Echo "Пока никто не вошёл в систему на " & strComputer
End If
Next
' Конец примера VBScript для определения вошедшего пользователя
Этот скрипт даёт дополнительную информацию:
Если WScript.Arguments.Count = 1 Then
strComputer = WScript.Arguments.Item(0)
Else
strComputer = InputBox("Введите имя компьютера")
End If
' Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
'********************** Получаем информацию об операционной системе *******************************************************************
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",48)
For Each objItem in colItems
os = "-----------------------------------" & vbCrLf & "Основная ОС: " & objItem.Caption & vbCrLf & "-----------------------------------"
Next
' Получаем информацию о процессоре *********************************************
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Processor",48)
For Each objItem in colItems
If instr(os,"2000") < 1 Then
cores = objitem.NumberOfCores
cpu = "-----------------------------------" & vbCrLf & "Имя CPU: " & objItem.Name & vbCrLf & "Ядер = " & Cores & _
" Тактовая частота = " & objitem.CurrentClockSpeed & vbCrLf & "-----------------------------------"
End If
Next
'********************** Получаем количество и размер планок памяти *******************************************************************
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_PhysicalMemory",48)
For Each objItem in colItems
dimmnum = dimmnum + 1
dimmsize= cdbl(objitem.capacity)
If dimmsize > 1000000000 Then
mem= mem & "-----------------------------------" & vbCrLf & "Планка " & dimmnum & " Размер: " & FormatNumber(dimmsize / 1000000000,2) & " ГБ" & vbCrLf & "-----------------------------------"
Else
mem= mem & "-----------------------------------" & vbCrLf & "Планка " & dimmnum & " Размер: " & FormatNumber(dimmsize / 1000000,2) & " МБ" & vbCrLf & "-----------------------------------"
End If
Next
'********************** Получаем модель, имя хоста, вошедшего пользователя, общий объём памяти *******************************************************************
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_ComputerSystem",48)
For Each objItem in colItems
model = "-----------------------------------" & vbCrLf & "Модель: " & objItem.Model & vbCrLf & "-----------------------------------"
name = "-----------------------------------" & vbCrLf & "Имя хоста: " & objItem.name & vbCrLf & "-----------------------------------"
If ("-" & objitem.UserName & "-") = "--" Then
username = " Никого"
Else
username = objitem.UserName
End If
user = "-----------------------------------" & vbCrLf & "Вошедший пользователь: " & UserName & ":" & vbCrLf & "-----------------------------------"
dimmsize= cdbl(objitem.TotalPhysicalMemory)
If dimmsize > 1000000000 Then
mem= mem & "-----------------------------------" & vbCrLf & "Общая память: " & FormatNumber(dimmsize/1000000000,2) & " ГБ " & " (" & FormatNumber(dimmsize,0) & " байт)" & vbCrLf & "-----------------------------------"
Else
mem= mem & "-----------------------------------" & vbCrLf & "Общая память: " & FormatNumber(dimmsize/10000,2) & " ГБ " & " (" & FormatNumber(dimmsize,0) & " байт)" & vbCrLf & "-----------------------------------"
End If
Next
'********************** Получаем информацию о жёстких дисках *******************************************************************
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where MediaType = '12'")
For Each objDisk in colDisks
drivespace = drivespace & "-----------------------------------" & vbCrLf & objdisk.deviceid & " " & int(objdisk.size / 1000000000) & " ГБ всего " & _
int(objDisk.FreeSpace / 1000000000) & " ГБ свободно" & vbCrLf & "-----------------------------------"
Next
wscript.echo user & name & os & Model & totmem & mem & cpu & drivespace