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

gelöst Laufwerksbuchstaben auslesen

Mitglied: andrehh

andrehh (Level 1) - Jetzt verbinden

06.05.2009, aktualisiert 14:18 Uhr, 6251 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 ...

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 ...

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 ...

Neue Wissensbeiträge
Server-Hardware
HP iLO ist gefährdet (iLO 4))
Tipp von AlFalcone vor 8 StundenServer-Hardware

Gemäss Twitter und Heise gibt es eine Angriffsmöglichkeit auf iLO Quelle: iLO ist gefährdet

CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 17 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

Heiß diskutierte Inhalte
Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung27 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Router & Routing
Subnetzmaske vergrößern
gelöst Frage von groovesurferRouter & Routing18 Kommentare

Hallo, hat jemand schonmal getestet was passiert, wenn man die Subnetzmaske bei laufendem Betrieb (wenn user im Netzwerk verbunden ...