Предыдущая команда, в которой я работаю, создала скрипт vbs, который может автоматически запустить восстановление файла образа Macrium, расположенного на вставленном оптическом носителе. Проблема в том, что файл образа Macrium теперь слишком велик для одного диска, и теперь мы разбили его на 2 отдельных диска, поэтому теперь скрипт vbs работает не так, как должен.
Когда запускается автоматическое восстановление, он должен обнаружить диск 1, который заканчивается на 00.00.mrimg, и знать, что он является частью многодисковой установки, после чего он запрашивает следующий диск, заканчивающийся на 00-01.mrimg.
Я знаю, что это, вероятно, не имеет смысла, особенно если кто-то читает, не знакомый с Macrium. Но я сделаю все возможное, чтобы ответить на любые вопросы.
Я бы обычно подключался и пытался сам разобраться, но я не очень знаком с VBS, и проблема довольно чувствительна ко времени. Буду очень признателен за любую помощь.
Открыл скрипт AutoRestore.vbs, чтобы посмотреть, смогу ли я решить проблему, но я не знаю достаточно о vbs, чтобы ее исправить.
'AutoRestore.vbs
Dim fso, d, dc, s, n , Root, u, racine, folder, folderName, restoreString, foundFile, cdDrive
Dim wipe
Dim objShell
Set objShell = WScript.CreateObject("WScript.shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
foundFile = false
restoreString = "00-00.mrimg"
For Each d in dc
Root = d.Driveletter & ":"
racine = d.Driveletter & ":\"
u= Detect(Root)
if (( u="CD-ROM") ) then
cdDrive = cdDrive & racine & " "
if (d.isReady) then
folderName = racine & "IAS\"
Set folder = fso.GetFolder(folderName)
end if
end if
Next
If IsNull(folder) or IsEmpty(folder) Then
MsgBox "Could not locate IAS folder containing restore image." & vbCrLf & "The following optical disk drives were searched: " & cdDrive & vbCrLf & "Please verify the media is the drive or use manual restore.", 48, "Folder Not Found"
Else
For each file in folder.Files
If instr(1,file.Name, restoreString, vbTextCompare) > 0 Then
return = objShell.run("""%ProgramFiles%\macrium\diskrestore.exe""" & folderName & file.Name & " -r -g -u --targetnum 0 --reboot --eject",1,false)
foundFile = true
Exit For
End If
Next
if (foundFile = false) Then
MsgBox "Cannot locate .mrimg file in " & folderName & "." & vbCrLf & "Please use manual restore.", 48, "File Not Found"
End If
End If
Function Detect(DrivePath)
Dim fso, d, s, t
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(DrivePath)))
Select Case d.DriveType
Case 0: t = "Unknown"
Case 1: t = "Removable"
Case 2: t = "Fixed"
Case 3: t = "Network"
Case 4: t = "CD-ROM"
Case 5: t = "RAM Disk"
End Select
Detect = t
End Function
Ожидаемые результаты: Запустите AutoRestore.vbs, скрипт увидит файл 00-00.mrimg в папке IAS на оптическом носителе, а затем предложит вставить оптический носитель, содержащий файл 00-01.mrimg.
Фактические результаты: Запустите AutoRestore.vbs, затем Macrium сообщает: «Резервное копирование не завершено. Возможно, отсутствует хотя бы один файл».