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

Frage Entwicklung VB for Applications

GELÖST

Laufwerksbuchstaben auslesen

Mitglied: andrehh

andrehh (Level 1) - Jetzt verbinden

06.05.2009, aktualisiert 14:18 Uhr, 6236 Aufrufe, 4 Kommentare

Laufwerksbuchstaben von lokalen Partitionen auslesen und in eine Textdatei übergeben

Hallo Zusammen,

ich muss mir gerade den Kopf über folgendes Problem zerbrechen.
Ich suche nach einer Möglichkeit die Laufwerksbuchstaben von lokalen Partitionen (keine Netzlaufwerke o.ä.) auszulesen und diese in eine Textdatei zu übergeben. Ich hab schon im Internet gesucht und bin dabei auf unten angehängtes Script gestoßen. Das Script funktioniert unter XP so wie es soll, doch unter Vista oder Server 2008 als Beispiel, wird keine Ausgabe generiert. Ich habs mit meinen primitiven Programmierkenntnissen gerade so hinbekommen die Ausgabe in eine Textdatei zu schicken, allerdings weiß ich nicht wo das Problem unter Vista sein könnte.
Vielen Dank schonmal im Voraus

01.
Option Explicit 
02.
Dim oWMI 
03.
Dim fso 
04.
Dim oLog 
05.
 
06.
Set oWMI = GetObject ("winmgmts:") 
07.
Call ScanHardDisks 
08.
 
09.
Sub ScanHardDisks 
10.
 
11.
        Dim oDisk 
12.
        Dim sTxt 
13.
         
14.
        For Each oDisk In oWMI.InstancesOf("Win32_DiskDrive") 
15.
 
16.
                If IsHardDisk(oDisk) Then                        
17.
                         
18.
                        Dim oParts 
19.
                        Dim oPart        
20.
                         
21.
                        sTxt = sTxt & "Festplatte #" & oDisk.Index 
22.
 
23.
 
24.
                        Set oParts = GetDiskParts(oDisk)         
25.
                         
26.
                        For Each oPart In oParts 
27.
                                sTxt = sTxt & GetDriveLetters (oPart)    
28.
                        Next             
29.
                         
30.
                        sTxt = sTxt & vbCrlf             
31.
                         
32.
                End If   
33.
         
34.
        Next 
35.
        WSH.Echo sTxt 
36.
         
37.
        set fso = CreateObject("Scripting.FileSystemObject") 
38.
			  set oLog = fso.CreateTextFile("hdd.txt",true) 
39.
			  oLog.Write sTxt 
40.
			  oLog.close 
41.
 
42.
End Sub 
43.
 
44.
Function IsHardDisk (oDisk) 
45.
 
46.
        IsHardDisk = False 
47.
 
48.
        If Not IsNull(oDisk.MediaType) Then 
49.
                IsHardDisk = StrComp (oDisk.MediaType, _ 
50.
                        "Fixed" & vbTab & "hard disk media") = 0 
51.
        End If 
52.
 
53.
End Function 
54.
 
55.
Function GetDiskParts (oDisk) 
56.
 
57.
        Set GetDiskParts = oWMI.ExecQuery ("ASSOCIATORS OF " _ 
58.
                & "{Win32_DiskDrive.DeviceID='" & oDisk.DeviceID _ 
59.
                & "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition") 
60.
 
61.
End Function 
62.
 
63.
Function GetLogicalDisks (oPart) 
64.
 
65.
        Set GetLogicalDisks = oWMI.ExecQuery ("ASSOCIATORS OF " _ 
66.
                & "{Win32_DiskPartition.DeviceID='" & oPart.DeviceID _ 
67.
                & "'} WHERE AssocClass=Win32_LogicalDiskToPartition") 
68.
 
69.
End Function 
70.
 
71.
Function GetDriveLetters (oPart) 
72.
 
73.
        Dim oLogics 
74.
        Dim oLogic       
75.
 
76.
        Set oLogics = GetLogicalDisks(oPart) 
77.
 
78.
        For Each oLogic In oLogics 
79.
                GetDriveLetters = GetDriveLetters & " " & oLogic.DeviceID 
80.
        Next     
81.
 
82.
End Function
Mitglied: LotPings
06.05.2009 um 18:22 Uhr
Hallo,
im Code werden wohl einige Abkürzungen benutzt, die so in Vista /windows 7 nicht mehr funktionieren.
oWMI.InstancesOf("Win32_DiskDrive")
Mit zusätzlichen Object Variablen ist das wahrscheinlich hinzubekommen, interessiert mich - ich nehme es mal auf meine Liste.

Gruß
LotPings
Bitte warten ..
Mitglied: MonoTone
07.05.2009 um 15:39 Uhr
01.
Set fso = CreateObject("Scripting.FilesystemObject") 
02.
Set f = fso.CreateTextFile("D:\beispiel.txt", 8, True) 
03.
 
04.
strComputer = "." 
05.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
06.
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk",,48) 
07.
dim counter 
08.
counter = 1 
09.
For Each objItem in colItems 
10.
	If LCase(objITem.description) = "lokale festplatte" Then 
11.
		WScript.Echo objItem.Name 
12.
'oder in txt file 
13.
f.writeline "Laufwerkbuchstabe " & counter & ": " & objItem.Name  
14.
counter = counter +1 
15.
End If 
16.
Next
So liest du die Laufwerksbuchstaben aus.
Habs auf XP und auf Server2008 getestet und klappt.
(sollte daher auch auf Vista laufen)

Ich hoffe das ist das was du suchst.
Gruss Mono
Bitte warten ..
Mitglied: LotPings
07.05.2009 um 19:49 Uhr
Hallo andrehh,

Microsoft hat wohl in den Tiefen der WMI Texte geändert,
Bei mir unter Windows 7 lief das Script nachdem ich die Abfrage aus Zeile 50
    "Fixed" & vbTab & "hard disk media") = 0 
geändert habe in
    "Fixed hard disk media") = 0 
Damit der Code universell läuft müsste man die If abfrage umbauen mit RegExp oder ähnlich,
Mag ich jetzt nicht.

Gruß
LotPings
Bitte warten ..
Mitglied: andrehh
08.05.2009 um 08:08 Uhr
Vielen Dank an euch beide, habt mir sehr geholfen
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
WinPE: originale Laufwerksbuchstaben auslesen und per Batch entsprechend ändern
gelöst Frage von ArtemisBatch & Shell9 Kommentare

Hallo, ich grüße Euch! Mein Problem ist: Über ein (Batch)Script soll in Windows PE für ein W7-Haupt-System dessen normale ...

Microsoft
Laufwerksbuchstabe A: und B
gelöst Frage von SirTobi27Microsoft8 Kommentare

Hallo zusammen, eigentlich bin ich mir recht sicher, aber ich wollte mich bei euch nochmal eben vergewissern: Gibt es ...

Windows Server
Ressourcen Monitor Laufwerksbuchstaben seltsam
Frage von Timm67Windows Server2 Kommentare

Hallo, ich habe einen Dienst der ein Programm ausführt, das eigentlich auf dem Laufwerk P liegt. Ich habe irgendwann ...

Windows Server
Umsetzung der FolderRedirection mit Laufwerksbuchstabe
Frage von c0d3.r3dWindows Server1 Kommentar

Hallo! Ich stehe bei der Einrichtung eines Netzwerkes vor einem für mich unlösbaren Rätsel. Für eine Bestimmte Software muss ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...