PowerShell: Alle Dateien außer die 10 neuesten löschen

Heute hatte ich die Aufgabe, mit einem Script aus einem Ordner alle Dateien außer die 10 neuesten zu löschen. Kein Problem für die PowerShell:

$allFiles = dir *.* | ? { -not $_.PSIsContainer } | sort LastWriteTime -descending

$keepFiles = $allFiles | select -first 10

$allFiles | ? { $keepFiles -notcontains $_ } | % { del $_ [...]

PowerShell: Liste aller Dateitypen in einem Verzeichnis erstellen

Heute musste ich herausfinden, welche verschiedenen Dateitypen (also Dateiendungen wie *.jpg usw.) es innerhalb einer Verzeichnisstruktur gibt. Wieder mal eine einfache Aufgabe für die PowerShell:

gci -Recurse | % {$_.Extension.tolower()} | sort | unique

gci -Recurse liefert alle Dateien in allen Unterverzeichnissen
% {$_.Extension.tolower()} gibt von diesen lediglich die Dateierweiterung in Kleinbuchstaben aus (% = foreach)
sort sortiert diese [...]

PowerShell: Verfügbaren Hauptspeicher (RAM) für mehrere PCs ermitteln

Heute brauchte ich eine Liste all unserer PCs mit ihrem verfügbaren/installierten Hauptspeicher. Nichts leichter als das, denkt der PowerShell-Benutzer:

# Checks every computer in the given array for its amount of installed RAM

# —————————————————————————- #

 

$pcs = @("pc1", "pc2");

 

foreach ($pc in $pcs)

{

        $pcInfo = gwmi win32_computersystem -computername $pc;

        if ($pcInfo [...]

NetSendAll Teil 3: PowerShell-Script NetSendAll

Es folgt der letzte Artikel meiner kleinen Reihe zum PowerShell-Skript NetSendAll: das eigentliche Script, das die Nachricht versendet. Es nutzt die beiden vorgestellten Funktionen PingPC und ReadTextFile um die aus der Textdatei eingelesenen PCs anzupingen. Bei Erfolg wird die Nachricht gesendet bzw. der Nachrichtendienst gestartet, falls dieser nicht läuft. In letzterem Fall wird dann später [...]

NetSendAll Teil 2: PowerShell-Funktion ReadTextFile

Der heutige Artikel ist der zweite in meiner kleinen Reihe zum PowerShell-Skript NetSendAll, mit dem ich allen PCs unseres Netzwerkes über unterschiedliche Subnets hinweg mittels net send eine Nachricht schicken kann.
Gestern habe ich die Funktion PingPC vorgestellt, die einen einzelnen PC anpingt. Doch woher bekomme ich nun die Info, welche PCs überhaupt angepingt werden sollen? [...]

NetSendAll Teil 1: PowerShell-Funktion PingPC

Heute und in den nächsten zwei Tagen werde ich hier ein PowerShell-Script vorstellen, das es mir erlaubt, alle PCs in unserem Netzwerk per net send mit einer Nachricht zu versorgen, obwohl sich diese in unterschiedlichen Subnets befinden. Laut diesem Beitrag in der Microsoft Knowledge Base ist das nämlich weder mit net send * noch mit [...]

Active Directory mit der PowerShell auslesen

Für einige PowerShell-Scripte (die ich auch hier veröffentlichen werde, sobald sie fertig sind) brauche ich eine Liste aller Computer, die in unserem Active Directory bekannt sind. Nichts einfacher als das:

# Returns a list of all computers (running Windows XP) in the local LDAP

function GetComputersFromLDAP()

{

        trap

        {

        [...]

PowerShell: Webcomic-Download-Script

Ich lese jeden Morgen in der Frühstückspause ein paar Webcomics. Einer meiner Favoriten ist Cyanide and Happiness (oder auch explosm). Leider bin ich erst vor Kurzem auf diese Seite gestoßen und daher habe ich viele Comics nicht gelesen. Wenn ich zwischendurch mal extreme Langeweile habe (Nein, das kommt nicht vor. Ich will mich nur vorm [...]

PowerShell: Zugriff auf MySQL-Datenbank

Mit der PowerShell auf eine MySQL-Datenbank zuzugreifen ist eigentlich recht einfach, da vorhandene .NET-Klassen in der PowerShell verwendet werden können. Man benötigt nur die entsprechenden Klassen für den MySQL-Zugriff. Das ist in meinem Fall der MySQL Connector/Net 5.1. Die früheren Versionen funktionieren mit meiner Datenbank nicht (MySQL-Version 5.0):
Error connecting to the server: Unable to connect [...]

Einstieg in die Windows Powershell

Habe mir gerade mal das offizielle “