Вот одно из возможных решений, которое не требует массивов в вашем VBScript. Он выведет переменную TS с суффиксом номера диска (начиная с 0 или с того, что вы установили iCount
для запуска).
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim objWMIService, objItem, colItems, strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
Set env = CreateObject("Microsoft.SMS.TSEnvironment")
iCount = 0
For Each objItem in colItems
env("DriveIndex" & iCount) = objItem.Index
env("DriveModel" & iCount) = objItem.Model
env("DriveBytes" & iCount) = objItem.Size
iCount = iCount + 1
Next
Итак, если у вас есть 3 диска, в SCCM вы получите нечто подобное:
DriveIndex0 = TheIndexOf0
DriveModel0 = TheModelOf0
DriveSize0 = TheSizeOf0
DriveIndex1 = TheIndexOf1
DriveModel1 = TheModelOf1
DriveSize1 = TheSizeOf1
DriveIndex2 = TheIndexOf2
DriveModel2 = TheModelOf2
DriveSize2 = TheSizeOf2
Затем вы можете ссылаться на каждую переменную позже в TS так же, как обычно. %DriveIndex0%
, %DriveIndex1%
и т. Д.