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

gelöst Powershell (.ps1) via Batch (.cmd) starten (Aufgabenplanung)

Mitglied: 101462

101462 (Level 1)

25.07.2011 um 13:31 Uhr, 16102 Aufrufe, 2 Kommentare

Windows Small Business Server 2008
.ps1 & .cmd

Ich habe eine Powershell-Datei (.ps1), die bei meim Server und diversen PC's den Festplattenspeicher ausliest und mir den Bericht per Email zu kommen lässt.

01.
# First lets create a text file, where we will later save the freedisk space info 
02.
$freeSpaceFileName = "FreeSpace.htm" 
03.
$serverlist = "sl.txt" 
04.
$warning = 25 
05.
$critical = 10 
06.
New-Item -ItemType file $freeSpaceFileName -Force 
07.
# Getting the freespace info using WMI 
08.
#Get-WmiObject win32_logicaldisk  | Where-Object {$_.drivetype -eq 3} | format-table DeviceID, VolumeName,status,Size,FreeSpace | Out-File FreeSpace.txt 
09.
# Function to write the HTML Header to the file 
10.
Function writeHtmlHeader 
11.
12.
param($fileName) 
13.
$date = ( get-date ).ToString('yyyy/MM/dd') 
14.
Add-Content $fileName "<html>" 
15.
Add-Content $fileName "<head>" 
16.
Add-Content $fileName "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>" 
17.
Add-Content $fileName '<title>EVOLUTION.COM DiskSpace Report</title>' 
18.
Add-Content $fileName '<STYLE TYPE="text/css">' 
19.
Add-Content $fileName  "<!--" 
20.
Add-Content $fileName  "td {" 
21.
Add-Content $fileName  "font-family: Tahoma;" 
22.
Add-Content $fileName  "font-size: 11px;" 
23.
Add-Content $fileName  "border-top: 1px solid #999999;" 
24.
Add-Content $fileName  "border-right: 1px solid #999999;" 
25.
Add-Content $fileName  "border-bottom: 1px solid #999999;" 
26.
Add-Content $fileName  "border-left: 1px solid #999999;" 
27.
Add-Content $fileName  "padding-top: 0px;" 
28.
Add-Content $fileName  "padding-right: 0px;" 
29.
Add-Content $fileName  "padding-bottom: 0px;" 
30.
Add-Content $fileName  "padding-left: 0px;" 
31.
Add-Content $fileName  "}" 
32.
Add-Content $fileName  "body {" 
33.
Add-Content $fileName  "margin-left: 5px;" 
34.
Add-Content $fileName  "margin-top: 5px;" 
35.
Add-Content $fileName  "margin-right: 0px;" 
36.
Add-Content $fileName  "margin-bottom: 10px;" 
37.
Add-Content $fileName  "" 
38.
Add-Content $fileName  "table {" 
39.
Add-Content $fileName  "border: thin solid #000000;" 
40.
Add-Content $fileName  "}" 
41.
Add-Content $fileName  "-->" 
42.
Add-Content $fileName  "</style>" 
43.
Add-Content $fileName "</head>" 
44.
Add-Content $fileName "<body>" 
45.
 
46.
Add-Content $fileName  "<table width='100%'>" 
47.
Add-Content $fileName  "<tr bgcolor='#CCCCCC'>" 
48.
Add-Content $fileName  "<td colspan='7' height='25' align='center'>" 
49.
Add-Content $fileName  "<font face='tahoma' color='#003399' size='4'><strong>EVOLVE.COM DiskSpace Report - $date</strong></font>" 
50.
Add-Content $fileName  "</td>" 
51.
Add-Content $fileName  "</tr>" 
52.
Add-Content $fileName  "</table>" 
53.
 
54.
55.
 
56.
# Function to write the HTML Header to the file 
57.
Function writeTableHeader 
58.
59.
param($fileName) 
60.
 
61.
Add-Content $fileName "<tr bgcolor=#CCCCCC>" 
62.
Add-Content $fileName "<td width='10%' align='center'>Drive</td>" 
63.
Add-Content $fileName "<td width='50%' align='center'>Drive Label</td>" 
64.
Add-Content $fileName "<td width='10%' align='center'>Total Capacity(GB)</td>" 
65.
Add-Content $fileName "<td width='10%' align='center'>Used Capacity(GB)</td>" 
66.
Add-Content $fileName "<td width='10%' align='center'>Free Space(GB)</td>" 
67.
Add-Content $fileName "<td width='10%' align='center'>Freespace %</td>" 
68.
Add-Content $fileName "</tr>" 
69.
70.
 
71.
Function writeHtmlFooter 
72.
73.
param($fileName) 
74.
 
75.
Add-Content $fileName "</body>" 
76.
Add-Content $fileName "</html>" 
77.
78.
 
