Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Festplattenkapazität in MB mittels Batch- oder VB-Datei auslesen

Frage Microsoft

Mitglied: 73978

73978 (Level 1)

15.01.2009, aktualisiert 13:31 Uhr, 10751 Aufrufe, 3 Kommentare

Hallo zusammen,
ich bin grad dabei eine Recovery-DVD über WinPE 2.0 SP1 zu bearbeiten.
Diese DVD bringt einen beliebigen Server wieder in seinen Auslieferungszustand zurück.

Dabei kann man angeben wie groß die Partition der Systemplatte werden soll, auf der später dann das Recovery-Image aufgespielt wird.
Im Moment ist es aber noch so, dass man da eingeben kann was man will, also auch mehr als die HDD überhaupt hergibt...

Daher bräuchte ich ne Möglichkeit per Batch-Datei die Größe der jeweils eingebauten HDD in Megabyte auszulesen,
damit ich den Wert dann als Maximalwert speichern kann. Im MB muss der Wert sein, da "diskpart" die Partitionsgröße auch in MB haben will.
Über diskpart selbst kann ich ja leider nur die Größe der HDD in GB auslesen und nicht in MB...

Ich hoff mir kann da jemand helfen.

Danke schonmal und Gruß
Andi

/EDIT: Falls mir dazu jemand ein VB Skript hätte würd mir das auch reichen. Skripting ist eingeschaltet im PE
Mitglied: 73978
15.01.2009 um 13:34 Uhr
Hallo zusammen,

nun hab ich von nem Kollegen grad ein VB Script bekommen in dem genau das passiert was ich will.
Allerdings liest dieses Skript mir erstens ALLE HDDs aus und nicht nur die erste und zweitens ist die Größe auf zig Kommastellen angegeben.

Wie schaff ichs dass mir nur die erste HDD angezeigt wird und dass er nach dem Komma einfach abbricht?
/EDIT: Und wie schreib ich den Wert dann anschlißend in eine txt-Datei?

Hier der Code:

strServer = "."

Set objWMI = GetObject("winmgmts://" & strServer & "/root\cimv2")
Set objInstances = objWMI.InstancesOf("Win32_DiskDrive")

On Error Resume Next
For Each objInstance in objInstances
With objInstance
WScript.Echo .size/1048576
End With
On Error Goto 0
Next



Sorry für die ganzen Fragen aber mit VB kenn ich mich bisher leider überhaupt nicht aus...

Gruß Andi
Bitte warten ..
Mitglied: 73978
15.01.2009 um 14:36 Uhr
Okay ich habs nun so einigermaßen hinbekommen wie ich das wollte.
Er liest nun alle HDDs aus und schreibt diese in ne Textdatei.

Mit der cmd brauch ich ja dann nur einfach die erste Zeile auslesen und gut is

Hier der VB-Code:

strServer = "."

Set objWMI = GetObject("winmgmts://" & strServer & "/root\cimv2")
Set objInstances = objWMI.InstancesOf("Win32_DiskDrive")

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const CCreate = True
Set fso = CreateObject("Scripting.FileSystemObject")
Set datei = fso.OpenTextFile("hddsize.txt", ForWriting, CCreate)

On Error Resume Next
For Each objInstance in objInstances
With objInstance
datei.write round(.size/1048576)-2 & " " & chr(13) & chr(10)
End With
On Error Goto 0
Next

datei.Close



Vielleicht kann das der/die ein oder andere von euch ja mal brauchen.

Grüße
Andi
Bitte warten ..
Mitglied: bastla
15.01.2009 um 18:57 Uhr
Hallo ade2k1 und willkommen im Forum!

Danke für das Script.

Nur als Ansatz einer Näherungslösung (in CMD kann nur mit ganzen Zahlen gerechnet werden) zum Ermitteln der Größe der ersten Festplatte als Batch (VBS ist für diesen Zweck unbestritten besser geeignet):
01.
set S= 
02.
for /f "skip=1" %%i in ('wmic DiskDrive Get Size') do if not defined S set S=%%i 
03.
set /a SizeMB=%S:~,-4%/105 
04.
echo %SizeMB%
Da die heutigen Festplattengrößen die auf 32 Bit begrenzte "Genauigkeit" (O-Text der Fehlermeldung bei Verwendung von Zahlen > 4294967295 in einer "set /a"-Anweisung) der CMD-Shell um ein Vielfaches überfordern, werden einfach die letzten 4 Stellen der ausgelesenen Byte-Anzahl weg gelassen (entspricht einer Division durch 10000 und Abrundung des Ergebnisses auf Ganze).

Danach wird durch 105 (= aufgerundet 1024 * 1024 / 10000) dividiert - so ist sicher gestellt, dass das Ergebnis in MB (um die Rundungsdifferenzen) zu niedrig angegeben wird, was im Hinblick auf die Zielsetzung "Vorgabe eines nicht zu hohen Wertes für die Partitionierung" zwar einen gewissen Sicherheitspolster darstellt, es allerdings verhindert, dass der gesamte Speicherplatz für die Partition verwendet werden kann ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...

LAN, WAN, Wireless
gelöst Netzwerk in 2 Teile trennen (11)

Frage von pattex zum Thema LAN, WAN, Wireless ...

Windows Server
Benutzer lässt sich nur an einem Clientcomputer anmelden (11)

Frage von Ammann zum Thema Windows Server ...

Netzwerke
SFP Modul (miniGibic) (10)

Frage von apranet zum Thema Netzwerke ...