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

WMI Abfrage - Freier Festplattenplatz

Frage Microsoft

Mitglied: chussi

chussi (Level 1) - Jetzt verbinden

11.04.2007, aktualisiert 12.04.2007, 12005 Aufrufe, 10 Kommentare

Hallo,

habe folgendes Script geschrieben ( zusammen gebastelt )

arrComputers = Array("servername1", "servername2")
For Each strComputer In arrComputers
WScript.Echo "Server: " & strComputer
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_LogicalDisk WHERE Caption = 'D:'")
For Each objItem in colItems
Wscript.Echo "Freier Platz auf LW D:\ : " & objItem.FreeSpace/1024/1024/1024 & " GB"
Next
Next

Meine Fragen:
Wie kann ich das Ergebnis in ein Textfile schreiben ?
Bisher kommt ja immer ein PopUp Fenster hoch.

Und zur besseren Übersicht: Wie kann ich den Freien Platz auf 2 Nachkomma Stellen begrenzen ?

Gruss Christian
Mitglied: 46503
11.04.2007 um 12:05 Uhr
WMI ist doof. Ich habe mich damit mal kurz beschäftigt und es für zu unübersichlich empfunden. Wie man umleitet, kann ich dir nicht sagen.

Es geht aber (lokal) einfacher mit dem Kommandozeilentool fsutil (in XP Prof enthalten), remote mit Hilfe von psexec (ehem. Sysinternals).

fsutil volume diskfree LW: | find "gbarer Bytes" > frei.txt
Bitte warten ..
Mitglied: rubberduck
12.04.2007 um 09:01 Uhr
@ hpdnm
WMI ist doof. Ich habe mich damit mal kurz beschäftigt und es für zu unübersichlich empfunden.
Tolle Aussage...

Mit WMI kannst Du Praktisch das gesamte OS steuern. Vielleicht solltest Du Dich etwas mehr damit beschäftigen. Es stimmt allerdings, das es Zeit braucht. Der Lohn ist aber die Mühe Wert.

@chussi
Versuch mal das:
arrComputers = Array("servername1", "servername2")
strDomain = "Meine Domain"
strLogin = "Domain Admin"
strPW = "MeinDomainAdminPasswort"
'strLogin = "Administrator"
'strPW = "MeinAdminPasswort"

Dim textstream, objFSO, GstrLogfile, ITextStream, objLocator, objWMI, strDomain
GstrLogfile = "C:\MeinOrdner\FreeSpace.LOG"

Set objFSO = CreateObject("Scripting.FileSystemObject")

If Not objFSO.FileExists(GstrLogfile) Then
Set Textstream = objFSO.CreateTextFile(GstrLogfile, True)
Textstream.close
End If

For Each strComputer In arrComputers
WScript.Echo "Server: " & strComputer
Set objLocator = CreateObject("WbemScripting.SWbemLocator") 'Wenn Du es mit diesem Object machst, kannst Du es lokal nicht Testen!
Set objWMI = objLocator.ConnectServer(strComputer, "root\CIMv2", strDomain & "\" & strLogin, strPW)'Anmeldung als Domain Adminstrator
'Set objWMI = objLocator.ConnectServer(strComputer, "root\CIMv2", strComputer & "\" & strLogin, strPW)'lokale Anmeldung als Administrator

WQL = "SELECT * FROM Win32_LogicalDisk WHERE Caption = 'D:'"
Set objWMI = objWMI.ExecQuery(WQL)
For Each intFreeSpace In objWMI
Set textstream = objFSO.OpenTextFile(GstrLogfile, 8, true)
TextStream.WriteLine strComputer & ";Freier Platz auf LW D:\;" & round(intFreeSpace.FreeSpace/1024/1024/1024,2) & " GB"
TextStream.Close
Next
Next
Schreibst Du wirklich alle Server in ein Array? Habt Ihr nur so wenige?
Bitte warten ..
Mitglied: 46503
12.04.2007 um 10:52 Uhr
@rubberduck

Entschuldige bitte, dass ich eine eigene Meinung habe, auch wenn sie dir nicht passt.

Ich keinne mein System und weiß, ich wie einfacher und schneller an gewünschte Informationen komme.
Bitte warten ..
Mitglied: rubberduck
12.04.2007 um 11:05 Uhr
Entschuldigung angenommen ;)

Ich habe nicht Deine Meinung kritisiert.
Mit Shell-Scripting kenne ich mich auch aus und verwende sie auch rege.

Du solltest nur nicht andere Techniken Pauschal verteufeln, nur weil Du vor der Informationsflut wie der Esel vor dem Berg stehst. Das ist alles.

Wenn Du aber echte Scripts schreibst, kannst Du (wenn nötig) den Ein- und Ausgabestrom besser auswerten als Du es mit Shell-Scripting kannst. Ausserdem bist Du viel flexibler.
Bitte warten ..
Mitglied: 46503
12.04.2007 um 11:23 Uhr
Vielleicht habe ich grundsätzlich aus Sicherheitsgründen etwas gegen Scripte auf meinem System?
Ich brauche keine Scripte, um an Informationen zu kommen, ich kenne mich mit der Win32API aus und
stehe auch nicht "vor der Informationsflut wie der Esel vor dem Berg". Mach dir um mich mal keine Sorgen.
Bitte warten ..
Mitglied: rubberduck
12.04.2007 um 11:32 Uhr
O.K.
War ja nicht böse gemeint ;)

