PowerShell

Manchmal kann es nötig sein, die Ereignisanzeige eines Rechners komplett zu leeren - z.B. wenn dieser für ein (Muster)-Image vorbereitet werden soll.

In diesem Fall hilft ein ganz einfacher Einzeiler der in der PowerShell ausgeführt wird:

wevtutil el | foreach { wevtutil cl $_ }

Das gestrige Datum kann man sich ganz leicht anzeigen lassen:

(get-date).AddDays(-1)

Um das Datum in der Form YYYY-MM-DD auszugeben:

$Yesterday = (get-date -date ((get-date).AddDays(-1)) -uFormat “%Y-%m-%d”)
echo $Yesterday

In diesem Beispiel soll eine Textdatei mit mehreren untereinander aufgelisteten Einträgen alphabetisch sortiert werden. Dazu wird die Datei eingelesen, und der sortierte Inhalt in eine neue Textdatei geschrieben.

$Datei = "C:\Temp\Datei.txt"
$Datei_sortiert = "C:\Temp\Datei_sortiert.txt"

if (Test-Path $Datei)
{
# Den Inhalt sortieren und in die neue Datei schreiben
Get-Content $Datei | Sort-Object > $Datei_sortiert
}

Mit diesem Script kann eine E-Mail mit Anhang versendet werden. Will man keine Datei anhängen, dann einfach die Zeilen $filename, $attachement und $mailmessage.Attachments.Add($attachement) weglassen.

function sendmail($body)
{
$datei = "C:\temp\test.txt"
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$attachement = new-object Net.Mail.Attachment($datei)
$SmtpClient.Host = "E-Mail Server"
$mailmessage.from = "Absenderadresse"
$mailmessage.To.add("Empfängeradresse")
$mailmessage.Subject = “Betreff der Nachricht”
$MailMessage.IsBodyHtml = $true
$mailmessage.Body = $body
$mailmessage.Attachments.Add($attachement)
$smtpclient.Send($mailmessage)
}

$body = "Inhalt der E-Mail (hier können auch Variablen eingefügt werden)"
sendmail $body

Hiermit werden alle momentan geöffneten Anwendungen und Ihre Fenstertitel ausgegeben:

Get-Process | Where {$_.mainWindowTItle} | Format-Table id, name, mainwindowtitle -AutoSize