Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/505: Рейтинг темы: голосов - 505, средняя оценка - 4.72
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
1

Полезные VBS скрипты и программы по работе с ними

15.10.2012, 00:41. Просмотров 93046. Ответов 32
Метки нет (Все метки)

В этой теме выкладываем скрипты, которые часто используются Вами
или на Ваш взгляд могут иметь большое практическое значение.

Также приветствуются скрипты высокой степени сложности, полезные с точки зрения
изучения принципа их работы.

Правила темы:
  • При выкладывании скрипта постарайтесь тщательно описывать принцип его работы и по-больше комментировать строки Вашего кода.
  • Если Ваш код очень большой, помещайте его под CUT. Также можно сделать 2 варианта: 1. Чистый код. 2. С комментариями.
  • Запрещаются любые обсуждения выложенных здесь работ;
  • если в этом есть необходимость, создайте отдельную тему в которой опишите замечание или проблему при работе с данным скриптом, указав ссылку на сообщение из этой темы (правый клик по слову "Permalink" вверху каждого сообщения).
  • Если Вы хотите внести исправление в выложенный Вами код - пишите мне в личку ссылку на Ваше старое сообщение и новый исправленный вариант. (полный вариант с тегами Вашего старого сообщения можно получить, нажав на него - кнопка "Цитата").
  • Допускается размещение обзора программ, помогающих редактировать/отлаживать код.

Схожая тема: Полезные макросы, надстройки и шаблоны (VBA)
Смежная тема: Полезные BAT/CMD скрипты


******************* Перечень полезных скриптов: *******************
Отправка файла на FTP (Drag & Drop) и копирование ссылки в буфер обмена ссылка
Получение времени сервера ссылка
5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 00:41
Ответы с готовыми решениями:

Как вызвать скрипты .vbs из .wsf?
Добрый день! Пытаюсь освоить WSH с целью автоматического создания...

VBS, метод POST, заполнение полей и иже с ними
С помощью скрипта лезу на сайт. Далее нужно заполнить поля формы. Тут ступор...

Добавление программы в автозагрузку через скрипт vbs
Доброго врмени суток. Никак не могу найти скрипт vbs добавления в автозагрузку....

Vbs -скрытый запуск программы с параметрами и её отслеживание
Требуется скрыто запускать программу с параметром, если она завершится, скрыто...

Создание бинарного файла из vbs / Как создать exe файл из vbs
Имеется файл с расширением exe. Нужно как-нибудь занести массив байт в скрипт,...

