luuke257
Goto Top

VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen)

Hallo zusammen!

Vorweg, ich bin absoluter neuling im Scripten, ich habe mir das alles nur so zusammengebastelt und versuche etwas dazu zu lernen.

Ich arbeite in einem IT-Systemhaus, wo ich öfter mal schnell einige Infos über den PC an dem ich arbeite benötige.
Ich habe mir dazu eine kleine Batch datei geschrieben, die mir bestimmte Infos anzeigt.
Meine Batch datei sieht momentan so aus:

@echo off
@echo Pc Daten werden ausgelesen...
cd.. 
cd.. 
cd.. 
mkdir "PCDaten %computername% - %username%"  
Net use > "C:\PCDaten %computername% - %username%\net-use.txt"   
net user > "C:\PCDaten %computername% - %username%\net-user.txt"   
ipconfig /all > "C:\PCDaten %computername% - %username%\ipconfig.txt"   

cd C:\program files 
tree > "C:\PCDaten %computername% - %username%\Programtree.txt"   
cd C:\program files (x86) 
tree > "C:\PCDaten %computername% - %username%\programx86tree.txt"   
systeminfo > "C:\PCDaten %computername% - %username%\systeminfo.txt"   
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" > "C:\PCDaten %computername% - %username%\Drucker.txt"   
cscript ..\Windows.vbs 

Die VBS Datei am ende liest den Windows Key aus der Registry und wandelt sie aus dem Hexadezimalsystem um und zeigt sie an:

Set WshShell = CreateObject("WScript.Shell")  
MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"))  

Function ConvertToKey(Key)
Const KeyOffset = 52
i = 28
Chars = "BCDFGHJKMPQRTVWXY2346789"  
Do
Cur = 0
x = 14
Do
Cur = Cur * 256
Cur = Key(x + KeyOffset) + Cur
Key(x + KeyOffset) = (Cur \ 24) And 255
Cur = Cur Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
If (((29 - i) Mod 6) = 0) And (i <> -1) Then
i = i -1
KeyOutput = "-" & KeyOutput  
End If
Loop While i >= 0
ConvertToKey = KeyOutput
End Function

Nun meine 2 Fragen:

Die Batch erstellt ja für jede Info eine eigene Text datei, so soll es auch sein.
Allerdings wird der Windows Key vom VBS natürlich nur in einem Fenster angezeigt und nirgendwo gespeichert.
Kann ich eben dieses Script so abändern das es mir den Windows Key danach nicht anzeigt, sondern in eine Text datei im Selben Ordner wie oben ausgibt?

2. Frage:

Kann ich das VBS irgendwie so aus der Batch starten, das ich nicht die Batch + das VBS kopieren muss?
Also entweder zu einer Datei zusammenfassen oder gibt es eine Funktion mit der ich Eben dieses VBS selber aus der Batch erstellen / aufrufen kann?

Und kann ich das VBS so starten, das es aus dem Verzeichnis gestartet wird in dem die Batch liegt, ohne das ich das VBS vorher in einen bestimmten Ordner kopieren muss?

Ich hoffe es ist verständlich geworden was ich vor hab.
Falls ich jetzt schon einen dummen Fehler gemacht hab, tut es mir im Vorfeld leid!

Vielen Dank,

Beste Grüße,
Lukas

Content-ID: 314726

Url: https://administrator.de/contentid/314726

Ausgedruckt am: 19.11.2024 um 06:11 Uhr

Kraemer
Kraemer 08.09.2016 um 11:37:59 Uhr
Goto Top
Moin,

kurze Frage: Warum machst du das mit 2 Script-Sprachen?
Das was du da machst geht mit beiden (irgendwie). Ich persönlich würde in diesem Fall allerdings Powershell vorziehen.

Gruß Krämer
Luuke257
Luuke257 08.09.2016 um 11:46:08 Uhr
Goto Top
Moin!

Weil ich bisher keinen Weg gefunden hab per CMD den Windows Key auslesen / ausgeben zu können.

Ich will das ganze so kompatibel wie möglich gestalten und Powershell ist z.B. unter Windows 7 Standardmäßig nicht vorhanden, somit müsste ich erst Powershell installieren und damit stehe ich mir selber im Weg da es ja im Prinzip darum geht "Schnell" an diese Infos dran zu kommen.

Beste Grüße,
Lukas
Kraemer
Lösung Kraemer 08.09.2016 um 12:19:23 Uhr
Goto Top
Zitat von @Luuke257:
Weil ich bisher keinen Weg gefunden hab per CMD den Windows Key auslesen / ausgeben zu können.
Beispiel:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page"  

und Powershell ist z.B. unter Windows 7 Standardmäßig nicht vorhanden,
Das wäre mir neu

Gruß Krämer
Luuke257
Luuke257 08.09.2016 aktualisiert um 15:07:03 Uhr
Goto Top
Gut, so kann ich zwar den Key auslesen, aber er ist immer noch in Hexadezimal, deswegen das VBS, welches das umrechnet.

Powershell ist unter Windows, sofern vorhanden, nicht standardmäßig aktiviert, wie z.B. HyperV.

EDIT:

Du hast Recht, habe hier einen Rechner mit Windows 7 Pro, Powershell ist vorhanden, Sorry.
Ich arbeite auf einem Thin Client über eine Terminal Session, auf dem ist Windows 7 Embedded Standard drauf, dieser hat keine Powershell, das war ich so gewöhnt.
Frage: Ist auch bei Windows 7 Home etc. die Powershell vorhanden?

Da ich mich mit Powershell gar nicht auskenne, hast du einen Vorschlag wie ich das Skript (sowohl die Batch, als auch die Funktion des VBS) in Powershell gestalte?
Luuke257
Luuke257 08.09.2016 um 15:56:15 Uhr
Goto Top
Habs selber gelöst. Habe durch Zufall gefunden das man auch in einer CMD den Produktschlüssel auslesen kann.
Der erforderliche Befehl dafür lautet:
wmic path softwarelicensingservice get OA3xOriginalproductkey