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

Frage Entwicklung

Mitglied: JAKU2007

JAKU2007 (Level 1) - Jetzt verbinden

21.02.2007, aktualisiert 22.02.2007, 4657 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 ...

Batch & Shell
Probleme bei der Ausführung eines VB-Scriptes
Frage von AuricGoldfingerBatch & Shell1 Kommentar

Hallo zusammen, ich habe folgendes Script geschrieben: Leider bekomme ich bei der Ausführung den Fehler Was mache ich falsch?? ...

Windows Server
Drucker entfernen in VB-Script
gelöst Frage von NilsvLehnWindows Server2 Kommentare

Hallo ich habe eine kleine Frage bzgl. unseres Anmeldeskriptes. Ich habe ein IT-netzwerk an einer Uni übernommen. Ich arbeite ...

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 ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 21 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...