Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB Script mit Scriptomat von MS erstellt

Mitglied: JAKU2007

JAKU2007 (Level 1) - Jetzt verbinden

21.02.2007, aktualisiert 22.02.2007, 4719 Aufrufe, 4 Kommentare

Hallo,

ich mit dem Tool Scriptomatic von MS ein VBS Script erstellt welches mir Informationen von Servern auslesen, sowie nachschauen ob im Eventlog Fehlercodes sind. Da ich diese INformationen mehrmals im Monat ziehen will. Momentan wird es als HTML Output angezeigt.
Langfristig möchte ich es als XML Fiel ablegen und die INformationen weiter verarbeiten
Wenn ich das Script über run starte macht es die Aufgaben einwandfrei. Ich habe es dann als VBS gespeichert. Rufe ich es dann über einen Doppelklick auf, bekomme ich nur einzelne Fenster mit den Informationen und dem OK Button angezeigt.
Wie kann ich es aufrufen um den gewünschten Effekt zu erzielen. Am liebsten wäre es mir es als ein exe File abzu speichern.
Habe zum erstenmal ein solches Script erstellt.

Wäre toll wenn einer eine Lösung dafür hätte.

Anbei das Script

01.
 
02.
On Error Resume Next
03.
 
04.
'Auslesen der HW Informationen und Schreiben einer HTML Datei
05.
'----------------------------
06.
 
07.
strComputer = "."
08.
 
09.
Public Regpfad
10.
Dim Client
11.
Dim Clientname
12.
Dim WindowsVersion
13.
Dim WSHEnvOS
14.
Dim WSHEnvPrg
15.
Dim fs
16.
Dim fso
17.
 
18.
Set WSHShell = WScript.CreateObject("WScript.Shell")
19.
Set WSHEnvOS = WSHShell.Environment("Process")
20.
Set WSHEnvPrg   = WSHShell.Environment("Process")
21.
set fs = CreateObject ("Scripting.FileSystemObject")
22.
Set WSHEnvPrg   = WSHShell.Environment("Process")
23.
set fs = CreateObject ("Scripting.FileSystemObject")
24.
 
25.
OS = WshEnvPrg("OS")
26.
if OS="Windows_NT" then
27.
 
28.
Client = WshEnvOS("COMPUTERNAME") 
29.
Set fso = CreateObject("Scripting.FileSystemObject")
30.
set WshShell = CreateObject("WScript.Shell")
31.
 
32.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProductName"
33.
WindowsVersion = WshShell.RegRead(RegPfad)
34.
 
35.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CSDVersion"
36.
ServicePack = WshShell.RegRead(RegPfad)
37.
 
38.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SystemRoot"
39.
Systemroot = WshShell.RegRead(RegPfad)
40.
 
41.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Version"
42.
IeVs = Wshshell.RegRead(RegPfad)
43.
'Wscript.Echo IeVs
44.
 
45.
Windowsversion=Windowsversion & ", " & ServicePack
46.
end if
47.
 
48.
if not OS="Windows_NT" then
49.
Set fso = CreateObject("Scripting.FileSystemObject")
50.
set WshShell = CreateObject("WScript.Shell")
51.
 
52.
RegPfad = "HKEY_LOCAL_MACHINE\Network\Logon\Username"
53.
Client = WshShell.RegRead(RegPfad)
54.
 
55.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Version"
56.
WindowsVersion = WshShell.RegRead(RegPfad)
57.
 
58.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SystemRoot"
59.
Systemroot = WshShell.RegRead(RegPfad)
60.
 
61.
RegPfad = "HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Version"
62.
IeVs = Wshshell.RegRead(RegPfad)
63.
end if
64.
 
65.
Function GetOfficeVer()
66.
 
67.
  sRegPre = "HKLM\SOFTWARE\Microsoft\Office\"
68.
  sRegPost = "\Common\InstallRoot\"
69.
  Select Case True
70.
    Case RegKeyExists(sRegPre & "11.0" & sRegPost)
71.
      sOfficeVer = "2003"
72.
    Case RegKeyExists(sRegPre & "10.0" & sRegPost)
