ПРИМЕРЫ СКРИПТОВ
Курс "Защита программ и данных"
Скрипты с использованием возможностей WMI для получения сведений о компьютере
Скрипт для получения информации о логических дисках на компьютере
(закомментированая строка в середине скрипта может быть использована для получения информации об одном диске D:)
REM ========================================================
REM Скрипт для получения информации о логических дисках (диске)
REM Выводится не вся возможная информация !!!
REM =========================================================
Option Explicit ' Установка обязательного объявления переменных
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objService ' Объект SWbemServices
Dim colDisks ' Коллекция экземпляров класса WMI
Dim objDisks ' Элемент коллекции
Dim strResult ' Результат запроса
strComputer = "." ' Работаем с текущим компьютером (можно указать сетевое имя )
strNamespace = "Root\CIMV2"
Set objService = GetObject("WinMgmts:\\" & strComputer & "\" & strNamespace)
Rem Set colDisks = objService.ExecQuery("Select * from Win32_LogicalDisk " & "where DeviceID = 'D:' ")
Set colDisks = objService.ExecQuery("Select * from Win32_LogicalDisk ")
strResult = ""
For Each objDisks In colDisks ' Цикл по коллекции
strResult = strResult & "Свойства диска " & objDisks.Name & VbCrLf &_
"Description = " & objDisks.Description & VbCrLf &_
"File System = " & objDisks.FileSystem & VbCrLf &_
"Size = " & objDisks.Size & VbCrLf &_
"Free Space =" & objDisks.FreeSpace & VbCrLf &_
"VolumeName = "& objDisks.VolumeName & VbCrLf &_
"VolumeSerialNumber = " & objDisks.VolumeSerialNumber & VbCrLf
Next
WScript.Echo strResult
|
Скрипт для получения информации о BIOS
REM ================================================================================
REM Скрипт для получения информации о BIOS
REM Выводится не вся возможная информация !!!
REM ================================================================================
Option Explicit
Dim strComputer
Dim strNamespace
Dim strClass
Dim objClass
Dim colInstances
Dim objBIOS
Dim strResult
strComputer = "." ' Для текущего компьютера
strNamespace = "Root\CIMV2"
strClass = "Win32_BIOS"
strResult = "BIOS Information : " & VbCrLf
Set objClass = GetObject("winmgmts:\\" & strComputer & "\" & strNamespace & ":" & strClass)
Set colInstances = objClass.Instances_
For Each objBIOS In colInstances
strResult = strResult & "Name : " & objBIOS.Name & VbCrLf
strResult = strResult & "Manufacturer : " & objBIOS.Manufacturer & VbCrLf
strResult = strResult & "Caption : " & objBIOS.Caption & VbCrLf
strResult = strResult & "Description : " & objBIOS.Description & VbCrLf
strResult = strResult & "Build Number : " & objBIOS.BuildNumber & VbCrLf
strResult = strResult & "Current Language : " & objBIOS.CurrentLanguage & VbCrLf
strResult = strResult & "SMBIOS version : " & objBIOS.SMBIOSBIOSVersion & VbCrLf
strResult = strResult & "Serial Number : " & objBIOS.SerialNumber & VbCrLf
Next
WScript.Echo strResult
|
Скрипт для получения информации о WINDOWS
REM ================================================================================
REM Скрипт для получения информации о WINDOWS
REM Выводится не вся возможная информация !!!
REM ================================================================================
Option Explicit
Dim strComputer
Dim strNamespace
Dim strClass
Dim objClass
Dim colOperatingSystems
Dim objOperatingSystem
Dim strResult
strComputer = "." ' Для текущего компьютера
strNamespace = "Root\CIMV2"
strClass = "Win32_OperatingSystem"
strResult = "Operating System properties : " & VbCrLf
Set objClass = GetObject("winmgmts:\\" & strComputer & "\" & strNamespace & ":" & strClass)
Set colOperatingSystems = objClass.Instances_
For Each objOperatingSystem In colOperatingSystems
strResult = strResult & "Build Number : " & objOperatingSystem.BuildNumber & VbCrLf
strResult = strResult & "Build Type : " & objOperatingSystem.BuildType & VbCrLf
strResult = strResult & "Caption : " & objOperatingSystem.Caption & VbCrLf
strResult = strResult & "Version : " & objOperatingSystem.Version & VbCrLf
strResult = strResult & "OS Product Suite : " & objOperatingSystem.OSProductSuite & VbCrLf
strResult = strResult & "OS Language : " & objOperatingSystem.OSLanguage & VbCrLf
strResult = strResult & "OS Type : " & objOperatingSystem.OSType & VbCrLf
strResult = strResult & "Install Date : " & objOperatingSystem.InstallDate & VbCrLf
strResult = strResult & "Serial Number : " & objOperatingSystem.SerialNumber & VbCrLf
Next
WScript.Echo strResult
|
Скрипты с использованием возможностей ADSI для получения сведений о компьютере
Скрипт для получения списка провайдеров ADSI
REM ================================================================================
REM Скрипт для получения списка провайдеров ADSI
REM ================================================================================
DIM objProvider
Set objProvider = GetObject("ADs:")
For Each Provider In objProvider
WScript.Echo Provider.Name
Next
|
Скрипт для определения всех групп, в которые входит пользователь
REM ================================================================================
REM Скрипт для определения всех групп, в которые входит пользователь
REM ================================================================================
Dim UserObj
Dim E
Dim GroupObj
Dim SList
Set UserObj = GetObject("WinNT://./goshevp") ' Задается имя пользователя
Set E = UserObj.Groups
SList = "User Goshevp is in the next groups : " + VbCrLf
For Each GroupObj In E
SList = SList + GroupObj.Name + VbCrLf
Next
WScript.Echo SList
|
Скрипт для определения всех пользователей на компьютере (группа users)
REM ================================================================================
REM Скрипт для определения всех пользователей на компьютере (группа users)
REM ================================================================================
Dim UserObj
Dim E
Dim GroupObj
Dim SList
Set UserObj = GetObject("WinNT://./users,group")
Set E = UserObj.Members
SList = "Computel Users : " + VbCrLf
For Each GroupObj In E
SList = SList + GroupObj.Name + VbCrLf
Next
WScript.Echo SList
|
Скрипт для определения всех групп на компьютере
REM ================================================================================
REM Скрипт для определения всех групп на компьютере
REM ================================================================================
Dim ComputerObj,UserObj
Dim E
Dim GroupObj
Dim SList
Dim EItem
Set ComputerObj = GetObject("WinNT://.")
SList = "Computer Groups : " + VbCrLf
For Each GroupObj In ComputerObj
If GroupObj.Class = "Group" Then
SList = SList + GroupObj.Name + VbCrLf
End If
Next
WScript.Echo SList
|
Скрипт для определения всех пользователей на компьютере
REM ================================================================================
REM Скрипт для определения всех пользователей на компьютере
REM ================================================================================
Dim ComputerObj,UserObj
Dim E
Dim GroupObj
Dim SList
Dim EItem
Set ComputerObj = GetObject("WinNT://.")
SList = "Computer Users : " + VbCrLf
For Each GroupObj In ComputerObj
If GroupObj.Class = "User" Then
SList = SList + GroupObj.Name + VbCrLf
End If
Next
WScript.Echo SList
|
Примеры скриптов, выполняющих некоторые полезные для защиты функции
Скрипт для получения информации о своем имени
REM ================================================================================
REM Скрипт для получения информации о своем имени
REM ================================================================================
Option Explicit
Dim strResult
strResult = WScript.ScriptFullName
WScript.echo strResult
|
Скрипт, выводящий свой собственный текст построчно
REM ================================================================================
REM Скрипт для выводящий свой собственный текст
REM ================================================================================
Option Explicit
Dim FSO
Dim inFile
Dim strLine
Const ForReading = 1
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set inFile = FSO.OpenTextFile(WScript.ScriptFullName,ForReading)
While ( Not inFile.AtEndOfStream )
strLine = inFile.ReadLine
WScript.Echo strLine
WEnd
|
Скрипт, выполняющий сгенерированный на ходу код
REM ================================================================================
REM Пример скрипта, выполняющего сгенерированного на ходу фрагмента кода
REM Эту возможность можно использовать для шифрования фрагмента кода скрипта
REM ================================================================================
Dim eString
Dim i
Dim k
i = 1
'eString="Sub SecretProc" & vbCrLf ' Формируемый код
eString= "i=2"& VbCrLf ' Формируемый код
eString=eString & "k=4"& VbCrLf ' Формируемый код
eString=eString & "WScript.Echo k" ' Формируемый код
WScript.Echo ("0x" & Hex(32)) ' Проверка функции преобразования числа в строковое 16-с/с представление
Execute (estring)
WScript.Echo i
|
Подготовлено 11.10.2007 Гошев П.И.