Powershell, Lokales Ergebnis und Server Ergebnis unterschiedlich
Hallo,
ich hoffe ihr könnt mir helfen. Ich bin so langsam echt am verzweifeln...
Zu meinem Problem:
Ich soll für meinen Ausbilder ein Powershell Skript entwerfen dass den Freien Speicherplatz auf den Serverlaufwerken berechnet und ab einer bestimmten Grenze eine Email schickt.
Nun muss ich dazu sagen das ich noch ein absoluter Powershellneuling bin, aber ich hab alles hinbekommen so wie er es wollte.
Serverlaufwerke werden ausgelesen, Ergebnis in einer HTML Datei gespeichert, und wenn die Warngrenze erreicht wurde wird das HTML File als Email verschickt.
Mein Problem ist jetzt folgendes:
Wenn ich das Skript LOKAL ausführe bekomm ich wie gewollt als letzte Spalte in der Email die Prozentangabe des freien Speichers.
Auf dem Server (Windows Server 2003) jedoch nicht!
Weiss jemand woran das liegen könnte?!?
Hier mal mein Skript:
$Empfaenger = "bla@blabla.com"
$Absender = error@blabla.com"
$WarnLimit = "15"
function sendmail($mail)
{
$body = get-content "d:\log.html"
$SmtpServer = "10.1.1.105"
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "$SmtpServer"
$mailmessage.from = "$Absender"
$mailmessage.To.add("$Empfaenger")
$mailmessage.Subject = “Serverlaufwerk fast voll!!!”
$MailMessage.IsBodyHtml = $true
$mailmessage.Body = $body
$smtpclient.Send($mailmessage)
}
$a = "<style>"
$a = $a + "BODY{background-color:peachpuff;}"
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:thistle}"
$a = $a + "TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"
$a = $a + "</style>"
$festplatten = gwmi win32_logicaldisk -filter "drivetype=3" | select SystemName,DeviceID,VolumeName,@{Name="Size";Expression={"{0:N1}" -f ($_.Size/1gb)}},@{Name="FreeSpace";Expression={"{0:N1}" -f ($_.FreeSpace/1gb)}},@{Name="Prozent";Expression={($_.FreeSpace / $_.Size)*100}} | convertto-html -property SystemName,DeviceID,VolumeName,FreeSpace,Prozent -head $a –body "<H2>Freier Speicher</H2>" | Out-File d:\log.html
$disks = gwmi win32_logicaldisk -filter "drivetype=3" | select Size,FreeSpace
foreach ($disk in $disks)
{
$FreierSpeicher = ($disk.freespace / 1GB)
$GesamtSpeicher = ($disk.Size / 1GB)
$FreierSpeicherProzent = (($disk.freespace / $disk.Size)*100)
if ($FreierSpeicherProzent -lt $WarnLimit)
{
$i++
}
}
if ($i -gt 0)
{
sendmail $mail
}
Please also mark the comments that contributed to the solution of the article
Content-Key: 136719
Url: https://administrator.de/contentid/136719
Printed on: April 25, 2024 at 07:04 o'clock
4 Comments
Latest comment