73.
      sOfficeVer = "2002"
74.
    Case RegKeyExists(sRegPre & "9.0" & sRegPost)
75.
      sOfficeVer = "2000"
76.
    Case RegKeyExists(sRegPre & "8.0" & sRegPost)
77.
      sOfficeVer = "97"
78.
    Case Else
79.
      sOfficeVer = "Keine"
80.
  End Select
81.
  GetOfficeVer = sOfficeVer
82.
End Function
83.
 
84.
Function RegKeyExists(ByVal sRegKey)
85.
  ' Returns True or False based on the existence of a registry key.
86.
 
87.
  Dim sDescription, oShell
88.
  Set oShell = CreateObject("WScript.Shell")
89.
 
90.
  RegKeyExists = True
91.
  sRegKey = Trim (sRegKey)
92.
  If Not Right(sRegKey, 1) = "\" Then
93.
    sRegKey = sRegKey & "\"
94.
  End If
95.
 
96.
  On Error Resume Next
97.
  oShell.RegRead "HKEYNotAKey\"
98.
  sDescription = Replace(Err.Description, "HKEYNotAKey\", "")
99.
 
100.
  Err.Clear
101.
  oShell.RegRead sRegKey
102.
  RegKeyExists = sDescription <> Replace(Err.Description, sRegKey, "")
103.
  On Error Goto 0
104.
End Function
105.
 
106.
clientname = "C:\log\" & client & ".txt"
107.
 
108.
'Pfad wird erstellt, wenn nicht vorhanden
109.
'----------------------------------------	
110.
 
111.
WshShell.Run "%comspec% /c if not exist C:\log\. md C:\log",0,true
112.
'Windows 2000/XP/NT
113.
 
114.
 
115.
'die Inventarisierungsdatei der Rechner wird bei jedem Neustart gelöscht
116.
'-----------------------------------------------------------------------
117.
 
118.
if fs.FileExists(clientname) then 
119.
fs.DeleteFile(clientname)
120.
end if
121.
set fs=nothing
122.
 
123.
set fs = CreateObject ("Scripting.FileSystemObject")
124.
set clientlog = fs.OpenTextFile (clientname,8,true)
125.
 
126.
 
127.
'Auslesen der Windows-Hardwareinformationen
128.
'------------------------------------------
129.
 
130.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
131.
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct",,48)
132.
For Each objItem in colItems
133.
modell=objItem.Vendor & " " & objItem.Name
134.
serial="Seriennummer: " & objItem.IdentifyingNumber
135.
Next
136.
 
137.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
138.
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk",,48)
139.
For Each objItem in colItems
140.
if objItem.Caption = "C:" then festplatteC= objItem.Caption & " " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " / " & Round(objItem.Size /1024 /1024 /1024,2) & " GByte"
141.
if objItem.Caption = "D:" then festplatteD= objItem.Caption & " " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " / " & Round(objItem.Size /1024 /1024 /1024,2) & " GByte"
142.
if objItem.Caption = "E:" then festplatteE= objItem.Caption & " " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " / " & Round(objItem.Size /1024 /1024 /1024,2) & " GByte"
143.
if objItem.Caption = "F:" then festplatteF= objItem.Caption & " " & Round(objItem.FreeSpace /1024 /1024 /1024, 2) & " / " & Round(objItem.Size /1024 /1024 /1024,2) & " GByte"
144.
Next
145.
 
146.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
147.
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
148.
For Each objItem in colItems
149.
system= objItem.Name & ": " & objItem.CurrentClockSpeed & " Mhz"
150.
Next
151.
 
152.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
153.
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalMemoryConfiguration",,48)
154.
For Each objItem in colItems
155.
speicher= "Gesamtspeicher (MB): " & objItem.TotalPhysicalMemory /1000
156.
Next
157.
 
158.
'Schreiben in die clientdatei
159.
'----------------------------
160.
WScript.Echo "IT-System Check fuer"
161.
WScript.Echo "=========================================="
162.
 WScript.Echo "Computer: " & Client
163.
 WScript.Echo "=========================================="
164.
WScript.Echo  "Datum: "  & now
165.
WScript.Echo  " "
166.
WScript.Echo  " "
167.
WScript.Echo  modell  
168.
WScript.Echo  serial
169.
WScript.Echo  system 
170.
WScript.Echo  speicher 
171.
WScript.Echo  " "
172.
WScript.Echo  " "
173.
WScript.Echo  "Festplatte verfuegbar/insgesamt " & FestplatteC
174.
WScript.Echo  "Festplatte verfuegbar/insgesamt " & FestplatteD
175.
WScript.Echo  "Festplatte verfuegbar/insgesamt " & FestplatteE
176.
WScript.Echo  "Festplatte verfuegbar/insgesamt " & FestplatteF
177.
WScript.Echo  " "
178.
WScript.Echo  " "
179.
WScript.Echo  "Betriebssystem: " & Windowsversion
180.
WScript.Echo  "WindowsVerzeichnis: " & Systemroot
181.
WScript.Echo  "Internet Explorer Vs: " & IeVs
182.
WScript.Echo  "Office Vs: " & GetOfficeVer()
183.
WScript.Echo  " "
184.
WScript.Echo  " "
185.
'Auslesen des EventLogs und Sichern dieser
186.
'----------------------------
187.
 
188.
 
189.
Const wbemFlagReturnImmediately = &h10
190.
Const wbemFlagForwardOnly = &h20
191.
 
192.
arrComputers = Array("Technik09")
193.
For Each strComputer In arrComputers
194.
   WScript.Echo
195.
   WScript.Echo "=========================================="
196.
   
197.
   WScript.Echo "=========================================="
198.
 
199.
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
200.
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent where EventType=1")
201.
'  Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent", "WQL", _
202.
'                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
203.
 
204.
   For Each objItem In colItems
205.
      WScript.Echo "Category: " & objItem.Category
206.
      WScript.Echo "CategoryString: " & objItem.CategoryString
207.
      WScript.Echo "ComputerName: " & objItem.ComputerName
208.
      strData = Join(objItem.Data, ",")
209.
         WScript.Echo "Data: " & strData
210.
      WScript.Echo "EventCode: " & objItem.EventCode
211.
      WScript.Echo "EventIdentifier: " & objItem.EventIdentifier
212.
      WScript.Echo "EventType: " & objItem.EventType
213.
      strInsertionStrings = Join(objItem.InsertionStrings, ",")
214.
         WScript.Echo "InsertionStrings: " & strInsertionStrings
215.
      WScript.Echo "Logfile: " & objItem.Logfile
216.
      WScript.Echo "Message: " & objItem.Message
217.
      WScript.Echo "RecordNumber: " & objItem.RecordNumber
218.
      WScript.Echo "SourceName: " & objItem.SourceName
219.
      WScript.Echo "TimeGenerated: " & WMIDateStringToDate(objItem.TimeGenerated)
220.
      WScript.Echo "TimeWritten: " & WMIDateStringToDate(objItem.TimeWritten)
221.
      WScript.Echo "Type: " & objItem.Type
222.
      WScript.Echo "User: " & objItem.User
223.
      WScript.Echo
224.
   Next
225.
Next
226.
 
227.
Function WMIDateStringToDate(dtmDate)
228.
WScript.Echo dtm: 
229.
	WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
230.
	Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
231.
	& " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
232.
End Function
01.
dtmThisDay = Day(Date)
02.
dtmThisMonth = Month(Date)
03.
dtmThisYear = Year(Date)
04.
strBackupName = dtmThisYear & "_" & dtmThisMonth _
05.
    & "_" & dtmThisDay
06.
strComputer = "."
07.
Set objWMIService = GetObject("winmgmts:" _
08.
    & "{impersonationLevel=impersonate,(Backup)}!\\" & _
09.
        strComputer & "\root\cimv2")
10.
Set colLogFiles = objWMIService.ExecQuery _
11.
    ("Select * from Win32_NTEventLogFile " _
12.
        & "Where LogFileName='Application'")
13.
For Each objLogfile in colLogFiles
14.
    objLogFile.BackupEventLog("c:\log\" _
15.
        & strBackupName & _
16.
        "_application.evt")
17.
    objLogFile.ClearEventLog()
18.
    WScript.Echo "File saved in c:\log: " & strBackupName & _
19.
        "_application.evt"
20.
Next
21.
Set colLogFiles = objWMIService.ExecQuery _
22.
    ("Select * from Win32_NTEventLogFile " _
23.
        & "Where LogFileName='System'")
24.
For Each objLogfile in colLogFiles
25.
    objLogFile.BackupEventLog("c:\log\" _
26.
        & strBackupName & _
27.
        "_system.evt")
28.
    objLogFile.ClearEventLog()
29.
    WScript.Echo "File saved in c:\log: " & strBackupName & _
30.
        "_system.evt"
31.
Next
[Edit Biber] Schnipsel auf <code> umformtiert. Einiges wurde sonst falsch angezeigt. [/Edit]
Mitglied: AndreasHoster
21.02.2007 um 12:17 Uhr
Es ist ein Skript, also keine EXE.
Aber was spricht gegen cscript.exe namedesskripts.vbs ?
Und wscript.echo gibt immer im Fenster/Messagebox aus.

Die Output-Funktionen XML, HTML, Excel etc. der Scriptomatic 2 sind in der Scriptomatic integriert, nicht im generierten VBS Code.
Da hilft nur selber die Ausgabe entsprechend umzuprogrammieren.
Bitte warten ..
Mitglied: JAKU2007
22.02.2007 um 15:40 Uhr
Vielen Dank für den Hinweis, hat mir weitergeholfen. Geht jetzt soweit.
Ich hab noch eine Frage und würde wissen, ob du mir dabei helfen kannst.
Ich müßte aus einem RegistryZweig verschiedene Werte auslesen und würde diese gerne auch in die Datei schreiben.
Auszug aus der Reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\PC-cillinNTCorp\CurrentVersion\Misc.]
"ProgramVer"="7.0"
"InternalPatternVer"=dword:00068a9c
"PatternVer"=dword:0000011f
"PatternDate"="20070221"

