Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

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

Frage Microsoft

Mitglied: 73978

73978 (Level 1)

15.01.2009, aktualisiert 13:31 Uhr, 10882 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
VB for Applications
gelöst VB Skript für mehrere Batch Befehle (37)

Frage von freshman2017 zum Thema VB for Applications ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

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

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(3)

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

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
Gruppenrichtlinie greift nicht zu! (24)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...