32
greg zakharov
Покинул форум
1958 / 830 / 240
Регистрация: 07.05.2015
Сообщений: 1,666
10.11.2015, 10:16 21
Uptime (без использования WMI):
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
(function() {
  var enc, arr, i, s = '', std,
      loc = {
        419 : ['019', '1251'],
        409 : ['009', '1252']
      };
  
  Array.prototype.to_s = function() {
    var s = '';
    
    for (var i = 0; i < this.length; i++) {
      s += i === 0 ? parseInt(this[i]) + '.'
        : (parseInt(this[i]) < 10 ? '0' + parseInt(this[i]) : parseInt(this[i])) + ':';
    }
    return s.replace(/\:$/, '');
  };
  
  with (new ActiveXObject('WScript.Shell')) {
    enc = Number(RegRead('HKCU\\Control Panel\\International\\Locale'));
    arr = RegRead(
      'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\' +
      'PerfLib\\' + loc[enc][0] + '\\Counter'
    ).toArray();
    
    for (i = 0; i < arr.length; i++) {
      if (parseInt(arr[i]) === 2 || parseInt(arr[i]) === 674) {
        s += '\\' + arr[i + 1];
      }
    }
    
    std = Exec('cmd /c chcp');
    i = std.StdOut.ReadAll().match(/\d+/);
    std = Exec('cmd /q /k echo off');
    std.StdIn.WriteLine('chcp ' + loc[enc][1]);
    std.StdIn.WriteLine('typeperf "' + s + '" -sc 1');
    std.StdIn.WriteLine('chcp ' + i + '&exit');
    s = parseInt(std.StdOut.ReadAll().match(/\d+\.\d+/g)[2]);
  };
  WScript.echo([s / 86400, s / 3600 % 24, s % 3600 / 60, s % 60].to_s());
}());
Генерация случайного файла (функция генерирует случайное имя со случайным расширением):
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
(function(len) {
  if (isNaN(len) || (len > 32 || len < 1)) {
    WScript.echo('Should be a number ranging from 1 to 32.');
    WScript.Quit(1);
  }
  
  var getRandom = function(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  };
  
  var std, arr, i, ext = [];
  with (new ActiveXObject('WScript.Shell')) {
    std = Exec('cmd /q /k echo off');
    std.StdIn.WriteLine('assoc & exit');
    arr = std.StdOut.ReadAll().split('\n');
  }
  
  for (i = 0; i < arr.length; i++) {
    if (!arr[i].match(/.\d+\=/) && arr[i].match(/=\w+/)) {
      ext.push(arr[i].split('=')[0]);
    }
  }
  
  with (new ActiveXObject('Scriptlet.TypeLib')) {
    WScript.echo(GUID.substring(1, 37).replace(/-/g, '')
      .toLowerCase().slice(0, len) + ext[getRandom(0, ext.length - 1)]
    );
  }
}(
  WScript.Arguments.length !== 1
  ? WScript.Quit(1)
  : WScript.Arguments.Unnamed(0)
));
2
xeon13
20 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
13.11.2015, 09:15 22
Uptime простейший.
Visual Basic
1
2
3
4
5
6
7
'Писал для себя по примерам в интернете. E}|{uk@RUSnet
Set objDT = CreateObject ("WbemScripting.SWbemDateTime") 
For Each objItem in GetObject ("winmgmts:root\cimv2").Get ("Win32_OperatingSystem").Instances_ 
       objDT.value = objItem.LastBootUpTime 
       nUp = DateDiff ("n", objDT.GetVarDate (TRUE), NOW) 
       wscript.echo "Up for", int (nUp/1440), "Day(s)", int (nUp/60) mod 24, "hour(s)", nUp mod 60, "minute(s)" 
Next
Добавлено через 38 минут
Скрипт получения имени пользователя и по имени локального компа по SIDу
Часто бывает необходим для выяснения кто стал причиной ошибки в журнале виндовс.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
'Скрипт получения имени пользователя и по имени локального компа по SIDу (VBScript)
'Просто в появившемся диалоговом окне вводим SID нужного юзверя ОК
'Автор E}|{uk@RUSnet (xeon) 2013г.
 
sSID = InputBox ("Введите SID пользователя:")
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")
Set objAccount = objWMIService.Get _
("Win32_SID.SID='" & sSID & "'")
Wscript.Echo "ИмяПольз\ИмяКомпДомен: " & objAccount.AccountName & " \ " & objAccount.ReferencedDomainName
Добавлено через 20 минут
Visual Basic
1
2
3
4
'Скрпт синхронизирующий время с указанной рабочей станции. \\adms
'Автор E}|{uk@RUSnet (xeon)
set WshShell = WScript.CreateObject("WScript.Shell")  
WSHShell.Run "net time \\adms /set /yes", 0, True
1
greg zakharov
Покинул форум
1958 / 830 / 240
Регистрация: 07.05.2015
Сообщений: 1,666
16.11.2015, 11:05 23
Определяет физическое местоположение COM-модуля.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(function(com) {
  try {
    with (new ActiveXObject('WScript.Shell')) {
      WScript.Echo(RegRead('HKLM\\SOFTWARE\\Classes\\CLSID\\' +
        RegRead('HKLM\\SOFTWARE\\Classes\\' + com + '\\CLSID\\') +
      '\\InProcServer32\\'));
    }
  }
  catch (e) {
    WScript.echo('Error (' + e.number + '): unknown COM on this system.');
  }
}(
  WScript.Arguments.length !== 1
  ? (function() {
    WScript.echo('Usage: ' + WScript.ScriptName + ' <COM>');
    WScript.echo('e.g.: ' + WScript.ScriptName + ' Scripting.FileSystemObject');
    WScript.Quit(1);
  }()) : WScript.Arguments.Unnamed(0)
));
1
xeon13
20 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
20.11.2015, 16:03 24
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
'####################################################
'#  Скрипт для автоматического изменения или добавления логотипа  Фирмы#
'#  в свойствах системы Win7. Можно использовать в доменных политиках      #
'# Необходимо, чтобы в папке со скриптом лежал сам логотип oemlogo.bmp
'# У мена размер логотипа был: 120 x 33 x 24 BPP
'#   Автор: E}|{uk@RUSnet 2015год                    #
'####################################################
 
