=========Звиняйте за длину, есть такой крипт (см ниже), который всякому входящему в домен прописывает дефраг всех дисков (втч и CD\DVD)
Собственно, сам я скриптовать в vbs пошти нимагу, и этот скрипт для меня почти как темный лес. обнаружил, что время старта задачи все время разное и то, что он все дисковые устройства бросает - по задаче на диск...
приблуда, ИМХО, полезная, но хотелось бы, чтобы диски проставлялись только локальные и чтобы на одно и то же время. Гляньте, пожалста, акулы скриптографии
'автоматом загоняет дефраг дисковых устройств в планировщик. на рандомное время, сцуко такое!!!
Option Explicit
Dim oNet, objWMIService, objFSO, Drives, Drive, atstatus, starttime
Set oNet = CreateObject("WScript.Network")
If not LCase(oNet.ComputerName) = LCase("Server-trade") Then
Set objWMIService = GetObject("winmgmts:\\" & oNet.ComputerName & "\root\CIMV2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Drives = objFSO.Drives
For Each drive In Drives
If Drive.DriveType = 2 Then
atstatus = chkStat(Drive.DriveLetter)
If atstatus = 0 Then
starttime = randomTime
setatjob Drive.DriveLetter, starttime
Else
End If
Else
End If
Next
Else
End If
'************************
Function setatjob(Drive, startTime)
'************************
Dim objShare, objInParam
Set objShare = objWMIService.Get("Win32_ScheduledJob")
Set objInParam = objShare.Methods_("Create").inParameters.SpawnInstance_()
objInParam.Properties_.Item("Command") = "defrag " & Drive & ": -f -v"
objInParam.Properties_.Item("DaysOfWeek") = "16"
objInParam.Properties_.Item("InteractWithDesktop") = False
objInParam.Properties_.Item("RunRepeatedly") = True
objInParam.Properties_.Item("StartTime") = "********" & startTime & "0000.000000+660"
Set setAtJob = objWMIService.ExecMethod("Win32_ScheduledJob", "Create", objInParam)
End Function
'************************
'************************
Function chkStat(Drive)
'************************
Dim status, objItem, colItems
status = 0
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ScheduledJob")
For Each objItem in colItems
If (objItem.Command = "defrag " & Drive & ": -f -v") Then
status = status + 1
Else
status = status + 0
End If
Next
chkStat = status
End Function
'************************
'************************
Function randomTime()
randomize
randomTime = int (17 * rND)
If (randomTime < 9) Then
randomTime = randomTime + 9
End If
If (randomTime > 17) Then
If (randomTime-17 > 9) Then
randomTime = randomTime - 17
Else
randomTime = randomTime - 8
End If
End If
If randomTime < 10 Then
randomTime = "0" & randomTime
End If
End Function
'************************