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, 10541 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...