0cool
Goto Top

VB Sccript WMI Dateisuche mit Paramter

Hey Leute,

ich versuche gerade eine Script zu schreiben, dass mir alle LNK Dateien die im Ziel ein bestimmten Laufwerksbuchstaben enhalten anzeigt.


Vorab informationen:

OS: Vista
Sprache VB Script mit WMI

Was ich bisher klappt, ist die suche auf dem Laufwerk D: nach LNK Dateien.

Hier mal mein bisheriger Quellcode:

set objwmi = GetObject("winmgmts:")  
wql = "Select * from CIM_LogicalFile where Drive='D:'and Extension='lnk'"  
' wql = "Select * from CIM_DataFile where Drive='D:' and Extension='lnk'"  
' wql = "Select * from CIM_DataFile where Drive='D:' and Extension='lnk' and Path Like 'D:\\%'"  

set colFiles = objWMI.ExecQuery(wql,,48)

On Error Resume Next

For Each objFile In colFiles
	WScript.Echo objFile.Name
Next
WScript.Echo "Die Suche ist beendet"  

Wie ihr an den auskommentierten Objekten sehen könnt, habe ich schon ein bisschen getestet aber ich bekomme es einfach nicht hin.
Die Suche soll auf alle fälle über WMI laufen.

Wie komme ich zu meinem Ziel?

Danke für eure Hilfe!

0cool

Content-ID: 168739

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

Printed on: October 7, 2024 at 02:10 o'clock

AndreasHoster
AndreasHoster Jun 28, 2011 at 12:51:30 (UTC)
Goto Top
Die Suche klappt nach Deiner Aussage, was also bekommst Du nicht hin?
Die Suche im Pfad einschränken?
Dann würde ich in Zeile 11.5 mal
WScript.Echo objFile.Path
miteintragen, dann könntest Du eventuell erkennen, wo das Problem in Zeile 04 liegt.
0cool
0cool Jun 28, 2011 at 13:03:15 (UTC)
Goto Top
Vielen Dank!

Damit komme ich weiter.
Ich werds ausprobieren und mich wieder melden.


Gruß

0cool
TsukiSan
TsukiSan Jun 28, 2011 at 16:01:45 (UTC)
Goto Top
Wenn ich alles richtig verstanden habe, funktioniert die Suche nach Verknüpfungen und das einzigste das fehlt ist das Ausfiltern der sog. lnk-Verknüpfungen nach bestimmten Kriterien (Laufwerksbuchstabe).
Dann hätte ich deinen Code wie folgt über eine Batch-Datei aufgerufen
CScript MeineVBS.vbs //NOLOGO >Ergebnis.txt
und in MeinerVBS.vbs stände folgendes (nach deinem Muster angepasst!)
set objwmi = GetObject("winmgmts:")  
wql = "Select * from CIM_LogicalFile where Drive='D:'and Extension='lnk'"  

set colFiles = objWMI.ExecQuery(wql,,48)

On Error Resume Next

For Each objFile In colFiles
 	strShortcut = objFile.Name
 	set objShell = CreateObject("WScript.Shell")  
 	set objApplicationLink = objShell.CreateShortcut(strShortcut)
 	
	Tmp = objApplicationLink.TargetPath
	IF Left(Tmp,1) = "D" then Wscript.Echo strShortcut  

        set objShell = Nothing
 	set objApplicationLink = Nothing
Next
WScript.Echo "Die Suche ist beendet"  

Berichtige mich bitte, wenn ich falsch liege! (Getestet mit WinXPSP3)

Gruss
Tsuki