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

Ausgedruckt am: 25.11.2024 um 11:11 Uhr

AndreasHoster
AndreasHoster 28.06.2011 um 14:51:30 Uhr
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 28.06.2011 um 15:03:15 Uhr
Goto Top
Vielen Dank!

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


Gruß

0cool
TsukiSan
TsukiSan 28.06.2011 um 18:01:45 Uhr
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