Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Mehonchegg
30 / 12 / 4
Регистрация: 08.05.2013
Сообщений: 83
02.10.2014, 14:19 0

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

02.10.2014, 14:19. Просмотров 92805. Ответов 32
Метки (Все метки)

Ответ

Еще раз доброго времени суток всем. Хочу поделиться своими скриптами VBS, которые использую для своей работы.
К слову я сисадмин и часто пользуюсь VBS. Возможно некоторые скрипты будут не очень полезны так как их действия легко реализовать через ГПО, но тем не менее мне удобнее использовать скрипт. плюс некоторые легче кому то реализовать в CMD, но тем не менее мне нравится VBS

Кликните здесь для просмотра всего текста
1.Удаленное выключение ПК - очень простой скрипт, но очень полезный в моей работе
Visual Basic
1
2
3
4
5
6
Option Explicit
dim strPC, po
 
Set po = WScript.CreateObject("WScript.Shell")   
strPC = inputbox ("введите имя ПК в сети, который хотите выключить","Выключение ПК")
po.Run "shutdown.exe /s /f /t 0 /m \\"& strPC


Кликните здесь для просмотра всего текста
Проверка ПК на доступность, возвращение имени подключенного пользователя
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
Computer = InputBox("Имя компьютера") 
If (Computer = "") Then
    Wscript.Echo "Укажите имя компьютера"
Else
 
Sub PingPc(Pc)
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
        ExecQuery("select * from Win32_PingStatus where address = '"_
        & Pc & "'")
For Each objStatus In objPing
   If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
wscript.echo "Не могу подключиться"
WScript.Quit
end if
next
End Sub
 
Sub UserPc(Pc)
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" & Pc & "\root\cimv2") 
 
Set colComputer = objWMIService.ExecQuery _ 
("Select * from Win32_ComputerSystem") 
For Each objComputer in colComputer 
If (objComputer.UserName <> "") Then
    Wscript.Echo "Пользователь: "& vbCrLf & objComputer.UserName
Else
    Wscript.Echo "Не авторизировано"
end if
Next
End Sub
 
Call PingPc(Computer)
Call UserPc(Computer)
 
end if

Кликните здесь для просмотра всего текста
Регистрация библиотек
Кладем библиотеку рядом со скриптом, запускаем, вводим имя библиотеки с расширением и нажимаем ОК.
Думаю можно переделать чтоб регистрировал все библиотеки рядом со скриптом или из списка.
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
Option Explicit
 
Dim strDLLShare
Dim strDLLName
 
Dim objSvcsvc
 
 
strDLLShare = "."
strDLLName  = inputbox ("Введите название DLL вместе с расширением", "", "qwe.dll")
 
On Error Resume Next
 
Set objSvcsvc = WScript.CreateObject("Svcsvc.Service")
 
