vbs registry von mehreren pc's auslesen

  • #1
G

GisMo7

Neues Mitglied
Themenersteller
Dabei seit
13.04.2011
Beiträge
2
Reaktionspunkte
0
Hallo forum user,
ich habe folgendes Problem
ich will von meheren pc's die in einem netzwerk sind instalierte software auslesen

ich habe foldengen code

Sub Loeschen
Set obDatei = CreateObject(Scripting.FileSystemObject)
If obDatei.FileExists(C:\Software.csv) then
obDatei.GetFile(C:\Software.csv).Delete
End if
End Sub

Sub Auslesen
Const HKLM = &H80000002
Set wsShell = WScript.CreateObject( WScript.Shell )
stComputername = wsShell.ExpandEnvironmentStrings( %COMPUTERNAME% )
Set obRegistry = GetObject(winmgmts:// & stComputername & _
/root/default:StdRegProv)
Const stKey = _
Software\Microsoft\Windows\CurrentVersion\Uninstall\
obRegistry.EnumKey HKLM,stKey,arSubKeys

For Each stSubKey In arSubKeys
intRet = obRegistry.GetStringValue(HKLM,stKey & stSubKey,_
DisplayName,stSoftware)
If intRet <> 0 Then
intRet = obRegistry.GetStringValue(HKLM,stKey & stSubKey,_
QuietDisplayName,stSoftware)
End If
If (stSoftware <> ) and (intRet = 0) Then
set obDatei = CreateObject(Scripting.FileSystemObject)
logfile = c:\Software.csv
set handle = obDatei.OpenTextFile(logfile,8,true)

softwareName = stComputername & ; & stSoftware
handle.WriteLine softwareName
handle.close
End if
Next
End Sub

Loeschen
Auslesen

mit diesen Code kann ich aber nur die Software von meiner pc auslesen was muss ich da ändern damit es klappt???
 
  • #2
Hallo,

meine ersten 2 Gedankengänge:

Variante 1:
Du lässt die Loeschen-Sub weg, verwendest als Logfile eine CSV auf einem (für alle beschreibbaren) Netzwerkpfad und lässt das Script via Grouppolicy auf allen Rechnern rennen. Dann schreiben alle PCs ihre Software nacheinander in die CSV.

Problem dabei, dass du doppelte Einträge bekommst, wenn ein PC das Script mehrfach ausführt.


Variante 2:
Du verbindest dich auf die Registry der Rechner. Dazu kannst du z.B. ein File mit allen PC-Namen erstellen, diese über ADO auslesen und anstelle des
Code:
stComputername = wsShell.ExpandEnvironmentStrings( %COMPUTERNAME% )
eine for each-Schleife einfügen. Der User, unter welchem das Script ausgeführt wird, muss natürlich die Rechte haben, auf die RemoteRegs zuzugreifen.

Erscheint mir als die schönere Lösung, ist aber mit ein wenig Tüfteln verbunden :)

Buddha
 
Thema:

vbs registry von mehreren pc's auslesen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben