Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Entwicklung

Mitglied: JAKU2007

JAKU2007 (Level 1) - Jetzt verbinden

21.02.2007, aktualisiert 22.02.2007, 4599 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...