Kleines Script in VBS erzeugen das bei freiem Speicher ein Programm ausführt
Habe leider nicht so viele Kenntnisse auf dem Gebiet.
Hallo,
wollte ein kleines Script schreiben das den freien Festplattenspeicher z.B. von C ausliest.
Dann soll der Wert als Variable übernommen werden. Mit einer IF Variable >500MB Then goto 1 Else goto 2
1:
Start Programm1
End sub
2:
'Nichts tun
End sub
Dieses Script kommt dann in den Autostart und soll z.b. Updates verhindern wenn kein freier Speicher mehr Frei ist.
Kennt sich da vll. jemand besser aus?
Hallo,
wollte ein kleines Script schreiben das den freien Festplattenspeicher z.B. von C ausliest.
Dann soll der Wert als Variable übernommen werden. Mit einer IF Variable >500MB Then goto 1 Else goto 2
1:
Start Programm1
End sub
2:
'Nichts tun
End sub
Dieses Script kommt dann in den Autostart und soll z.b. Updates verhindern wenn kein freier Speicher mehr Frei ist.
Kennt sich da vll. jemand besser aus?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138686
Url: https://administrator.de/contentid/138686
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
3 Kommentare
Neuester Kommentar
hier mal nen copy&paste von eines meiner login scripte:
on error resume next
dim minFreeSpace
minFreeSpace = 1765
dim fsoObject, sysdrv
haveEnoughFreeSpace = false
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk",,48)
set fsoObject = WScript.CreateObject("Scripting.FileSystemObject")
set sysDrv = fsoObject.GetDrive(fsoObject.GetDriveName("c:"))
For Each objItem in colItems
if (objItem.Name = sysDrv) then
'if (objItem.DriveType = 3) then
'WScript.echo "Drive " & objItem.Caption & " free space: " & FormatNumber(objItem.FreeSpace/(1024^2), 0,0,0,0) & "MB"
if (objItem.FreeSpace/(1024^2) > minFreeSpace) then
haveEnoughFreeSpace = true
else
freespaceleft = round(objItem.FreeSpace/(1024^2),0)
end if
end if
Next
if (haveEnoughFreeSpace = false) then
if SendWarnMsg(freespaceleft ) = false then
msgTxt = " *** Warnung ***" & chr(13)
msgTxt = msgTxt & " Auf dem Systemlaufwerk befindet sich zuwenig freier Speicher. " & chr(13)
msgTxt = msgTxt & " Dies kann zu Fehlverhalten und Abstürzen führen. Bitte unter " & chr(13)
msgTxt = msgTxt & " XXXXXXXXXXXXX anrufen, damit der Fehler behoben werden kann. "
Msgbox msgTxt , 16, "Systemlaufwerk voll"
end if
WScript.Quit(1)
end if
WScript.Quit (0)
function SendWarnMsg(fspace)
on error resume next
set objNetwork = CreateObject("WScript.Network")
strComputerName = objNetwork.Computername
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "PCHEALTH@xxx.xx"
objEmail.To = "xxx@xxx.xx"
objEmail.Subject = strComputerName & " - Systemlaufwerk voll"
objEmail.Textbody = "Restkapazität des Systemlaufwerks auf " & strComputerName & " unter Schwellenwert. Verfügbar: " & fspace
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"xxx.xxx.locall"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
if err then
SendWarnMsg = false
else
SendWarnMsg = true
end if
end function
Hallo Cyberkey!
Oder so:
Gruß Dieter
Oder so:
Const Programm = """C:\Windows\Notepad.Exe""" 'Leerzeichen im Pfad erlaubt
Set Fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
If Round(Fso.GetDrive("C").FreeSpace / (1024^2), 0) > 500 Then WshShell.Run Programm, 1, False 'Size in MB
Gruß Dieter