If Err.Number <> 0 Then
    On Error Goto 0
    
    With WScript.CreateObject("Scripting.FileSystemObject")
        If .FileExists(.BuildPath(strDLLShare, strDLLName)) Then
            .CopyFile .BuildPath(strDLLShare, strDLLName), .BuildPath(.GetSpecialFolder(1).Path, "\")
            WScript.CreateObject("WScript.Shell").Run "regsvr32.exe  """ & .BuildPath(.GetSpecialFolder(1).Path, "\" & strDLLName) & """", 0, True
 
Else
 
msgbox "Библиотека не найдена!"
 
        End If
    End With
Else
 
msgbox "Ничего не зарегестрировано!"
    On Error Goto 0
 
End If
 
WScript.Quit 0

Кликните здесь для просмотра всего текста
Запуск_остановка служб на удаленном ПК

Запускаем, вводим имя ПК в сети, вводи название службы: если есть служба проверяет запущена или нет и предлагает запустить или остановить. При вводе знака ? выводит на экран все службы на удаленном ПК (выводит неудобно, в боксе, может кто посмотрит и подскажет как сделать вывод в файл например)
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
93
94
95
96
97
98
99
100
101
Option Explicit 
Dim objWMIService, objItem, objService, objShell 
Dim colListOfServices, Action 
Dim strServiceList, strServiceName, strComputer, strService 
Const TIMEOUT = 2 
 
Set objShell = WScript.CreateObject("WScript.Shell") 
 
'Введите  имя компьютера. 
Do  
       strComputer = InputBox  ("Введите  имя компьютера","Computer Name","djs-klon") 
       If strComputer = " " Then 
          WScript.Quit 
       ElseIf strComputer = " " Then 
          MsgBox "Вы  должны ввести уникальное имя компьютера",vbOkOnly,"Computer Name Required" 
       End If 
Loop Until strComputer <> " " 
 
'сюда  добавить имя сервиса
Do  
    strService = InputBox  ("Ввведите имя сервиса который необходио сотановить или запустить" &_ 
           vbCrLf & "или введите ? для вывода списка всех сервисов" &_ 
           vbCrLf & "имя сервиса чувствительно к регистру","Service Name"," ") 'сюда  добавить имя сервиса
       If strService = "" Then 
          WScript.Quit 
       ElseIf strService = " " Then 
        MsgBox "Вы  должны ввести уникальное имя сервиса",vbOkOnly,"Service Name Required" 
       End If 
    'еслии ввели ? то
    If strService = "?" Then 
        Set objWMIService = GetObject("winmgmts:" _ 
            & "{impersonationLevel=impersonate}!\\" _ 
            & strComputer & "\root\cimv2") 
        Set colListOfServices = objWMIService.ExecQuery _ 
            ("Select * from Win32_Service ")         
        strServiceList = LeftPad("Service Name", 30, Chr(32)) & vbTab & "Service Display Name" 
        strServiceList = strServiceList & vbCrLf & LeftPad("------------", 30, Chr(32)) & vbTab & "--------------------" 
        For Each objService in colListOfServices 
            strServiceName = objService.name 
            strServiceName = LeftPad(strServiceName, 30, Chr(32)) 
            strServiceList = strServiceList & vbCrLf & strServiceName & vbTab & objService.DisplayName 
        Next         
        Set colListOfServices = nothing 
        Set objWMIService = Nothing  
        WScript.Echo strServiceList 
    End If 
Loop Until strService <> " " And strService <> "?" 
strService = "'" & strService & "'" 
 
'проверка статус сервиса и выбор противоположного от статуса действия
'если  выбрано остановить задаётся вопрос  об отключении сервиса 
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" _ 
& strComputer & "\root\cimv2") 
Set colListOfServices = objWMIService.ExecQuery _ 
("Select * from Win32_Service Where Name =" & strService & " ") 
For Each objService in colListOfServices 
    If objService.State = "Running" Then 
        Action = MsgBox("The " & strService & " сервис запущен, Вы хотите остановить сервис?", vbYesNo, "Stop Service?") 
        If Action = vbYes Then 
            objService.StopService() 
            objShell.Popup "Сервис остановлен", TIMEOUT 
            If objService.StartMode = "Auto" Then 
                Action = MsgBox("The " & strService & " сервис остановлен.  Вы хотите  выключить его?", vbYesNo, "Disable Service?") 
                If Action = vbYes Then 
                    errReturnCode = objService.Change( , , , , "Disabled")  
                    objShell.Popup "Сервис отключён", TIMEOUT 
                End If 
            End If 
        End If 
    ElseIf objService.State = "Stopped" Then 
        If objService.StartMode = "Disabled" Then 
            MsgBox "The " & strService & " сервис отключён. Запуск из данного скрипта  не возможен. Обратитесь в  Кабинет 203",vbOkOnly,"Service Disabled" 
        Else 
            Action = MsgBox("The " & strService & " сервес остановлен. Вы хотите запустить сервис?", vbYesNo,"Start Service?") 
            If Action = vbYes Then 
                objService.StartService() 
                objShell.Popup "Сервес запущен.", TIMEOUT 
            End If 
        End If 
    Else 
        objShell.Popup "Сервис не обнаружен, проверьте правильность введённого имени, для вывода вего списка сервисов  введите знак ?", TIMEOUT 
    End If 
Next  
 
set objShell = Nothing 
Set objService = Nothing 
Set objItem = Nothing 
Set objWMIService = Nothing 
 
WScript.Quit 
 
Function LeftPad(strData, intLen, chrPad) 
    Dim intPadLen 
    intPadLen = intLen - Len(strData) 
    If intPadLen > 0 Then 
         LeftPad = String(intPadLen, chrPad) & strData 
    Else 
         LeftPad = strData 
    End If 
End Function

Кликните здесь для просмотра всего текста
Добавление сайта в надежные узлы
Очень полезен в моей работе так как много приходит мануалов из москвы по которым необходимо что либо настроить пользователям. Вот для удобства сделал себе такой скрипт - ненужно запускать или завершать IE - все происходит через реестр. (Вариаций на эту тему очень много, например есть у меня так же готовый скрипт автоматически настраивающий параметры прокси и надежные узлы и блокировку всплывающих окон и параметры интрасети одним нажатием. Использую его при установке нового ПК. Дополню тем что по сути можно настроить это через ГПО - но опять же для оперативности пользуюсь скриптом)
Собственно скрипт - запускаем вводим сайт (добавил проверку ввели ли вы доменную зону чтоб всякого в реестр не поподало) жмем окей. Скрипт будет продолжаться пока не нажмете отмену ну или пока строка не будет пустая собственно что и возвращает кнопка ОТМЕНА
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
Option Explicit
 
dim strABC, s
 
Do
strABC = Inputbox("Введите адрес сайта для добавления его в Надежные узлы.","Адрес сайта")
s= UzlIb(strABC)
Loop  Until InStr(1, strABC ) = 1
 
Function UzlIb(strABC)
 
dim sh, key, strPath, strA1, strA2, strA3, strA4, strA5
Set Sh = CreateObject("WScript.Shell")
 
strA1 = ".ru"
strA2 = ".com"
strA3 = ".org"
strA4 = ".net"
strA5 = ""
key =  "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\"
 
strPath = key & strABC
 
 if UBound(Split(strABC, strA1 ))>0 then
Sh.RegWrite strPath &"\\", "", "REG_SZ"
 
Sh.RegWrite strPath &"\\https", 2,"REG_DWORD"
 
Sh.RegWrite strPath &"\\http", 2,"REG_DWORD"
 
elseif UBound(Split(strABC, strA2 ))>0 then 
Sh.RegWrite strPath &"\\", "", "REG_SZ"
 
Sh.RegWrite strPath &"\\https", 2,"REG_DWORD"
 
Sh.RegWrite strPath &"\\http", 2,"REG_DWORD"
 
elseif UBound(Split(strABC, strA3 ))>0 then 
Sh.RegWrite strPath &"\\", "", "REG_SZ"
 
Sh.RegWrite strPath &"\\https", 2,"REG_DWORD"
 
Sh.RegWrite strPath &"\\http", 2,"REG_DWORD"
 
elseif UBound(Split(strABC, strA4 ))>0 then 
Sh.RegWrite strPath &"\\", "", "REG_SZ"
 
Sh.RegWrite strPath &"\\https", 2,"REG_DWORD"
 
Sh.RegWrite strPath &"\\http", 2,"REG_DWORD"
 
 
elseif strABC = "" then 
 
msgbox "Пустая строка! Скрипт Завершен!", vbInformation
 
else
 
msgbox "Сайт не содержит доменные зоны:" & vbCrLf & strA1 & chr(160) &  strA2 & chr(160) & strA3 & chr(160) & strA4
 
end if
 
end Function


Если будет появляться у меня что нибудь полезное - обязательно выложу сюда.

Вернуться к обсуждению:
Полезные VBS скрипты и программы по работе с ними
3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2014, 14:19
Готовые ответы и решения:

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

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

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

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

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

32
Другие темы раздела
VBScript/JScript Кто нибудь работал с библиотекой ChilkatFTP? http://www.cyberforum.ru/vbscript-wsh/thread668991.html
Использую данную библиотеку для получения файлов из файл-сервера FTP. Подключаюсь 1 раз, но когда работаю с директориями (меняю каталог, возвращаюсь в корневой каталог) создаются все новые и новые...
VBScript/JScript Как в VBS скрипте создать задание в планировщике задач Как в VBS скрипте создать задание в планировщике задач, которое бы запускало файл каждые несколько минут? http://www.cyberforum.ru/vbscript-wsh/thread665572.html
VBScript/JScript Запуск скрипта из контекстного меню
В общем ситуация такая: решил написать скрипт, чтобы который выполнялся из контекстного меню. Пусть будет: msgBox "Hello World" Cоздал разделыы: "HKEY_CLASSES_ROOT\Folder\shell\myscr", ...
VBScript/JScript Проверить наличие папки с условием
ззззздарова! пытаюсь слепить код который проверяет наличие папки , вот че я нагородил, при проверке то вообще молчит то закидывает ошибками. код достаточно мудреный: 1: сначала он должен определить...
VBScript/JScript VBS и интернет http://www.cyberforum.ru/vbscript-wsh/thread659937.html
зззззздарова. нужен vbs код который запустит указанный в коде файл при коннекте с инетом.
VBScript/JScript Работа с реестром ззззздарова! буду благодарен тому кто подкинет vbs код, который создаст раздел в реестре по адресу HKLM\SOFTWARE. с возможностью создания ветки разделов, пр(HKLM\SOFTWARE\Новый раздел #1\Новый раздел... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru