Datenpakete-Skript

  • Hallo,
    ich hab ein kleines Problem. Und zwar möchte ich ein Skript haben, dass bei Unterlaufen einer bestimmten Trafficgrenze,
    also bspw. 15kb/s ein eine Aktion ausführt.
    Gibt es dafür irgendwelche Befehle?
    Danke!

  • Hallo,
    die WMI ist dein Freund. Ein viel besserer Freund ist das AutoIt Script_O_Matic, das erstellt dir sogar mit 2-3 Mausklicks komplette Scripte.

    Spoiler anzeigen
    [autoit]

    $colItems = ""
    $strComputer = "localhost"

    [/autoit] [autoit][/autoit] [autoit]

    $Output=""
    $Output &= "Computer: " & $strComputer & @CRLF
    $Output &= "==========================================" & @CRLF
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    [/autoit] [autoit][/autoit] [autoit]

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output &= "BytesReceivedPersec: " & $objItem.BytesReceivedPersec & @CRLF
    $Output &= "BytesSentPersec: " & $objItem.BytesSentPersec & @CRLF
    $Output &= "BytesTotalPersec: " & $objItem.BytesTotalPersec & @CRLF
    $Output &= "Caption: " & $objItem.Caption & @CRLF
    $Output &= "CurrentBandwidth: " & $objItem.CurrentBandwidth & @CRLF
    $Output &= "Description: " & $objItem.Description & @CRLF
    $Output &= "Frequency_Object: " & $objItem.Frequency_Object & @CRLF
    $Output &= "Frequency_PerfTime: " & $objItem.Frequency_PerfTime & @CRLF
    $Output &= "Frequency_Sys100NS: " & $objItem.Frequency_Sys100NS & @CRLF
    $Output &= "Name: " & $objItem.Name & @CRLF
    $Output &= "OutputQueueLength: " & $objItem.OutputQueueLength & @CRLF
    $Output &= "PacketsOutboundDiscarded: " & $objItem.PacketsOutboundDiscarded & @CRLF
    $Output &= "PacketsOutboundErrors: " & $objItem.PacketsOutboundErrors & @CRLF
    $Output &= "PacketsPersec: " & $objItem.PacketsPersec & @CRLF
    $Output &= "PacketsReceivedDiscarded: " & $objItem.PacketsReceivedDiscarded & @CRLF
    $Output &= "PacketsReceivedErrors: " & $objItem.PacketsReceivedErrors & @CRLF
    $Output &= "PacketsReceivedNonUnicastPersec: " & $objItem.PacketsReceivedNonUnicastPersec & @CRLF
    $Output &= "PacketsReceivedPersec: " & $objItem.PacketsReceivedPersec & @CRLF
    $Output &= "PacketsReceivedUnicastPersec: " & $objItem.PacketsReceivedUnicastPersec & @CRLF
    $Output &= "PacketsReceivedUnknown: " & $objItem.PacketsReceivedUnknown & @CRLF
    $Output &= "PacketsSentNonUnicastPersec: " & $objItem.PacketsSentNonUnicastPersec & @CRLF
    $Output &= "PacketsSentPersec: " & $objItem.PacketsSentPersec & @CRLF
    $Output &= "PacketsSentUnicastPersec: " & $objItem.PacketsSentUnicastPersec & @CRLF
    $Output &= "Timestamp_Object: " & $objItem.Timestamp_Object & @CRLF
    $Output &= "Timestamp_PerfTime: " & $objItem.Timestamp_PerfTime & @CRLF
    $Output &= "Timestamp_Sys100NS: " & $objItem.Timestamp_Sys100NS & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_PerfRawData_Tcpip_NetworkInterface" )
    Endif

    [/autoit]

    oder info bzgl alle Netzwerkadapter

    Spoiler anzeigen
    [autoit]

    ; Generated by AutoIt Scriptomatic December 05, 2009

    [/autoit] [autoit][/autoit] [autoit]

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

    [/autoit] [autoit][/autoit] [autoit]

    $Output=""
    $Output &= "Computer: " & $strComputer & @CRLF
    $Output &= "==========================================" & @CRLF
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    [/autoit] [autoit][/autoit] [autoit]

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output &= "AdapterType: " & $objItem.AdapterType & @CRLF
    $Output &= "AdapterTypeId: " & $objItem.AdapterTypeId & @CRLF
    $Output &= "AutoSense: " & $objItem.AutoSense & @CRLF
    $Output &= "Availability: " & $objItem.Availability & @CRLF
    $Output &= "Caption: " & $objItem.Caption & @CRLF
    $Output &= "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
    $Output &= "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
    $Output &= "CreationClassName: " & $objItem.CreationClassName & @CRLF
    $Output &= "Description: " & $objItem.Description & @CRLF
    $Output &= "DeviceID: " & $objItem.DeviceID & @CRLF
    $Output &= "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
    $Output &= "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
    $Output &= "Index: " & $objItem.Index & @CRLF
    $Output &= "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    $Output &= "Installed: " & $objItem.Installed & @CRLF
    $Output &= "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
    $Output &= "MACAddress: " & $objItem.MACAddress & @CRLF
    $Output &= "Manufacturer: " & $objItem.Manufacturer & @CRLF
    $Output &= "MaxNumberControlled: " & $objItem.MaxNumberControlled & @CRLF
    $Output &= "MaxSpeed: " & $objItem.MaxSpeed & @CRLF
    $Output &= "Name: " & $objItem.Name & @CRLF
    $Output &= "NetConnectionID: " & $objItem.NetConnectionID & @CRLF
    $Output &= "NetConnectionStatus: " & $objItem.NetConnectionStatus & @CRLF
    $strNetworkAddresses = $objItem.NetworkAddresses(0)
    $Output &= "NetworkAddresses: " & $strNetworkAddresses & @CRLF
    $Output &= "PermanentAddress: " & $objItem.PermanentAddress & @CRLF
    $Output &= "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
    $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
    $Output &= "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
    $Output &= "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
    $Output &= "ProductName: " & $objItem.ProductName & @CRLF
    $Output &= "ServiceName: " & $objItem.ServiceName & @CRLF
    $Output &= "Speed: " & $objItem.Speed & @CRLF
    $Output &= "Status: " & $objItem.Status & @CRLF
    $Output &= "StatusInfo: " & $objItem.StatusInfo & @CRLF
    $Output &= "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
    $Output &= "SystemName: " & $objItem.SystemName & @CRLF
    $Output &= "TimeOfLastReset: " & WMIDateStringToDate($objItem.TimeOfLastReset) & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_NetworkAdapter" )
    Endif

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func WMIDateStringToDate($dtmDate)

    [/autoit] [autoit][/autoit] [autoit]

    Return (StringMid($dtmDate, 5, 2) & "/" & _
    StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
    & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
    EndFunc

    [/autoit]