User Tag List

Ergebnis 1 bis 10 von 10

Thema: VBS Arrays

  1. #1
    Administrator Avatar von BaShoR
    Registriert seit
    18.06.2010
    Ort
    Oberbayern
    Alter
    26
    Beiträge
    4.199
    Blog-Einträge
    1
    Renommee-Modifikator
    20

    VBS Arrays

    Hi,

    hat einer von euch eine Idee wie man nun genau in einem VBS-Skript mit Arrays handhabt? Weil irgendwie muss man ja die dann als Objekt ansprechen, im Internet steht aber nun nichts wirklich genauses (die Sachen die ich gefunden habe waren mir etwas zu vage).

    Code:
    Option Explicit
    Dim objWMIService, objProcess, colProcess
    Dim strComputer, strProcessKill 
    strComputer = "."
    strProcessKill = "'calc.exe'" 
    
    Set  objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _ 
    & strComputer & "\root\cimv2") 
    
    Set colProcess = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where  Name = " & strProcessKill )
    For Each objProcess in colProcess
    objProcess.Terminate()
    Next 
    WSCript.Echo "Just killed process " & strProcessKill _
    & " on " & strComputer
    WScript.Quit
    Ich will strProcessKill als Array welcher dann unten abgearbeitet wird, also dass mehrere Prozesse gekillt werden können.

  2. #2
    Mitglied Avatar von SirK
    Registriert seit
    09.01.2011
    Ort
    Mannheim
    Beiträge
    250
    Renommee-Modifikator
    8
    Bin leider in VBS nicht so bewandert ... bin in C# beheimatet... allerdings
    siehts für mich so aus als müsstest du ja lediglich ein stringarray anlegen oder nicht?
    in c# würd ich das ganze denn einfach mit ner forschleife abarbeiten...
    wenn du die ganzen processnamen einmal an das array übergeben hast kannst die ja eigentlich mit strProcessKill durchlaufen lassen. aber wie gesagt: vbs ist garnit meins

  3. #3
    Mitglied Avatar von novice
    Registriert seit
    18.07.2010
    Beiträge
    313
    Renommee-Modifikator
    9
    Wenn ich es richtig verstanden habe, geht es ihm ja grade um das Implementieren des String-Arrays... Das Füllen per for-Schleife ist wohl kein Problem.
    Den Code oben versteh ich allerdings überhaupt nicht...deshalb bin ich mir jetzt nicht so sicher
    signatur.jpg

  4. #4
    Administrator Avatar von BaShoR
    Registriert seit
    18.06.2010
    Ort
    Oberbayern
    Alter
    26
    Beiträge
    4.199
    Blog-Einträge
    1
    Renommee-Modifikator
    20
    Habs jetzt mal so versucht:
    Option Explicit
    Dim objWMIService, objProcess, colProcess
    Dim strComputer, strProcessKill, strInput
    Dim myArray(1)
    myArray(0) = "'firefox.exe'"
    myArray(1) = "'mspaint.exe'"

    ' Input Box to get name of machine to run the process
    Do
    strComputer = (InputBox(" ComputerName to Run Script",_
    "Computer Name"))
    If strComputer <> "" Then
    strInput = True
    End if
    Loop until strInput = True

    For Each strProcessKill in myArray

    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

    Set colProcess = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = " & strProcessKill )
    For Each objProcess in colProcess
    objProcess.Terminate()
    Next
    WSCript.Echo "Just killed process " & strProcessKill _
    & " on " & strComputer
    WScript.Quit
    Next
    Leider durchläuft er die foreach-Schleife nur einmal, keine Ahnung warum

  5. #5
    Mitglied Avatar von SirK
    Registriert seit
    09.01.2011
    Ort
    Mannheim
    Beiträge
    250
    Renommee-Modifikator
    8
    Also, wie gesagt ich bin VB nicht wirklich fitt... aber mir drängt sich die frage auf warum du eine "foreach" schleife nutzt und keine normale for, wäre vllcht simpler
    in c# würde ich das so machen
    Code:
    for(i = 0, i < myArray.count, i++)
    {
          strProcessKill = myArray[i];
          //und jetzt dein Code und so ;)
    }

  6. #6
    Administrator Avatar von BaShoR
    Registriert seit
    18.06.2010
    Ort
    Oberbayern
    Alter
    26
    Beiträge
    4.199
    Blog-Einträge
    1
    Renommee-Modifikator
    20
    Weil For Each einen Array explizit abarbeitet? Nur mit For wäre das ja eine weitere Abfrage die man nicht braucht

  7. #7
    Mitglied Avatar von SirK
    Registriert seit
    09.01.2011
    Ort
    Mannheim
    Beiträge
    250
    Renommee-Modifikator
    8
    naja ich hatte mit foreach auch immer probleme deswegen binsch bei for hängen geblieben

    wenns nicht hilft habsch nix gesagt

  8. #8
    Foreninventar Avatar von Gu4rdi4n
    Registriert seit
    18.06.2010
    Alter
    29
    Beiträge
    1.688
    Renommee-Modifikator
    17
    Ähm ist das nicht logisch dass er nur einmal durchgeht?

    das ende der for each schleife muss doch gekennzeichnet sein

    du machst wscript.quit vor dem next
    setz es mal danach

  9. #9
    Administrator Avatar von BaShoR
    Registriert seit
    18.06.2010
    Ort
    Oberbayern
    Alter
    26
    Beiträge
    4.199
    Blog-Einträge
    1
    Renommee-Modifikator
    20
    Ach verdammt, danke Gu4rdi4n, das hatte ich übersehen

    Danke
    Geändert von BaShoR (23.06.2011 um 10:48:39 Uhr)

  10. #10
    Foreninventar Avatar von Gu4rdi4n
    Registriert seit
    18.06.2010
    Alter
    29
    Beiträge
    1.688
    Renommee-Modifikator
    17
    Ja ich kenn das

    man konzentriert sich nicht auf die einfachen dinge im quelltext

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
[email protected]