'Копирование логотипа
 
strComputer = "."
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
 
'#######добавил проверку наличия папки и её создание########
'переменная пути с папкой логотипа
strDirectory = "c:\Windows\System32\oobe\info"
 
'если переменная strDirectory есть то...
If objFSO.FolderExists(strDirectory) Then 
'попытка открытия папки.
Set objFolder = objFSO.GetFolder(strDirectory) 
'Для оповещения ниже строчку можно раскоментировать.
'WScript.Echo "Папка  ''"& strDirectory &"''  уже создана " 
Else
Set objFolder = objFSO.CreateFolder(strDirectory) 
'Для оповещения ниже строчку можно раскоментировать.
'WScript.Echo "Вновь созданная папка ''"& strDirectory &"''."
End If
 
'##########проверка окончена#################################
 
objFSO.CopyFile "oemlogo.bmp", "c:\Windows\System32\oobe\info\oemlogo.bmp", True
    If Err.Number <> 0 Then
set  mes = Err.Number & ": " & Err.Description
MsgBox mes, 0, " Внимание!!!"
'       WScript.Quit
    end if
 
'Удаление лишний инфы с реестра OEMINFO.
On error Resume Next
Set SHELL = CreateObject("WScript.Shell")
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\Manufacturer"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\Model"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\SupportHours"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\SupportPhone"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\SupportURL"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\Logo"
SHELL.RegWrite RegValue, "\Windows\System32\oobe\info\oemlogo.bmp", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
wscript.echo "Логотип добавлен, инфа oeminf стёрта."
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'####################################################
'# Скрипт на изменение добавление логотипа Фирмы   #
'# В свойствах системы WinXP   Можно использовать в доменных политиках  #
'# Необходимо, чтобы в папке со скриптом лежал сам логотип oemlogo.bmp
'# и файл oeminfo.ini с содержанием:
'# [General]
'# Manufacturer=СуперКомпьютер:
'# Model=
'# 
'# [Support Information]
'# Line1=
'# Line2=
'# У мена размер логотипа был: 120 x 33 x 16бит. при 24Битах - отображается белый фон.
'#   Автор: E}|{uk@RUSnet 2010год                    #
'####################################################
 
'Копирование логотипа
 
strComputer = "."
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
 
objFSO.CopyFile "oemlogo.bmp", "c:\Windows\System32\oemlogo.bmp", True
    If Err.Number <> 0 Then
set  mes = Err.Number & ": " & Err.Description
MsgBox mes, 0, " Внимание!!!"
'       WScript.Quit
    end if
 
objFSO.CopyFile "oeminfo.ini", "c:\Windows\System32\oeminfo.ini", True
    If Err.Number <> 0 Then
set  mes = Err.Number & ": " & Err.Description
MsgBox mes, 0, " Внимание!!!"
'       WScript.Quit
    end if
 
wscript.echo "Логотип добавлен"
1
greg zakharov
Покинул форум
1958 / 830 / 240
Регистрация: 07.05.2015
Сообщений: 1,666
30.11.2015, 13:22 25
Crc32 файла
Суть идеи - запихать файл в zip и уже оттуда получить Crc32 файла (смещение 14 байт от начала архива, само поле crc32 - 4 байта). Концепт расчитан прежде не на шибко большие файлы.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
On Error Resume Next
 
If WScript.Arguments.Count <> 1 Then
  WScript.Echo "Usage: " & WScript.ScriptName & " <file>"
  WScript.Echo ".e.g.: " & WScript.ScriptName & " E:\sandbox\app.exe"
  WScript.Quit(1)
End If
 
Dim strFile
Dim strTemp
Dim objFile
Dim objDump
Dim strDump
 
strFile = WScript.Arguments.Unnamed(0)
 