79.
Function writeDiskInfo 
80.
81.
param($fileName,$devId,$volName,$frSpace,$totSpace) 
82.
$totSpace=[math]::Round(($totSpace/1073741824),2) 
83.
$frSpace=[Math]::Round(($frSpace/1073741824),2) 
84.
$usedSpace = $totSpace - $frspace 
85.
$usedSpace=[Math]::Round($usedSpace,2) 
86.
$freePercent = ($frspace/$totSpace)*100 
87.
$freePercent = [Math]::Round($freePercent,0) 
88.
 if ($freePercent -gt $warning) 
89.
90.
 Add-Content $fileName "<tr>" 
91.
 Add-Content $fileName "<td>$devid</td>" 
92.
 Add-Content $fileName "<td>$volName</td>" 
93.
 
94.
 Add-Content $fileName "<td>$totSpace</td>" 
95.
 Add-Content $fileName "<td>$usedSpace</td>" 
96.
 Add-Content $fileName "<td>$frSpace</td>" 
97.
 Add-Content $fileName "<td>$freePercent</td>" 
98.
 Add-Content $fileName "</tr>" 
99.
100.
 elseif ($freePercent -le $critical) 
101.
102.
 Add-Content $fileName "<tr>" 
103.
 Add-Content $fileName "<td>$devid</td>" 
104.
 Add-Content $fileName "<td>$volName</td>" 
105.
 Add-Content $fileName "<td>$totSpace</td>" 
106.
 Add-Content $fileName "<td>$usedSpace</td>" 
107.
 Add-Content $fileName "<td>$frSpace</td>" 
108.
 Add-Content $fileName "<td bgcolor='#FF0000' align=center>$freePercent</td>" 
109.
 #<td bgcolor='#FF0000' align=center> 
110.
 Add-Content $fileName "</tr>" 
111.
112.
 else 
113.
114.
 Add-Content $fileName "<tr>" 
115.
 Add-Content $fileName "<td>$devid</td>" 
116.
 Add-Content $fileName "<td>$volName</td>" 
117.
 Add-Content $fileName "<td>$totSpace</td>" 
118.
 Add-Content $fileName "<td>$usedSpace</td>" 
119.
 Add-Content $fileName "<td>$frSpace</td>" 
120.
 Add-Content $fileName "<td bgcolor='#FBB917' align=center>$freePercent</td>" 
121.
 # #FBB917 
122.
 Add-Content $fileName "</tr>" 
123.
124.
125.
Function sendEmail 
126.
{ param($from,$to,$subject,$smtphost,$htmlFileName) 
127.
$body = Get-Content $htmlFileName 
128.
$smtp= New-Object System.Net.Mail.SmtpClient $smtphost 
129.
$msg = New-Object System.Net.Mail.MailMessage $from, $to, $subject, $body 
130.
$msg.isBodyhtml = $true 
131.
$smtp.send($msg) 
132.
 
133.
134.
 
135.
writeHtmlHeader $freeSpaceFileName 
136.
foreach ($server in Get-Content $serverlist) 
137.
138.
 Add-Content $freeSpaceFileName "<table width='100%'><tbody>" 
139.
 Add-Content $freeSpaceFileName "<tr bgcolor='#CCCCCC'>" 
140.
 Add-Content $freeSpaceFileName "<td width='100%' align='center' colSpan=6><font face='tahoma' color='#003399' size='2'><strong> $server </strong></font></td>" 
141.
 Add-Content $freeSpaceFileName "</tr>" 
142.
 
143.
 writeTableHeader $freeSpaceFileName 
144.
 
145.
 $dp = Get-WmiObject win32_logicaldisk -ComputerName $server |  Where-Object {$_.drivetype -eq 3} 
146.
 foreach ($item in $dp) 
147.
148.
 Write-Host  $item.DeviceID  $item.VolumeName $item.FreeSpace $item.Size 
149.
 writeDiskInfo $freeSpaceFileName $item.DeviceID $item.VolumeName $item.FreeSpace $item.Size 
150.
 
151.
152.
Add-Content $freeSpaceFileName "</table>" 
153.
154.
writeHtmlFooter $freeSpaceFileName 
155.
$date = ( get-date ).ToString('yyyy/MM/dd') 
156.
sendEmail send@email.com receive@email.com "Disk Space Report - $Date" hub1 $freeSpaceFileName
Wenn ich diese besagte Powershell-Datei aufrufe via powershell oder cmd funktioniert alles

Auszug aus cmd:
01.
@echo off 
02.
 
03.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ". 'C:\Program Files\bin\FreeSpace.ps1'" 
04.
 
05.
exit
füge ich diese cmd in die Aufgabenplanung ein, steht zwar da, das die ps-datei ausgeführt wurde, aber in der email seh ich nur eine Zeile (Überschrift).

Eine ähnliche ps1 datei die ich über Exchange-Verwaltungsconsole aufrufe über cmd und Aufgabenplanung funktioniert einwandfrei. Nur diese nicht.


Danke im Voraus
Mitglied: filippg
25.07.2011 um 20:46 Uhr
Hallo,

eine EMail bekommst du aber? Dann wird ja das Skript selber schonmal ausgeführt.
Wenn der Tabellenheader drin ist, aber keine Diskdaten, liegt der Verdacht nahe, dass keine Diskdaten ausgelesen wurden.
Kann natürlich daran liegen, dass der Nutzer, der den Scheduled Task ausführt nicht für WMI berechtigt ist. Hast du das schon sichergestellt?
Mein Tipp wäre aber erstmal, dass das Arbeitsverzeichnis nicht stimmt. Die sl.txt gibst du nur als relativen Dateinamen an, nicht absolut. Versuch doch das mal.

Gruß

Filipp
Bitte warten ..
Mitglied: 101462
26.07.2011 um 06:45 Uhr
Man dankt =)