Es hatte nur so einen schalen Pauschalen Beigeschmack.

Ist aber Cool, wenn Du Dich mit API-Programmierung auskennst.
Dort fehlt mir leider die Zeit mich einzulesen...
Bitte warten ..
Mitglied: chussi
12.04.2007 um 13:10 Uhr
Ziemlich geil !!!! Vielen Dank.

Zwar hab ich noch nicht geblickt, wie ich generell in ein Textfile schreibe, aber vielleicht kommt es ja, wenn ich es noch 20mal durchlese.

Der nächste Schritt wäre Speicher etc auslesen und in Textfiles schreiben.

Kennst du zufällig ein gutes Buch ? Sowas wie WMI for Dummies oder so ?
Oder ne guten Link wo es StepbyStep beschrieben ist.
Programmieren ist nämlich eigentlich so gar net mein Ding

Noch eine Frage zu dem Skript.
Wenn ich das Skript mehrmals ausführe, hängt er die aktuellen Daten hinterdran.
Schön wäre, wenn ich das aktuelle Datum hinzufügen könnte.
Wie geht das ?

Gruss Christian
Bitte warten ..
Mitglied: rubberduck
12.04.2007 um 13:57 Uhr
1 ScriptingCenter
2 Windows Script 5.6 Documentation (VBS-Funktionen einfach erklärt)
WMI CIM Studio (WMI Tools) bei Microsoft herunterladen
Scriptomatic (Microsoft gratis)
Systemscripter (Kostenpflichtig)
Scripting für Administratoren (ISBN: 3-86063-979-X)

So. Damit bist Du ausgestattet (jedenfalls bis es vielleicht nur noch PowerShell gibt).

*
Die Frage mit dem Datum:

TextStream.WriteLine FormatDateTime(Date,2) & ";" & strComputer & ";Freier Platz auf LW D:\;" & round(intFreeSpace.FreeSpace/1024/1024/1024,2) & " GB"

FormatDateTime(date,Wert)
24
vbShortDate vbShortTime
*

wql = "select * from Win32_LogicalMemoryConfiguration"
Der Wert für den Memory ist "TotalPhysicalMemory"

Wenn es jetzt keine konkreten Fragen mehr gibt, dann wünsche ich Dir viel Spass beim Üben ;)
Bitte warten ..
Mitglied: chussi
12.04.2007 um 15:26 Uhr


naja, eine kleine Frage noch.
Wenn ich Laufwerke C: und D: abfragen möchte habe ich die Abfrage wie folgt verändert
*
WQL = "SELECT * FROM Win32_LogicalDisk WHERE Caption = 'C:' OR CAPTION = 'D:'"
*

Wie schreibe das ich das Textfile, so dass die Ausgabe lautet:

12.04.2007;server1;Freier Platz auf LW C:\ 4,43 GB
12.04.2007;server2;Freier Platz auf LW D:\ 81,35 GB
Bitte warten ..
Mitglied: rubberduck
12.04.2007 um 15:56 Uhr
Konform für ein *.csv File:
For Each intFreeSpace In objWMI
If intFreeSpace.name = "C:" Then
intC = round(intFreeSpace.FreeSpace/1024/1024/1024,2)
ElseIf intFreeSpace.name = "D:" Then
intD = round(intFreeSpace.FreeSpace/1024/1024/1024,2)
End If
Next
Set textstream = objFSO.OpenTextFile(GstrLogfile, 8, true)
TextStream.WriteLine FormatDateTime(Date,2) & ";" & strComputer & ";C:\;" & intC & " GB;D:\;" & intD & " GB"
TextStream.Close
Next

Wenn Du wirklich zwei Zeilen (C,D) möchtest:
If intFreeSpace.name = "C:" Then
intC = round(intFreeSpace.FreeSpace/1024/1024/1024,2)
Set textstream = objFSO.OpenTextFile(GstrLogfile, 8, true)
TextStream.WriteLine FormatDateTime(Date,2) & ";" & strComputer & ";C:\;" & intC & " GB"
TextStream.Close
ElseIf intFreeSpace.name = "D:" Then
intD = round(intFreeSpace.FreeSpace/1024/1024/1024,2)
Set textstream = objFSO.OpenTextFile(GstrLogfile, 8, true)
TextStream.WriteLine FormatDateTime(Date,2) & ";" & strComputer & ";C:\;" & intD & " GB"
TextStream.Close
End If
Hier würde sich eine Funktion zum schreiben in ein TextFile anbieten. Ist vielleicht gar nicht so schlecht zum üben
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Ähnliche Inhalte
Datenbanken
gelöst Row Number bei einer Abfrage sinnvoll einsetzen (1)

Frage von Aximand zum Thema Datenbanken ...

Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Batch & Shell
Abfrage ob Datei von heute da ist (15)

Frage von pbelcl zum Thema Batch & Shell ...

Batch & Shell
gelöst Findstr - code für schwieriger Abfrage gesucht (9)

Frage von reissaus73 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

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

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...