[PowerShell] Script "op_Subtraction" Überladung etc.

r3m4

Commodore
Registriert
Sep. 2012
Beiträge
4.567
Hallo zusammen,
heute mal was geschäftliches :)
Ich bin leider kein Programmierer, möchte aber ein kleines Script schreiben.
Hintergrund für Interessierte:

Durch den Datenschutz sind wir gezwungen Dateien die für jedermann zugänglich sind von Zeit zu Zeit zu überprüfen bevor was böses passiert. Wir haben hier Tauschlaufwerke eingerichtet in denen Nutzer Daten untereinander easy austauschen können.
Hier bleiben Dateien oft lange liegen. Es soll jetzt für jeden User aus der AD geschaut werden wie lange die Daten da liegen und danach eine Mail geschickt werden, mit Warnung oder Hinweis dass etwas gelöscht wurde.

Script funktioniert, Nutzer werden ausgelesen und Mail geschickt. Daten zuverlässig gelöscht.

ABER:
Hat ein Benutzer Daten zur Löschung (älter als $loeschen Tage) aber nicht zur Warnung (älter als $warnung Tage aber jünger als $loeschen Tage) in seinem Laufwerk, dann springt er mir in die falsche Schleife.

Lange Rede kurzer Sinn. Hier der Code und die Operatorenverknüpfung um die es sich dreht:

Code:
If (((Get-ChildItem \\$server\abfall\$user -Recurse | Where-Object {(($heute - $_.LastWriteTime).Days -gt $warnung) -and (($heute - $_.LasWriteTime).Days -lt $loeschen)}) -ne $null) -and (Get-ChildItem \\$server\abfall\$user -Recurse | Where-Object {($heute - $_.LastWriteTime).Days -gt $loeschen}) -ne $null) # herausfinden ob Dateien zur Warnung da sind und welche gelöscht werden.

Ich bekomme folgenden Fehler bei der Ausführung:
Code:
PS C:\Users\administrator\Documents> .\abfallpruefungwerk4_test.ps1Für "op_Subtraction" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "2".
In C:\Users\administrator\Documents\abfallpruefungwerk4_test.ps1:68 Zeichen:75
+                         If (((Get-ChildItem \\$server\abfall\$user -Recurse | Where-Object {(($heu ...
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

Haut mal raus was es damit auf sich hat :king:
 
Zuletzt bearbeitet: (Domänenname gelöscht)
Wenn ich die AND Verknüpfung im ersten Teil der Get-ChildItem Abfrage weglasse, dann funktioniert es. Es sidn auch noch 3 IFElse danach mit ähnlichen abfragen die alle funktionieren.

Lediglich diese eine Verknüpfung bringt die Geschichte zum erliegen.

Edit:
$heute wird zuvor mit Get-Date befüllt, dürfte also nicht leer sein.
 
Zurück
Oben