Jump to content

bergesel

Members
  • Gesamte Inhalte

    372
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von bergesel

  1. Hallo zusammen

     

    ich habe 2 vb scripts die habe ich nun zusammen gefasst. nun sollten die informationen in 2 tabellen geschrieben werden. nur habe ich das problem das er in die 2. tabelle nicht schreiben kann und mir bei db.execute ein fehler meldet bei debuggen. die varaiablen werte werden aber richtig angezeigt.

     

    SQL = "INSERT INTO wartung (day, year, dayofweek, hour, minute, month, quarter, second, weekinmonth, computername, csv,cdefrag,ddefrag,edefrag,chkdskc,hersteller,versionnr,stamp)"
       SQL = SQL & "values ('" & Day & "','" & Year & "','" & week & "','" & Hour & "','" & Minute & "','" & Month & _
    "','" & quarter & "','" & Second & "','" & weekinmonth & "','" & computername & "','" & csv & "','" & _
    strErgebnisc & "','" & strErgebnisd & "','" & strErgebnise & "','" & wert0 & "','" & hersteller & "','" & versionnr & "','" & stamp & "');"
       db.Execute(SQL)
    '**********************************************************************************************************************
    SQL = "INSERT INTO " & strComputer & "  (Category,ComputerNameEV,Eventcode,MessageCut,RecordNumber,SourceName,TimeWritten,nType,nUser,appwert,secwert,syswert,stamp)"
     SQL = SQL & "values ('" & Category & "','" & ComputerNameEV & "','" & EventCode & "','" & MessageCut & "','" & RecordNumber & "','" & SourceName & "','" & TimeWritten & "','" & nType & "','" & nUser & "','" & appwert & "','" & secwert & "','" & syswert & "','" & stamp & "');"
     db.Execute(SQL) hier stoppt er!!!
    
    

     

    ich bin mir sicher das dies sicherlich besser zusammen gefasst werden kann als ich dies hier gemacht habe. :) nur meine sql kenntnisse sind layenhaft.

     

    danke für tips oder verweise

    gruss bergesel

  2. Hallo zusammen

     

    gerne möchte ich die aktuelle definitionFile version von symantec AV auslesen um zu sehen ob dies am System auch gemacht wird. Dies läuft bei uns über einen Parent Server. Habe aber kein Zugriff auf dieses System. Darum möchte ich dies mit WMI abfrage lösen. Mit diesem script habe ich leider nur die Version der Software aber eben nicht von definitionfile. Weis jemand wie ich dies trotzdem auslesen kann? (Datum)

    Ich habe gesehen, dass Symantec AV ein eigenes eventlog dafür hat.

     

     'Antvir Software auslesen und Version
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery( _
       "SELECT * FROM Win32_Product WHERE Caption = 'Symantec AntiVirus'",,48)
    Dim hersteller
    Dim versionnr
    
    For Each objItem In colItems
       hersteller = objItem.Caption
       versionnr  = objItem.Version
    Next
    

     

    vielen dank für Tips

  3. Hallo zusammen

     

    mein vorgänger hat an einem Lokalen System, die Gruppenrichtlinie lokal definiert. Wier kann ich dies wieder zurück setzten. leider habe ich z.B keine rechte mouse taste mehr oder bei programme sind die meisten icons weg. auch bei dem lokalen admin. wie kann ich dies wieder zurücksetzen. die files habe ich gefunden unter system32\grouppolicy

     

    wie kann ich es wieder "jungfreulich machen"??

     

    danke für hilfe

     

    gruss

  4. Das Problem waren ja die hochkommas die das event an sql schickt und sql meint mit diesen zeichen es wird zur nächsten spalte gesprungen.

     

    aber da frag ich mich doch wieso dies nicht abgefangen wird(microsoft). es gibt ja noch andere sonderzeichen die das event an sql schickt.

    da versteh ich nicht wieso er dann bei diesen zeichen * & " nicht auch schwierig tut welche auch steuerungszeichen sind.

     

    ist nur noch für mein verständnis. und wen es jemand auch nicht weis :)

  5. @cybquest

     

    danke habe ich schon versucht und musste feststellen es liegt nicht an dem script.

    ich habe mich mit dem softwarehersteller kurz geschlossen. nun habe ich ihm meine sql tabellen wie ich sie mir erstellt habe mit den scripts usw. zu gestellt. er hat dies auf seinem system getestet und musste "leider" :) feststellen, dass es bei ihm problemlos funktioniert. nun weis ich das es an meinem system liegt. jemand eine idee was an meinem system faul sein kann? was kann ich prüfen, testen. eventlogs habe ich mir auch schon durchgesehen. auch im ordner C:\WINDOWS\system32\wbem\logs habe ich nach den fehler gegooglet. bin ratlos was ich auf dem server konfig muss damit dies funzt!

     

    danke für tipps und anregungen

     

    gruss bergesel

  6. Hallo zusammen

     

    wollte euch nur noch meine lösung presentieren ;-)

     

    On Error Resume Next
    strComputer = "[%ComputerName%]"
    
    'strComputer = "."
    
    
     Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
     Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem",,48)
     For Each objItem in colItems
       'Variablen setzen
       dim ComputerName
    
       'Domäne: DNSHostname, sonst Name
       on error resume next
       ComputerName = objItem.DNSHostName
       if err > 0 then ComputerName = objItem.Name
       on error goto 0
       'Ende der Hostabfrage
       'msgbox computername
    next
    
    Set objWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colRetrievedEvents = objWMIService.ExecQuery _
       ("Select * from Win32_NTLogEvent")
    
    For Each objEvent in colRetrievedEvents
    
    dim Category
    dim ComputerNameEV
    dim EventCode
    dim Message
    dim RecordNumber
    dim SourceName
    dim TimeWritten
    dim nType
    dim nUser
    
    Category = objEvent.Category
    ComputerNameEV = objEvent.ComputerName
    EventCode = objEvent.EventCode
    Message = objEvent.Message
    RecordNumber = objEvent.RecordNumber
    SourceName = objEvent.SourceName
    TimeWritten = objEvent.TimeWritten
    nType = objEvent.Type
    nUser = objEvent.User
    
    
    Dim MessageFull
    Dim MessageCut
    
    MessageFull = Message
    'MessageCut = Replace(MessageFull,"'","""")
    'Message = MessageCut
    
    if len(MessageFull) > 0 then 
     MessageCut = Replace(MessageFull,"'","!")
    else
     MessageCut = ""
    end if
    
    
    Set db = CreateObject("ADODB.Connection")
    db.Open("Provider=SQLOLEDB.1;Data Source=meinserver;Trusted_Connection=Yes;Initial Catalog=wartung;User ID=sa;Password=xxxx;")
    sql = "use wartung;"
    db.Execute(sql)         
    
    
    sql = "INSERT INTO " & ComputerName & "  (Category,ComputerNameEV,Eventcode,MessageCut,RecordNumber,SourceName,TimeWritten,nType,nUser)"
     sql = sql & "values ('" & Category & "','" & ComputerNameEV & "','" & EventCode & "','" & MessageCut & "','" & RecordNumber & "','" & SourceName & "','" & TimeWritten & "','" & nType & "','" & nUser & "');"
     db.Execute(sql)
     db.close
    
    Next         hier!!!!!????
    
    

     

    nun bekomm ich aber immer noch ne meldung und die ist am schluss bei next trotz befehl im script on error resume next wie das?:

     

    error:0x80041001

    code:80041001

     

    google suche bringt mir nicht wirklich erklärende hilfe für den code.

     

    aber ansonsten funktionierts ja, stört mich einfach! :)

  7. @nils

     

    habe nun auch auf "." gewechselt um den gleichen stand zu haben.

    nun bekomme ich den fehler incorrect syntax near '('. line 40

     

    und wen ich nun noch logparser dazu nehme hab ich gar kein plan mehr und kann sicherlich dann die domäne wechseln :)

     

    @cybquest dies habe ich angepasst oder stimmte schon :)

     

    ist es möglich das im eventlog(massage) eine datei so gekennzeichnet ist z.B 'xxx.dll' das diese hochkomas den fehler zum schreiben in sql den fehler verursachen?

     

    das script schreibt halt nur teilweise und die spalte nUser bleibt leer sollte auch nicht sein.

     

    gruss

  8. @Alle

     

    gut dann entschuldige ich mich bei nils hoch-offiziell, für mein überreagiertes verhalten.

    ..habe mal die msgbox eingebaut. so wie es aussieht bleibt er bei nuser mit diesem fehler hängen: invalid use of null

     

    strComputer = "[%ComputerName%]"
    
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colRetrievedEvents = objWMIService.ExecQuery _
    ("Select * from Win32_NTLogEvent")
    
    For Each objEvent in colRetrievedEvents
    
    dim Category
    dim ComputerNameEV
    dim EventCode
    dim Message
    dim RecordNumber
    dim SourceName
    dim TimeWritten
    dim nType
    dim nUser
    
    Category = objEvent.Category
    ComputerNameEV = objEvent.ComputerName
    EventCode = objEvent.EventCode
    Message = objEvent.Message
    RecordNumber = objEvent.RecordNumber
    SourceName = objEvent.SourceName
    TimeWritten = objEvent.TimeWritten
    nType = objEvent.Type
    nUser = objEvent.User     hier bricht er ab mit schreiben und bringt die meldung invalid use of null
    
    Set db = CreateObject("ADODB.Connection")
    db.Open("Provider=SQLOLEDB.1;Data Source=server; Trusted_Connection=Yes;User ID=sa;Password=xxxx;")
    sql = "use wartung;"
    db.Execute(sql)
    
     sql = "INSERT INTO " & strcomputer & "(Category,ComputerNameEV,Eventcode,Message,RecordNumber,SourceName,TimeWritten,nType,nUser)"
     sql = sql & "values ('" & Category & "','" & ComputerNameEV & "','" & EventCode & "','" & Message & "','" & RecordNumber & "','" & SourceName & "','" & TimeWritten & "','" & nType & "','" & nUser & "');"
     db.Execute(sql)
     db.close
    next
    
    

  9. @cybquest

     

    die variable computerName funktioniert und schreibt auch in die entsprechende computertabelle.

    bricht aber danach mit dem fehler error: incorrect syntax near 's'

    code 80040e14 wieder ab mit schreiben in die tabelle.

     

    @Dr.Melzer

    Zitat von Nils: Kann es sein, dass Scripting nicht deine Domäne ist? Dann würde ich an deiner Stelle nicht unbedingt die Eventlogs durch ein Skript löschen lassen ...

     

    hier wird mir nicht ans bein gepinkelt Dr. Melzer?

    wen ich doch hier meine frage stelle für dies ist doch dieses forum da oder?

    wen ich es ja wüsste würd ich hier ja nicht rein schreiben oder? also was soll dan dieser komentar von nils. ich bin hier nicht seit 1 monat dabei und hatte noch nie probleme mit user von hier! neben bei erwähnt

    gruss bergesel

  10. @cybquest

     

    du hast doch mal mein script auch schon angepasst mit zeit und defrag usw. so falls du dich noch erinnerst.

    dort ist als strcomputer auch "[%computername%]" und dies funktioniert :)

     

    richtiger pc name

     

    habe erstmals den fehler gefunden wieso der nicht den pc namen richtig anzeigt. dies muss richtig geschrieben werden so:"[%ComputerName%]" und nicht so "[%computername%]" :)

  11. betreff trcomputer ist copy/paste fehler. danke trotzdem. ist aber richtig im script!

     

    was "[%computername%]" betrifft hast du leider keine ahnung! dies ist ein eine variable aus einer software. ist wie "." alles klar?

    behaupte nur sachen was du auch wirklich weist!

     

    deine dumme bemerkungen kannst du dir sparen.

  12. ok danke werd ich mal testen

     

    danke

    bekomme immer noch die selbe meldung:

    Script: c:\document and settings\meinprofil\localsettings\temp\2\meinclientsc.vbs

    Line:3

    char:1

    error: the remote server machine does not exist or is unavailable: 'GetObject'

    code:800A01CE

    Source: Microsoft VBScript runtime error

    ...ist es möglich das ich mit den tabellen ein durcheinander habe in den scripts?

    ich mein jetzt nicht, dass die spalten nicht übereinstimmen sondern ob die anweisung in die spezifischen tabellen nicht korrekt sind. das er vielleicht mit der variable strcomputer trotzdem nicht "weis" zu welcher tabelle er es einfügen soll?

  13. halli hallo

     

    dieses script erstellt mir im SQL Tabellen von CLients. Und in diese Tabellen sollten dann die entsprechenden eventlogs abgelegt werden.

    trComputer = "[%computername%]"
    
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    
    
    set db = CreateObject("ADODB.Connection")
    db.Open("Provider=SQLOLEDB.1;Data Source=Server;UID=sa;PWD=xxxx")
    sql = "use wartung;"
    db.Execute(sql)
    
    sql=  "IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'" & strComputer & "') "
    sql=sql & "AND OBJECTPROPERTY(id, N'IsUserTable') = 1) "
    sql=sql & "CREATE TABLE " & strComputer & " (Category int NOT NULL , ComputerNameEV varchar (30) NULL , Eventcode varchar (30) NULL , Message varchar (30) NULL ,"
    sql=sql & "Recordnumber int NULL , Sourcename int NULL ,"
    sql=sql & "timewritten int NULL , ntype int NULL , nuser int NULL );"
    
    db.Execute (sql)
    db.close
    

     

    somit habe ich von allen PC Systemen in der DB Wartung eine Tabelle mit entsprechenden clients vorhanden. soweit so gut...nun möchte ich die eventlogs entsprechend in SQL Tabellen der Systeme speichern und danach das event leeren.

     

    für das event zu schreiben habe ich folgendes script. bitte verschohnt mich damit, dass man die events im log bleiben sollen. ich will es so ;-)

    strComputer = "[%ComputerName%]"
    
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colRetrievedEvents = objWMIService.ExecQuery _
    ("Select * from Win32_NTLogEvent")
    
    For Each objEvent in colRetrievedEvents
    
    dim Category
    dim ComputerNameEV
    dim EventCode
    dim Message
    dim RecordNumber
    dim SourceName
    dim TimeWritten
    dim nType
    dim nUser
    
    Category = objEvent.Category
    ComputerNameEV = objEvent.ComputerName
    EventCode = objEvent.EventCode
    Message = objEvent.Message
    RecordNumber = objEvent.RecordNumber
    SourceName = objEvent.SourceName
    TimeWritten = objEvent.TimeWritten
    nType = objEvent.Type
    nUser = objEvent.User
    
    Set db = CreateObject("ADODB.Connection")
    db.Open("Provider=SQLOLEDB.1;Data Source=Server; Trusted_Connection=Yes;Initial Catalog=wartung;User ID=sa;Password=xxx;")
    sql = "use wartung;"
    db.Execute(sql)
    'set rs = 
    
     sql = "INSERT INTO strcomputer(Category,ComputerNameEV,Eventcode,Message,RecordNumber,SourceName,TimeWritten,nType,nUser)"
     sql = sql & "values ('" & Category & "','" & ComputerNameEV & "','" & EventCode & "','" & Message & "','" & RecordNumber & "','" & SourceName & "','" & TimeWritten & "','" & nType & "','" & nUser & "');"
     db.Execute(sql)
    Next
    'db.close
    

     

    nur bei insert into strcomputer versteht er das nicht ganz :)

    wo ist mein problem?

     

    vielen dank für hilfe!

  14. Hallo zusammen

     

    habe ja nun mein script soweit fertig, speziellen dank an cypquest der mir sehr geholfen hat. :)

     

    Ich habe eine Software die Inventarisiert, Patchmanagment, Software verteilung usw. macht. Die Software heisst Deskcenter Suite. In dieser software kann ich scripts auf Inventarisierte clients aulösen. Nun dies geht aber leider nicht. in diesen optionen kann ich ein haken setzten der das script remote ausführt.

    http://www.deskcenter-solutions.net/pics_content/DeskCenter_System_Management_vbscript_1.jpg

     

    http://www.deskcenter-solutions.net/pics_content/DeskCenter_Systemuebersicht_1.jpg

     

    der hersteller meint es sollte eigentlich ohne remote funktion funktionieren, was aber gar nicht geht. wen ich remote aktiviere sehe ich auf dem client wscript.exe laufen nur passiert nix.

    auch überprüfte ich die standard scripts der firma um evtl. den fehler finden zu können. was der unterschied ausmachte sind strcomputer = "." und firma strcomputer = "[%computername%]". habe dies mit beiden versucht! bin überall admin!

    jemand eine idee wie ich das script auf dem client zum laufen bringe?

    danke für eure ideen

     

    gruss bergesel

    und übrigens wen ich das script direkt auf dem client ausführe funktioniert dies auch wunderbar und schreibt mir in die sql DB.

×
×
  • Neu erstellen...