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

WMI Abfrage - Freier Festplattenplatz

Mitglied: chussi

chussi (Level 1) - Jetzt verbinden

11.04.2007, aktualisiert 12.04.2007, 12544 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 ..
Ähnliche Inhalte
Windows Server
WMI VBS Registry Abfrage
gelöst Frage von LuciusCastusWindows Server3 Kommentare

Ich habe folgendes Problem: Für die GPO Verteilung benötige ich eine WMI Filterung von der Installation .Net v4. Ab ...

Windows Server
WMI LastLogon Abfrage
gelöst Frage von killtecWindows Server3 Kommentare

Hallo zusammen, ich möchte via BGInfo den LastLogon vom WMI auslesen. Dazu habe ich den code: Die Ausgabe ist ...

Windows Server
WMI Datenbank Abfrage - Berechtigungen
Frage von tobdadWindows Server2 Kommentare

Hallo Leute, ich habe ein Problem mit der Abfrage der WMI Datenbank. Über ein Programm Frage ich darin enthaltene ...

Festplatten, SSD, Raid

SCCM Abfrage Freier Speicherplatz auf Festplatte

gelöst Frage von stoepsu77Festplatten, SSD, Raid5 Kommentare

Hallo ich soll herausfinden wieviel freier Speicher auf den Datenträgern unserer Computer im Unternehmen verfügbar ist. Da wir SCCM ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 6 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 18 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 20 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 21 StundenMicrosoft12 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server34 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...