Nachfolgend eine Anleitung zum remote Abfragen des freien Speicherplatzes auf Laufwerk C: eines Windows7 x64 Clients mittels Powershell und auswerten der Daten in Cacti mit Beschreibung der Templates und des Graphen.
#Version 1.5 vom 19.03.2015 by Taste-Of-IT.de #get free DiskSpace from Remotehost return Value in Gigabyte #call script-name.ps1 <hostname> Try{ $hostname = $args[0] $DiskFreeSpace = get-wmiobject -Computername $hostname win32_logicaldisk -Filter "DeviceID='C:'" |Select-Object -ExpandProperty FreeSpace "DiskFreeSpace:"+[math]::round($DiskFreeSpace/1GB,2) } Catch{ "DiskFreeSpace:0" }
Das Script versucht den freien Speicherplatz mittels WMI-Objekt abzufragen. Gelingt dies nicht wird statt eines Fehlers, der dann in Cacti aufschlagen würde, der Wert 0 ausgegeben (Try-Catch).
Kurzanleitung für den Graphen zur Anzeigen des freien Speicherplatzes in Cacti
- Login -> console
- Data Input Methods -> Add ->
- Name = Win – PS Disk Free
- Input Type = Script/Command
- Input String = powershell c:\ps-scripte\ps-local-disk-space.ps1 <hostname>
- Create
- Input Fields -> Add
- Field[Input] = hostname
- Friendly Name = Hostname
- Special Type Code = hostname
- Output Fields -> Add
- Field = DiskFreeSpace
- Disk Free
- Create
- Save
- Data Templates -> Add
- Data Templates
- Name = Win – PS Disk Free
- Data Source
- Name = |host_description| Win – PS Disk Free
- Data Input Method = Win – PS Disk Free
- Step = 60
- Data Source Item
- Internal Data Source Name = PSDiskFree
- Minimum Value = 0
- Maximum Valu = U
- Heartbeat = 120
- Create
- Custom Data
- Hostname = frei lassen
- Data Templates
- Save
- Graph Templates -> Add
- Name = Win – PS Disk Free
- Title = |host_description| – Win – PS Disk Free
- Upper Limit = U
- Lower Limit = 0
- Base Value = 1024
- Vertical Label = Gigabyte
- Create
- Graph Template Items -> Add (Line2)
- Data Source = Win – PS Disk Free – (PSDiskFree)
- Color = Grün
- Graph Item Type = Area
- Consolidate Function = Average
- Text Format = Disk Free
- Create
- Graph Template Items -> Add (G) <-Current, Average und Max werden automatisch erstellt
- Data Source = Win – PS Disk Free – (PSDiskFree)
- Text Format = Disk Free
- Create
- Save
- Devices -> Add (falls noch kein Host existiert, ansonsten diesen Schritt überspringen)
- Description = winclient01
- Hostname = winclient01
- Host Template = none
- Downed Device Detection = Ping
- Ping Method = ICMP Ping
- Create (ICMP Ping Success (0 ms)
- Devices -> winclient01 -> Associated Graph Templates
- Add Graph Templates = Win – PS Disk Free
- Add
- Devices -> winclient01 -> Create Graphs for this Host
- Graph Template Name – Haken bei Create: Win – PS Disk Free
- Create
- Management -> Graph Management -> obigen Graph vom Host winclient01 dem Default Tree hinzufügen
- Haken hinter winclient01 – Win – PS Disk Free und darunter im DropDown
- Place on a Tree (Default Tree)
- Go
- Destination Branch: [root]
- Continue
Done – nun sollte der Graph in den nächsten 2xPoller Time erstellt werden und evtl. so aussehen:

Optimierung: z.B. Abfrage einer betimmten Festplatte (dynamisch)