With CreateObject("Scripting.FileSystemObject")
  If Not .FileExists(strFile) Then
    WScript.Echo "Could not locate specified file."
    WScript.Quit(1)
  End If
  
  strFile = .GetAbsolutePathName(strFile)
  strTemp = .BuildPath(.GetSpecialFolder(2), "~crc32.zip")
  
  Set objFile = .CreateTextFile(strTemp)
  objFile.Write "PK" & Chr(5) & Chr(6) & String(18, 0)
  objFile.Close
  
  With CreateObject("Shell.Application")
    .NameSpace(strTemp).CopyHere strFile
    WScript.Sleep 500
  End With
  
  With CreateObject("SAPI.SpFileStream")
    .Open strTemp, 0
    .Seek 14, 1
    .Read objDump, 4
    .Close
  End With
  
  With CreateObject("Microsoft.XMLDOM")
    Set strDump = .createElement("Binary")
    strDump.dataType = "bin.hex"
    strDump.nodeTypedValue = objDump
  End With
  
  strDump = strDump.text
  WScript.StdOut.Write "0x"
  For i = Len(strDump) - 1 To 0 Step -2
    WScript.StdOut.Write UCase(Mid(strDump, i, 2))
  Next
  WScript.Echo
  .GetFile(strTemp).Delete
End With
1
xeon13
20 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
11.12.2015, 15:04 26
Скрипт получения полного имени пользователя и его описание из домена
возникла необходимость узнавать, кто открыл файл ексель.
Автор E}|{uk@RUSnet 2015г.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
'#####################################################
'# Скрипт получения полного имени пользователя и его описание из домена
'# возникла необходимость узнавать, кто открыл файл ексель.
'# Автор E}|{uk@RUSnet 2015г.
'#####################################################
 
set nw = WScript.CreateObject("WScript.Network")
username=InputBox ("Введите логин пользователя:")
 
'Вместо DOMEN меняем на свой домен в сети.
set objuser = GetObject("WinNT://DOMEN/" & username)
 
wscript.Echo (username) & " => " & (objuser.fullname) & " (" & (objuser.description) &")"
1
Oleg_cyber
5 / 5 / 2
Регистрация: 03.02.2012
Сообщений: 129
15.03.2016, 13:53 27
Доброго времени суток!
Предлагаю вашему вниманию небольшой vbскриптик с помощью которого можно создать ярлык для программы в меню программ кнопки Пуск

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim FSO, file, oFile, objArgs, n, p, pf, WshShell, link
Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then file = objArgs(0)
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set oFile = FSO.GetFile(file)
p = oFile.Path
n = FSO.GetBaseName(p)
pf = oFile.ParentFolder
Set WshShell = WScript.CreateObject("WScript.Shell")
Set link = WshShell.CreateShortcut("C:\Users\имя_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" & n & ".lnk")
link.TargetPath = p
link.WindowStyle = 1
link.Description = "Shortcut Script"
link.WorkingDirectory = pf
link.Save
MsgBox "     Ярлык создан!"
Скопируйте код в блокнот и сохраните с расширением .vbs (в 10-й строке замените имя_пользователя на ваше имя)
Затем нажмите win+R и введите shell:sendto и ОК
Перетащите файл в эту папку. Далее просто: ПКМ на нужном файле > Отправить > Ваш скрипт--Готово!
1
xeon13
20 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
15.04.2016, 15:25 28
NetCompNameMAIN+Timer.vbs Скрипт вывода сообщения Имени Компьютера и Юзера по таймеру. (Можно засунуть в доменные политики)

Несколько лет бился с тем что юзеры не желают знать сетевого имени своего компа и имени юзера.
Написал поначалу скрипт вывода сообщения при включении и всунул в политики домена. Юзеры стали тупо нажимать ОК и не читали, а потом при звонке в ИТ отдел только бе и ме, "придите сами посмотрите". Бегать неохота, проще подключиться удалённо, но без опознавательных координат это сложно. Вобщем вот сегодня прикрутил таймер к этому скрипту, чтобы ленивый юзер задолбался нажимать ОК, так как сообщение будет выскакивать снова поверх окон и заставит его вчитаться и запомнить. Вобщем собрал по интернетам из кусков скриптег и добавил свои вкусности . Думаю мою работу оценять многие начинающие админы ))).

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'Скрипт вывода Имени Компьютера и имени пользователя
'Сообщение нельзя закрыть по истечению времени
' Автор: E}|{uk@RUSnet #Dimitrovgrad 2016г.
' Спасибо "гуру" из интернета создавшему вывод сообщения по таймеру...
 
 
rem Option Explicit
 
Dim WshShell
 
