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

Reporting Skript

Frage Entwicklung Batch & Shell

Mitglied: TlBERlUS

TlBERlUS (Level 2) - Jetzt verbinden

04.11.2014, aktualisiert 16:04 Uhr, 1263 Aufrufe

Hallo Zusammen,

ich habe mal, um des Lernens und Monitoring willens, ein kleineres Skript geschrieben, welches ich in der Aufgabenplanung laufen lassen will.
Ich würde gerne eure Meinung hierzu hören/wissen, was man noch hinzufügen könnte.

01.
<# 
02.
Anforderung: Installierte Powershell auf Installations- und Zielsystem; Berechtigungen; Exchangeserver 
03.
 
04.
Das Tool erstellt Speicher-Reports für die Zielsystem und legt sie als Html-Datei in einem versteckten Ordner ab.  
05.
Die Reports werden per Mail verschickt. Am Ende eines Monats werden der momentane und der Report vom 1. versendet.  
06.
#> 
07.
 
08.
 
09.
#========AD-Abfrage nach den Zielsystemen========# 
10.
 
11.
$Server = Get-ADComputer -Filter * | where {$_.name -like "vm*"} | select -ExpandProperty  name | Sort-Object 
12.
 
13.
#========Deklaration von Zeit-variablen======== 
14.
 
15.
$time = Get-Date -Format d 
16.
$ty = (Get-Date).Year 
17.
$tm = (Get-Date).Month 
18.
$tm2 = (Get-Date).AddDays(+1) 
19.
$tm2 = ($tm2).Month 
20.
 
21.
#========Prüfung/Erstellung des Speicherorts der Reports========# 
22.
 
23.
$path = "C:\Reports" 
24.
$search = Test-Path $path 
25.
 
26.
if($Search -eq "True"){ 
27.
}else{ 
28.
New-Item $path -type directory  
29.
Set-ItemProperty $path -Name Attributes -Value ([System.IO.FileAttributes]::Hidden)  
30.
31.
 
32.
#========Erstellung der Tabellen======== 
33.
 
34.
$table1 = Get-WmiObject win32_logicaldisk -ComputerName $Server | where{$_.DriveType -eq 3} |select ` 
35.
    @{Expression={$_.PSComputername};Label="System"}, ` 
36.
    @{Expression={$_.DeviceID};Label="Partition"}, ` 
37.
    @{Expression={[decimal]("{0:N0}" -f($_.Size/1gb))};Label="Max.(GB)"},` 
38.
    @{Expression={[decimal]("{0:N0}" -f($_.Freespace/1GB))};Label="Frei(GB)"}, ` 
39.
    @{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10) {"{0:P0}" -f(($_.freespace/1gb)/($_.size/1gb))}else{"{0:P0}" -f(($_.freespace/1gb)/($_.size/1gb))}};Name="Frei(%)"}, ` 
40.
    @{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10) {"OK"}else{"Warnung"}};Name="Status"}` 
41.
    | ConvertTo-Html -as Table -Fragment -PreContent "<h2>Uebersicht</h2>" | Out-String 
42.
 
43.
$table2 = Get-WmiObject win32_logicaldisk -ComputerName $Server | where{$_.DriveType -eq 3} |select ` 
44.
    @{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10){}else{$_.PSComputername}};Label="System"}, ` 
45.
    @{Expression={if((($_.freespace/1gb)/($_.size/1gb))*100-gt 10){}else{$_.DeviceID}};Label="Partition"} ` 
46.
    | ConvertTo-Html -as Table -Fragment -PreContent "<h3>Ueberpruefen</h3>" | Out-String 
47.
 
48.
 
49.
#========Erstellen der Report-Datei========# 
50.
 
51.
 ConvertTo-Html -Head "<h1>$time Serverreport: VM06-CIBS-DC1 </h1>" -PostContent $table1, $table2 -CssUri C:\style.css ` 
52.
    | Set-Content C:\Reports\Report_$time.html  
53.
 
54.
#========Prüfung auf Datum======== 
55.
 
56.
if($tm2 -gt $tm){ 
57.
  
58.
$body = Get-Content C:\Reports\Report_01.$tm.$ty.html 
59.
$body2 = Get-Content C:\Reports\Report_$time.html 
60.
 
61.
Send-MailMessage -From TestIT@mail.de -To TestIT@mail.de -Subject Server-Report -SmtpServer Test-msx -body "$body $body2" -BodyAsHtml  
62.
}else{ 
63.
 
64.
$body = Get-Content C:\Reports\Report_$time.html 
65.
Send-MailMessage -From TestIT@mail.de -To TestIT@mail.de -Subject Server-Report -SmtpServer Test-msx -body "$body" -BodyAsHtml  
66.
 
67.
}
und die css

01.
body{ 
02.
background-color: white; 
03.
color:black; 
04.
05.
 
06.
table, th, td { 
07.
border: 1px solid #040; 
08.
border-collapse: collapse; 
09.
empty-cells: hide; 
10.
background-color: white; 
11.
 
12.
font-family: Lucida Console; 
13.
font-size: 11pt; 
14.
text-align: center; 
15.
}  
16.
 
17.
th{ 
18.
background-color:cyan; 
19.
20.
 
21.
h1{ 
22.
width:200pt; 
23.
background-color: limegreen; 
24.
color:black; 
25.
font-size: 15pt; 
26.
27.
 
28.
h2{ 
29.
background-color:lightblue; 
30.
width:200pt; 
31.
32.
 
33.
h3{ 
34.
background-color:orangered; 
35.
width:200pt; 
36.
}
Grüße,

Tiberius
Ähnliche Inhalte
VB for Applications
gelöst VBA Excel Skript - Hilfe! (1)

Frage von Compu2017 zum Thema VB for Applications ...

Batch & Shell
gelöst PowerShell Skript für doppelte Dateinamen (1)

Frage von janelsaesser zum Thema Batch & Shell ...

Windows Server
gelöst Powershell Skript als geplanter Task (9)

Frage von Ex0r2k16 zum Thema Windows Server ...

Batch & Shell
Powershell Skript Ändern - Mehrere Hotfix IDs finden (1)

Frage von pixel0815 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Backup

Veeam-Fehler bei Bandwechsel: Timed out waiting for tape

Tipp von goRaini zum Thema Backup ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (25)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...