Autom. Skript für PowerShell
Hallo @ll,
ich hoffe sehr ihr könnt mir kurzfristig helfen
Folgendes Problem:
Ich habe 4 CSV-Dateien die ich bisher in PowerShell manuell mit PGP verschlüssle. Jetzt würde ich gerne ein autom. Skript erstellen, damit die Dateien nach und nach verschlüsselt werden. Dabei sollte auch das Datum der Datei autom. angepasst werden.
Aktuell habe ich folgende Schritte, die ich immer manuell durchführe:
1. Schaue ich im Ordner C:\PGP\Archiv\ nach ob sich irgendwelche alten *.csv Dateien befinden. Wenn ja, lösche ich diese.
2. Anschließend schaue ich im Ordner C:\PGP\ nach, ob sich aktuelle CSV-Dateien befinden *_20240306.csv (immer aktuelles Datum). Wenn ja, verschiebe ich diese in den Ordner C:\PGP\Archiv\
3. Ändere ich im String immer das Datum auf den aktuellen Tag (Montag bis Freitag)
4. Samstag und Sonntag erfolgt keine Verarbeitung
5. Öffne ich PowerShell
6. Kopiere ich den ersten String in PowerShell und führe den aus, anschließend kopiere ich den nächsten String usw.
7. Anschließend verschiebe ich manuell alle *.csv.pgp Dateien vom Ordner C:\PGP\Archiv\ in den übergeordneten Ordner C:\PGP\
8. Schließe ich PowerShell wieder
Aktueller String:
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test01_20240306.csv.pgp C:\PGP\Archiv\Test01_20240306.csv
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test02_20240306.csv.pgp C:\PGP\Archiv\Test02_20240306.csv
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test03_20240306.csv.pgp C:\PGP\Archiv\Test03_20240306.csv
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test04_20240306.csv.pgp C:\PGP\Archiv\Test04_20240306.csv
Leider komme ich selbst nicht weiter. Habe es versucht und scheitere immer wieder.
Ich hoffe sehr, ihr könnt mir helfen.
Vielen lieben Dank
ich hoffe sehr ihr könnt mir kurzfristig helfen
Folgendes Problem:
Ich habe 4 CSV-Dateien die ich bisher in PowerShell manuell mit PGP verschlüssle. Jetzt würde ich gerne ein autom. Skript erstellen, damit die Dateien nach und nach verschlüsselt werden. Dabei sollte auch das Datum der Datei autom. angepasst werden.
Aktuell habe ich folgende Schritte, die ich immer manuell durchführe:
1. Schaue ich im Ordner C:\PGP\Archiv\ nach ob sich irgendwelche alten *.csv Dateien befinden. Wenn ja, lösche ich diese.
2. Anschließend schaue ich im Ordner C:\PGP\ nach, ob sich aktuelle CSV-Dateien befinden *_20240306.csv (immer aktuelles Datum). Wenn ja, verschiebe ich diese in den Ordner C:\PGP\Archiv\
3. Ändere ich im String immer das Datum auf den aktuellen Tag (Montag bis Freitag)
4. Samstag und Sonntag erfolgt keine Verarbeitung
5. Öffne ich PowerShell
6. Kopiere ich den ersten String in PowerShell und führe den aus, anschließend kopiere ich den nächsten String usw.
7. Anschließend verschiebe ich manuell alle *.csv.pgp Dateien vom Ordner C:\PGP\Archiv\ in den übergeordneten Ordner C:\PGP\
8. Schließe ich PowerShell wieder
Aktueller String:
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test01_20240306.csv.pgp C:\PGP\Archiv\Test01_20240306.csv
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test02_20240306.csv.pgp C:\PGP\Archiv\Test02_20240306.csv
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test03_20240306.csv.pgp C:\PGP\Archiv\Test03_20240306.csv
.\GnuPG\bin\gpg.exe -e -r ABCDEFGH -o C:\PGP\Archiv\Test04_20240306.csv.pgp C:\PGP\Archiv\Test04_20240306.csv
Leider komme ich selbst nicht weiter. Habe es versucht und scheitere immer wieder.
Ich hoffe sehr, ihr könnt mir helfen.
Vielen lieben Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3607310865
Url: https://administrator.de/forum/autom-skript-fuer-powershell-3607310865.html
Ausgedruckt am: 06.04.2025 um 22:04 Uhr
10 Kommentare
Neuester Kommentar

$folder = 'C:\PGP'
$archiv = 'C:\PGP\ARCHIV'
remove-item -Path "$archiv\*.csv" -Force -EA SilentlyContinue
foreach ($file in Get-ChildItem -Path $folder -File -Filter "*_$(Get-Date -f yyyyMMdd).csv"){
try{
& ".\GnuPG\bin\gpg.exe" --batch --yes -er ABCDEFGH -o "$folder\$($file.Name).pgp" $file.Fullname
if ($?) {
$file | move-item -Destination $archiv -force -EA Stop
}
}catch{
write-host $_.Exception.Message -F Red
}
}

Zitat von @Abuelito73:
7. Anschließend verschiebe ich manuell alle *.csv.pgp Dateien vom Ordner C:\PGP\Archiv\ in den übergeordneten Ordner C:\PGP\
Dieser Punkt wird mit dem Skript leider nicht ausgeführt.
Doch das geschieht in einem Schritt in Zeile 6, anschließendes verschieben ist dann nicht mehr nötig 7. Anschließend verschiebe ich manuell alle *.csv.pgp Dateien vom Ordner C:\PGP\Archiv\ in den übergeordneten Ordner C:\PGP\
Dieser Punkt wird mit dem Skript leider nicht ausgeführt.
Nachdem die CSV-Dateien mit PGP verschlüsselt werden, sollen alle *.csv.pgp Dateien in den Ordner C:\PGP\ verschoben werden.
Mit Deinem Skript bleiben alle Dateien *.csv und *.csv.pgp im Ordner C:\PGP\Archiv\
Nein, Zeile 6 gibt die PGP Dateien direkt in den C:\PGP Ordner aus, anschließendes verschieben ist also überflüssig weil die Datei ja schon in C:\PGP ausgegeben wird.Mit Deinem Skript bleiben alle Dateien *.csv und *.csv.pgp im Ordner C:\PGP\Archiv\
Siehst du ja hier, da wird der Zieldateiname inkl. Ziel-Ordner festgelegt und das ist der Ordner C:\PGP\ + Dateiname + ".pgp"
-o `"$($folder)\$($file.Name).pgp`"

Zitat von @Abuelito73:
Hm, komisch ... wenn ich das Skript ausführe, werden die CSV-Dateien vom Ordner C:\PGP\ nach C:\PGP\Archiv\ verschoben
Korrekt.Hm, komisch ... wenn ich das Skript ausführe, werden die CSV-Dateien vom Ordner C:\PGP\ nach C:\PGP\Archiv\ verschoben
und anschließend auch verschlüsselt und als *.csv.pgp abgelegt, aber diese (*.csv.pgp) werden dann nicht vom Ordner C:\PGP\Archiv\ in den Ordner C:\PGP\ verschoben.
Müssen sie ja nicht weil sie direkt in C:\PGP mit dem gpg Befehl ausgegeben werden!Klappt hier im Test wie gewünscht.

Vermutlich hast du einen Kopier oder Anpassungsfehler im Skript gemacht, Code nochmal kopieren und richtig anpassen.