Dim intTime4Show                  ' Заданное (оно же максимально возможное) время показа сообщения
Dim intMinimumTime                ' Минимальное время показа сообщения
Dim intTimeStartShowing           ' Время начала показа сообщения
Dim intRetValue                   ' Возвращаемое значение метода .Popup
Dim WshSysEnv, SysInfo, COMPUTERNAME, USERNAME 
 
Set WshShell = WScript.CreateObject("WScript.Shell")
 
intTime4Show    = 60              ' Заданное    время показа сообщения — 1 минута
intMinimumTime  = 10              ' Минимальное время показа сообщения — 10 секунд
 
intTimeStartShowing = Timer       ' Засекаем время
 
 
Function Server()
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    If Err.Number <> 0 Then
        rem WScript.Echo Err.Number & Err.Description
        WScript.Quit
    End If
    Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    strInfo = vbNullString
    For Each objOperatingSystem in colOperatingSystems
        strInfo=objOperatingSystem.Caption & " __ " & objOperatingSystem.Version
        Exit For
    Next
    Server = 0
    If InStr(LCase(strInfo),LCase("server"))>0 Then 
        Server = 1
    End If
End Function
 
 
If Server()=0 Then
    'создаем объект WshShell: 
    Set WshShell = WScript.CreateObject("WScript.Shell") 
 
    'создаем объект Environment со значением SYSTEM: 
    COMPUTERNAME = WshShell.Environment("PROCESS").Item("COMPUTERNAME")
    USERNAME = WshShell.Environment("PROCESS").Item("USERNAME")
 
    SysInfo = "Для обращения в отдел ИТ Запомните!     " & vbCrLf & vbCrLf & _
    "Ваш  ""КОМПЬЮТЕР"" —  " & COMPUTERNAME & "          "  & vbCrLf & vbCrLf & _
    "Ваш  ""ПОЛЬЗОВАТЕЛЬ"" —  "  & USERNAME & vbCrLf _
 
End If
 
Do
 
'   Код 262144 - поверх всех окон, а 64 значёк информативного сообщения.
    MsgBox SysInfo, 262144 + 64, " Внимание!!!"
 
    ' Повторяем вывод сообщения, пока не будет выполнено одно из условий:
    ' 1. Истечёт отведённое время и сообщение будет закрыто по таймауту [intRetValue = -1]
    ' 2. Сообщение будет закрыто вручную и с момента первого показа
    '    сообщения до текущего момента пройдёт не менее минимального [intMinimumTime]
    '    времени [(Timer - intTimeStartShowing) > intMinimumTime]
 
Loop Until intRetValue = -1 Or (Timer - intTimeStartShowing) > intMinimumTime
 
Set WshShell = Nothing
 
WScript.Quit 0
2
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
15.05.2017, 20:11  [ТС] 29
Registry Time Decoder

Консольный VBS скрипт.

Позволяет увидеть в привычном формате DD.MM.YYYY hh:mm:ss даты, которые указаны в реестре в бинарном формате или в виде 16-ричного значения.

Можно указывать на выбор:
  • бинарную строку
  • 16-ричное число
  • путь к параметру реестра
Поддерживаемые форматы:
  • Unix-Time (4 байта)
  • FILETIME (8 байт)
  • SYSTEMTIME (16 байт)

Фейс и доп. инфа

Полезные VBS скрипты и программы по работе с ними


Примечание:
Скрипт поддерживает задание конвертируемой строки через аргументы, например:
Код
cscript путь\RegTimeDecoder.vbs 00,80,8c,a3,c5,94,c6,01
Скрипт может попросить повышения привилегий, если ему их не хватит, чтобы прочитать параметр реестра.

Буфер обмена
Чтобы вставить содержимое буфера обмена в окно консоли CSCRIPT, нажмите правой кнопкой мыши по заголовку окна => Свойства => Общие => Поставьте галочку на "Выделение мышью" => ОК.
Теперь вы сможете вставлять буфер правой кнопкой мышки.
Полезные VBS скрипты и программы по работе с ними