Wobei die Dword Werte wenn möglich noch umgerechnet werden sollten.
Hats du eine Idee.

Gruss Jaku2007
Bitte warten ..
Mitglied: AndreasHoster
22.02.2007 um 15:58 Uhr
Ich habe immer Ideen Manchmal bessere, manchmal ...

VBS kann Daten aus der Registry auslesen:
Set wshshell = CreateObject("Wscript.Shell")
wert = wshshell.RegRead("HKLM\SOFTWARE\TrendMicro\PC-cillinNTCorp\CurrentVersion\Misc.\ProgramVer")

RegRead gibt String oder Zahl zurück, je nach Wert in der Registry (was bei Binary zurückkommt, keine Ahnung)
Also einfach mit auslesen.
Bitte warten ..
Mitglied: JAKU2007
22.02.2007 um 16:30 Uhr
Hi, vielen Dank. Klappt super. Werte werden sogar korrekt übergeben. Muss jetzt nur noch schauen das ich keine TXT datei erzeuge sondern eine XML für die weiterverarbeitung.
Bitte warten ..
Ähnliche Inhalte
VB for Applications

VB-Script in VB-Script starten und Parameter übergeben

gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

VB for Applications

VB-Script per Aufgabenplanung

gelöst Frage von S4kar97VB for Applications2 Kommentare

Hallo, Ich habe mir ein VB-Script erstellt, welches im Grunde ein Programm startet und diesem Parameter übergibt und die ...

Entwicklung

VB Script Drucker hinzufügen

Frage von Marcel1989Entwicklung3 Kommentare

Funktionsweise sollte definitiv sein das mit einem Script sich 2 verschiedene Betriebssysteme ein und denselben Drucker holen. Mein Script ...

Batch & Shell

VB Script ändert Dateinamen

gelöst Frage von mschaedler1982Batch & Shell5 Kommentare

Hallo zusammen. Kurze Erläuterung zu diesem Thema. Eine Maschine legt jeden Tag zu einer bestimmten Uhrzeit sehr sehr viele ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 1 StundeErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 3 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 3 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 5 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server21 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware18 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server17 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update11 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...