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
GELÖST

Powershell, Lokales Ergebnis und Server Ergebnis unterschiedlich

Frage Entwicklung Batch & Shell

Mitglied: trillian2002

trillian2002 (Level 1) - Jetzt verbinden

24.02.2010, aktualisiert 10:05 Uhr, 6850 Aufrufe, 4 Kommentare

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:

01.
  
02.
$Empfaenger = "bla@blabla.com" 
03.
$Absender = error@blabla.com" 
04.
$WarnLimit = "15" 
05.
 
06.
function sendmail($mail) 
07.
08.
$body = get-content "d:\log.html" 
09.
$SmtpServer = "10.1.1.105" 
10.
 
11.
$SmtpClient = new-object system.net.mail.smtpClient 
12.
$MailMessage = New-Object system.net.mail.mailmessage 
13.
$SmtpClient.Host = "$SmtpServer" 
14.
$mailmessage.from = "$Absender" 
15.
$mailmessage.To.add("$Empfaenger") 
16.
$mailmessage.Subject = “Serverlaufwerk fast voll!!!” 
17.
$MailMessage.IsBodyHtml = $true 
18.
$mailmessage.Body = $body 
19.
$smtpclient.Send($mailmessage) 
20.
21.
 
22.
$a = "<style>" 
23.
$a = $a + "BODY{background-color:peachpuff;}" 
24.
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}" 
25.
$a = $a + "TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:thistle}" 
26.
$a = $a + "TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:PaleGoldenrod}" 
27.
$a = $a + "</style>" 
28.
 
29.
$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 
30.
$disks = gwmi win32_logicaldisk -filter "drivetype=3" | select Size,FreeSpace 
31.
 
32.
foreach ($disk in $disks) 
33.
34.
    $FreierSpeicher = ($disk.freespace / 1GB) 
35.
    $GesamtSpeicher = ($disk.Size / 1GB) 
36.
    $FreierSpeicherProzent = (($disk.freespace / $disk.Size)*100) 
37.
	 
38.
    if ($FreierSpeicherProzent -lt $WarnLimit) 
39.
40.
    $i++  
41.
    }    
42.
43.
 
44.
if ($i -gt 0) 
45.
{  
46.
sendmail $mail 
47.
}
Mitglied: lowbyte1
24.02.2010 um 21:59 Uhr
Hi

Ist auf dem Win2003 Server die Powershell installiert ?
Sonst fällt mir da so spontan auch nichs ein.


lowbyte
Bitte warten ..
Mitglied: trillian2002
25.02.2010 um 07:08 Uhr
Ja ist sie!

Er macht ja auch alles, nur das eben die Spalte mit der Prozentangabe in der Email fehlt wenn ichs auf dem Server ausführe.

Sehr seltsam das ganze ^^

trillian2002
Bitte warten ..
Mitglied: lowbyte1
25.02.2010 um 13:38 Uhr
Hi

Bin nicht gerade der Powershell liebhaber. Doch würde das ganze mal debugen ! Also schritt für schritt ausführen und gucken was sich tut ! Ansonsten müsste ich mir das genau anschauen.
Probier mal mit debugen ... das Problem würde mich auch intressieren !



lowbyte
Bitte warten ..
Mitglied: trillian2002
25.02.2010 um 15:32 Uhr
habs gefunden...

Zeile 29

$festplatten = gwmi win32_logicaldisk -filter "drivetype=3"....

geändert in

$disks = gwmi win32_logicaldisk -filter "drivetype=3"....

dann gings (gleichzeitig hab ich das Prozentergebnis noch auf 2 Stellen nach dem Komma runden lassen)

so sieht die zeile jetzt aus, und funktioniert bestens ;)

01.
$disks = 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={[Math]::Round(($_.FreeSpace / $_.Size)*100 ,2)}} | convertto-html -property SystemName,DeviceID,VolumeName,FreeSpace,Prozent -head $a –body "<H2>Freier Speicher</H2>" | Out-File d:\log.html
danke trotzdem für eure tips
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell: Select-String erzeugt nicht das gewünschte Ergebnis (7)

Frage von MuHMuH zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: Lokaler DTC Eigenschaften setzen? (2)

Frage von 121747 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Anmeldung auf Servern prüfen (3)

Frage von DukeofNet zum Thema Batch & Shell ...

Windows Userverwaltung
Lokale Ordnerumleitung auf den Server wieder lokal umsetzen (6)

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

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (21)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Hosting & Housing
CNAME auf FTP funkt nicht mehr (7)

Frage von Wintektiv zum Thema Hosting & Housing ...

Netzwerkmanagement
Suche eine Software für Cloudverwaltung (6)

Frage von tsunami zum Thema Netzwerkmanagement ...