1
Вложения
Тип файла: zip RegTimeDecoder.zip (3.2 Кб, 6 просмотров)
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
01.06.2017, 09:18 30
Календарь к 100 летию "нового стиля" для применения в издательском/полиграфическом деле а также для SOHO/ИЧП, фрилансеров и просто хороших людей ; данный пост есть ссылка на соотв. тред в котором (в том треде) планируется возможные (надеюсь) доработки, обсуждения и более новый версии
HTA: Вечный календарь к 100 летию "нового стиля"
1
greg zakharov
Покинул форум
1958 / 830 / 240
Регистрация: 07.05.2015
Сообщений: 1,666
20.10.2017, 23:10 31
Декодер активационного ключа Windows (CD-Key)

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
(function() {
  var map = ('BCDFGHJKMPQRTVWXY2346789').split(''),
      key = [], i, j, k, dpi, ver;
 
  with (new ActiveXObject('WScript.Shell')) {
    ver = Exec('cmd /c ver').StdOut.ReadAll().match(/\d+\.\d+/);
    dpi = RegRead('HKLM\\SOFTWARE\\Microsoft\\Windows NT\\' +
                  'CurrentVersion\\DigitalProductId').toArray();
  }
 
  ver = Boolean(6.1 <= parseFloat(ver));
  if (ver) {
    var nb = (dpi[66] / 6) & 1;
    dpi[66] = (dpi[66] & 0xF7) || ((nb & 2) * 4);
  }
 
  dpi = dpi.slice(52, 67);
  for (i = 24; i >= 0; i--) {
    k = 0;
    for (j = 14; j >= 0; j--) {
      k = (k * 256) ^ dpi[j];
      dpi[j] = Math.floor(k / 24);
      k %= 24;
    }
    key = map[k] + key;
 
    if ((i % 5) === 0 && i !== 0) key = '-' + key;
  }
 
  if (ver) {
    var part = key.substring(1, k + 1);
        real = k === 0 ? 'N' + part : part + 'N';
    key = key.substring(1, key.length).replace(part, real);
  }
  WScript.echo(key);
}());
2
MegaBatcher2000
0 / 0 / 0
Регистрация: 20.01.2018
Сообщений: 1
15.02.2018, 19:37 32
Мой скрипт.
Заранее предупрежу, может быть код не правильный, не тестил полностью.

Вот:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
a=msgbox("Cкрипт написан DirectRussianBeer.",100,"INFO")
Set st = CreateObject("Wscript.Shell")
do
st.sendkeys"{numlock}"
WScript.sleep 90
st.sendkeys"{capslock}"
WScript.sleep 90
st.sendkeys"{scrolllock}"
WScript.sleep 90
loop
Dim off
off=msgbox("Выключить?",4,"Переливающаяся клавиатура")
if off = vbYes then
Set cmd = CreateObject("WScript.Shell")
cmd.Run chr(34) & "@taskkill /f /im wscript.exe >nul" & Chr(34), 0, True
Set cmd = Nothing
Set st = Nothing
else
do
st.sendkeys"{numlock}"
WScript.sleep 90
st.sendkeys"{capslock}"
WScript.sleep 90
st.sendkeys"{scrolllock}"
WScript.sleep 90
loop
end if
Довольно простой, но реально у кого нет клавиатуры переливающийся, пусть пользуется.
0
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
11.04.2018, 21:33 33
Всем доброго здоровья!
Как-то ко мне обратился один из участников форума с просьбой написать небольшой скрипт, который бы читал теги ID3V1 MP3-файлов в указанной пользователем папке и затем бы создавал в ней подкаталоги по музыкальным жанрам, в тех опять создавать вложенные подпапки с артистами, и т.д. по годам альбома->по названиям альбомов, и в итоге, все mp3-файлы должны быть аккуратненько рассортированы по всем этим многочисленным подпапкам.
Скажу честно, я не смог сразу выполнить это, руки не доходили, но тут выкроил немного времени и вот что получилось.
Написал за пару дней, много не тестировал, но вроде бы, работает нормально, если будут замечания сообщайте, учту.
2
Вложения
Тип файла: rar Сортировка mp3-файлов.rar (4.9 Кб, 4 просмотров)
11.04.2018, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2018, 21:33

Вывод сообщений из программы сценария VBScript (.vbs-файл)
Дано: Win2003Srv До переустановки системы сценарий VBScript выводил сообщения...

Полезные PowerShell скрипты
Здесь публикуются полезные с практической точки зрения сценарии PowerShell или...

Полезные BAT/CMD скрипты
В этой теме выкладываем скрипты, которые часто используются Вами или на Ваш...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru