PowerShell
Alle Windows-Protokolle (Eventlogs) vollständig leeren
- Details
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 ermitteln
- Details
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
Den Inhalt einer Datei alphabetisch sortieren
- Details
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
}
E-Mail (mit Anhang) versenden
- Details
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
Geöffnete Anwendungen mit Fenstertitel ausgeben
- Details
Hiermit werden alle momentan geöffneten Anwendungen und Ihre Fenstertitel ausgegeben:
Get-Process | Where {$_.mainWindowTItle} | Format-Table id, name, mainwindowtitle -AutoSize