Ja, Email hatte ich bekommen, allerdings nur die Überschrift wurde ausgegeben ...
Script wurde im Aufgabenplaner schon als Administrator ausgeführt (daran lags nicht)

Deine Lösung mit der Anpassung des Pfades hat gepasst:

Vorher:
01.
# First lets create a text file, where we will later save the freedisk space info 
02.
$freeSpaceFileName = "FreeSpace.htm" 
03.
$serverlist = "sl.txt" 
04.
[...]
Nachher:
01.
# First lets create a text file, where we will later save the freedisk space info 
02.
$freeSpaceFileName = "FreeSpace.htm" 
03.
$serverlist = "C:\reports\sl.txt" 
04.
[...]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

WinSCP in einer Batch starten durch Aufgabenplanung

gelöst Frage von Xanathos57Batch & Shell13 Kommentare

Hallo zusammen, ich hätte da ein Problem. Ich will mittels einer Aufgabenplanung eine Batch-Datei ausführen lassen. In der genannten ...

Batch & Shell

Batch als Admin starten per Aufgabenplanung

gelöst Frage von TheRealErebosBatch & Shell6 Kommentare

Hallo, ich möchte mit wbadmin eine Sicherung meines Servers machen, funktioniert auch 1A wenn ich das Batch manuell starte ...

Batch & Shell

Ps1-Skript als Admin mit Credentials starten

gelöst Frage von barry99Batch & Shell9 Kommentare

Hallo, ich habe das folgende Problem und brauch eure Hilfe da ich selber nicht weiter komme: ich möchte ein ...

Batch & Shell

Powershell-ISE - Buggy? Start-Process cmd - mit anderen Credentials

Frage von Raaja89Batch & Shell8 Kommentare

Hallo zusammen, ich habe folgenden Befehlt: Als Get-Credential wird ein Benutzer mit Admin Rechten benutzt Warum funktioniert dieser Befehl ...

Neue Wissensbeiträge
Administrator.de Feedback
Unsere Datenbank wurde umgestellt
Information von Frank vor Administrator.de Feedback

Hallo User, ich habe in der Nacht unsere Datenbank umgestellt. D.h. neue Version (MySQL 8) und andere Örtlichkeit. Sollte ...

Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 2 TagenSonstige Systeme5 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 2 TagenDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Windows 10

Macht Windows 10.1809 Probleme mit gemappten Netzlaufwerken (betrifft wohl insbes. AMD-Hardware und Trend Micro AV-Produkte)?

Tipp von VGem-e vor 2 TagenWindows 103 Kommentare

Moin Kollegen, grad dazu gefunden und Hatten wir dies nicht bei früheren W10-Upgrades ebenfalls? Da bleibt nur, das Upgrade ...

Heiß diskutierte Inhalte
Windows 10
Programm unter Windows 10 automatisch mit administrativen Rechten starten
Frage von GrafmulderWindows 1016 Kommentare

Hallo zusammen! Zur Situation: Ich benutze Windows 10 Pro für Workstations (Build 1803) mit zwei Konten. Einem Administratorkonto und ...

Windows Server
Cisco Annyconnect Secure Mobility Client - Windows2003 Server unable to connect
Frage von novregenWindows Server11 Kommentare

Von einem Windows 2003 Server soll eine Verbindung über Cisco Anyconnect Mobility Client zu einer Gegenstelle aufgebaut werden. Die ...

LAN, WAN, Wireless
Empfehlung Powerline Adapter
Frage von AgilolfingerLAN, WAN, Wireless9 Kommentare

Hallo Zusammen, ich brauche eine Empfehlung von euch. Ich möchte in einem privaten Haushalt eine Powerline Lösung einrichten. Allerdings ...

Microsoft
Schulungs-Microsoft-Konten zentral verwalten
Frage von thejarneMicrosoft9 Kommentare

Hallo zusammen, wir haben bei uns in der Firma 12 Computer-Arbeitsplätze für EDV-Schulungen, wo u.A. auch Computer-Basics-Kurse (wie verwende ...