gelöst Powershell - Alle Ordner eines Tages zählen und ausgeben

Mitglied: Lupora

Lupora (Level 1) - Jetzt verbinden

13.08.2020, aktualisiert 20:31 Uhr, 431 Aufrufe, 18 Kommentare, 1 Danke

Hallo Experten,

ich möchte mir ein Script bauen was überprüft wie viele Ordner in einem gewissen Verzeichnis am Vortag erstellt wurden.
Das Ergebnis soll in eine Variable geschrieben werden.

Ablauf:
Das Script wird automatisiert ausgeführt um z.B. 17.00 Uhr. (Windows Task Scheduler).
Es prüft alle Ordner die im Zielverzeichnis am Vortag erstellt wurden. Wenn das z.B. 30 Ordner sind, wird in die Variable 30 geschrieben.
Das Creation Date kann als Größe heran gezogen werden.

Eine Besonderheit: Wenn das Script an einem Montag ausgeführt wird, soll es die Summe aller Ordner die in der vorherigen Woche erstellt wurden in eine Variable schreiben.
Die Variable gebe ich dann aus und schreibe sie weg.

Mein bisheriger Versuch:
Freue mich über Hilfe
Mitglied: Lupora
13.08.2020 um 20:40 Uhr
Hab rausgefunden das ich mit
den Vortrag habe.

Jetzt bräuchte ich noch irgendwie ne Möglichkeit zu prüfen "überall wo Creationdate = Vortagsdatum zähle 1 hoch".

Evtl. noch ein Problem: In dem Zielverzeichnis gibt es circa 4000 bis 7000 Unterordner die zu prüfen wären.
Bitte warten ..
Mitglied: SeaStorm
13.08.2020 um 20:59 Uhr
Hi

Bitte warten ..
Mitglied: Lupora
13.08.2020 um 21:12 Uhr
Wow, genau was ich gesucht habe. Danke!

Letzte Frage: Könntest du mir mit dem zweiten Teil meines Scripts helfen?

Eine Besonderheit: Wenn das Script an einem Montag ausgeführt wird, soll es die Summe aller Ordner die in der vorherigen Woche erstellt wurden in eine Variable schreiben.
Die Variable gebe ich dann aus und schreibe sie weg.
Bitte warten ..
Mitglied: SeaStorm
13.08.2020 um 21:44 Uhr
Hi

ist eigentlich das gleiche in Grün.
Ich habs mal mit -Recurse gemacht, damit auch die Unterordner entsprechend gezählt werden
Bitte warten ..
Mitglied: mbehrens
13.08.2020 um 22:28 Uhr
Zitat von Lupora:

Hab rausgefunden das ich mit
den Vortrag habe.

Jetzt bräuchte ich noch irgendwie ne Möglichkeit zu prüfen "überall wo Creationdate = Vortagsdatum zähle 1 hoch".

Evtl. noch ein Problem: In dem Zielverzeichnis gibt es circa 4000 bis 7000 Unterordner die zu prüfen wären.

An schlechten Tagen als Einzeiler:

Bitte warten ..
Mitglied: Lupora
14.08.2020, aktualisiert um 09:50 Uhr
Herzlichen Dank euch beiden!

Nach einigem hin und her jetzt noch die letzte Änderung:

Das Script soll grundsätzlich alle erstellten Ordner des Vortags ausgeben, alle erstellten Ordner des Vormonats, alle Ordner der Vorwoche und gesamt alle Ordner.
Die Thematik mit "nur Montags soll" ist erstmal egal.

Folgendes habe ich probiert:

Vortrag wird ausgegeben in:
Alle Ordner werden ausgegeben:
Aber wie bekomme ich alle Ordner des Vormonats und Vorwoche hin? Das bisherige Script geht davon aus das es vom aktuellen Tag einfach 7 abzieht. Aber ich hätte gerne das er unabhängig einfach prüft welche Ordner wurden letzte Woche erstellt. Egal ob Montag oder Mittwoch ist.
Bitte warten ..
Mitglied: SeaStorm
LÖSUNG 14.08.2020 um 11:02 Uhr
Zitat von Lupora:

Die Thematik mit "nur Montags soll" ist erstmal egal.
das ist ja schon fertig...

Aber wie bekomme ich alle Ordner des Vormonats und Vorwoche hin? Das bisherige Script geht davon aus das es vom aktuellen Tag einfach 7 abzieht.
Ja, weil der Part ja nur an einem Montag läuft
Aber ich hätte gerne das er unabhängig einfach prüft welche Ordner wurden letzte Woche erstellt. Egal ob Montag oder Mittwoch ist.
Damit solltest du den Rest anpassen können
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 08:10 Uhr
Herzlichen Dank dir SeaStorm! Funktioniert Bombe Du bist alt ein Profi

Letzte Frage mit der ich noch kämpfe: Ich starte das Script über den Windows Task Scheduler einmal am Tag.
Leider ist der Output bei allen Variablen immer 0. Wenn ich allerdings das Script händisch starte (Rechtsklick "Run with Powershell") sind alle Outputs korrekt.

Das Script wird also vom Task Scheduler gestartet, aber alle Werte bleiben 0. Ich führe das Script ganz normal wie meinen anderen aus (Ausführendes Programm ist Powershell im Windows Verzeichnis, als Argument gebe ich den Powershell Pfad an).

Was mach ich falsch? :/
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 08:15 Uhr
Execution Policy etc. ist alles korrekt gesetzt.
Bitte warten ..
Mitglied: SeaStorm
21.08.2020 um 08:32 Uhr
Mach mal um das Script ein Transcript.
Also
Dann wird alles nach c:\temp\blubb.log gelogged. Evtl. siehst du da was er nicht mag
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 10:10 Uhr
Er verschluckt sich am Directory ??? Was mich wundert: Wenn ich das Script händisch startet, geht es perfekt.
Nur wenn ich es schedule tut es nicht.

Bitte warten ..
Mitglied: SeaStorm
21.08.2020 um 11:54 Uhr
A parameter cannot be found that matches parameter name 'Directory'
Kann es sein das du beim Start der Task die powershell.exe mit dem kompletten Pfad angibst und da eine alte Powershellversion nimmst?
Wenn der Befehl den Parameter nicht kennt, kann das eigentlich nur bedeuten das du da eine alte PS Version hast.

Gib mal im Script
mit aus
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 12:34 Uhr
clipboard01 - Klicke auf das Bild, um es zu vergrößern

Major Minor Build Revision
----- ----- --------
5 1 17763 1
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 12:37 Uhr
Sieht nach 5.1 aus ?
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 12:46 Uhr
Habe mich Google bedient und folgendes rausgefunden:

-Directory is a conditional parameter and only works on paths whose provider is "FileSystem". It's present on this page: Get-ChildItem for FileSystem, but not on the generic one.

Das Verzeichnis E:\ was hier durchsucht werden soll ist ein Netzwerklauf. Kann es sein das ein netzwerklauf nicht als FileSystem anerkannt wird, weil es ja keine physische Platte ist?
Bitte warten ..
Mitglied: SeaStorm
21.08.2020 um 12:48 Uhr
ahhh.
Ne, du führst das Script ja ohne Benutzeranmeldung aus. Dann existiert E: nicht in der Laufzeitumgebung des Scripts. Gib hier einfach den vollen UNC Pfad an
Bitte warten ..
Mitglied: Lupora
21.08.2020 um 13:36 Uhr
Das war der Fehler! Da wäre ich nie drauf gekommen! Das E-Laufwerk wird es zur Laufzeigumgebung gemappt.
Mit UNC Pfad hat es funktioniert.

Wirklich allerletzte Frage:

Ich möchte in einer Variable alle Ordner ausgeben (all Folders) die jemals erstellt wurden einschließlich gestern. Nur die von heute nicht.
Bisher ist meine Formel:
Die beinhaltet aber auch die Ordner von heute. Ich möchte alle Ordner zählen außer die von heute.
Wie müsste ich das anpassen?
Bitte warten ..
Mitglied: 145033
21.08.2020, aktualisiert um 13:47 Uhr
Zitat von Lupora:
Ich möchte in einer Variable alle Ordner ausgeben (all Folders) die jemals erstellt wurden einschließlich gestern. Nur die von heute nicht.
Bisher ist meine Formel:
Die beinhaltet aber auch die Ordner von heute. Ich möchte alle Ordner zählen außer die von heute.
Wie müsste ich das anpassen?

Bidde
Btw. das "PSIsContainer" ist doppelt gemoppelt und überflüssig, das Ausfiltern macht schon der Parameter -Directory von Get-ChildItem.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell XML Tag auslesen und Verschieben

gelöst Frage von PatrickHHBatch & Shell1 Kommentar

Hallo liebe Community, ich stehe vor folgender Aufgabe, an der ich nicht weiter komme und hoffe das einer von ...

Batch & Shell

PowerShell - Zahl aus Textdatei pro Monat summieren

Frage von Pat.batBatch & Shell3 Kommentare

Hallo zusammen, da wir täglich eine kleine Textdatei generieren, wie viele Dokumente am Vortag gedruckt wurden, möchten wir nun ...

Windows Server

POWERSHELL. An und Abmeldung pro Tag gruppiert anzeigen

Frage von lord-iconWindows Server3 Kommentare

Moin, ich möchte einen "Bericht" über das An und Abmelden am PC Ergo: Get-Eventlog -log Security -After $((get-date).AddDays(-1)) Sieht ...

Batch & Shell

Powershell und XML Tag an bestimmter Stelle einfügen

gelöst Frage von ERainerBatch & Shell2 Kommentare

Es geht um folgendes wenn ich mein XML in eine Variable einlese z.B. in die Variable $XML wird ein ...

Visual Studio

Powershell Variable mit führender 0 im Monat - Tag - Stunde

gelöst Frage von Molly11Visual Studio4 Kommentare

Hallo zusammen, ich bin neu hier und will mich kurz vorstellen- :-D Meine neue Tätiigkeit bezieht sich auf alles ...

Batch & Shell

Powershell Schleife die jeden Tag um Mitternacht eine Funktion ausführt

gelöst Frage von MarciMarc85Batch & Shell5 Kommentare

Eins vorweg: Ich benötige diese Schleife zu Testzwecken, für unser Monitoring, da es den gewünschten Befehl zwar per geplantem ...

Heiß diskutierte Inhalte
Notebook & Zubehör
Macbook oder Surface Book 3?
gelöst Frage von FamousDex089Notebook & Zubehör36 Kommentare

Hallo Zusammen :-), ich bin komplett neu in der IT Admin schiene und neu in diesem Forum. Ich habe ...

Outlook & Mail
Outlook App auf Android
gelöst Frage von PeterGygerOutlook & Mail21 Kommentare

Hallo Folgende Situation: Samsung S3 Samsung S5 Mini Die Microsoft Outlook App kann nicht mehr gestartet werden. Es waren ...

Humor (lol)
So eine Art Jobangebot
Frage von Melvin.van.HorneHumor (lol)17 Kommentare

Moin, ich habe eben eine Zeit damit zugebracht eine GPO für eine Gruppe von Clients zu erstellen. Egal was ...

SAN, NAS, DAS
Probleme mit der GIGABIT Leitung - Finden der Krücke - Wer ist schuld ?
gelöst Frage von daswinimramSAN, NAS, DAS16 Kommentare

Hallo Community , folgender Aufbau : "erfolgreich" umgestellt auf Gigabit Tarif am 26.09.20 Speedtests wurden von allen PCs hinter ...

Windows Server
AD (virtualisiert) und alle angeschlossenen Clients fahren ungeplant herunter
Frage von tobitobsnWindows Server16 Kommentare

Ich habe aktuell ein Problem, dass ein frisch aufgesetzer Hyper-V mit einem virtualisierten AD regelmäßig 1x die Woche herunterfährt ...

Switche und Hubs
Kaufberatung (10G) Switche für Unternehmensnetzwerk
Frage von ipzipzapSwitche und Hubs15 Kommentare

Moin, unsere Firma zieht um und am neu renovierten Standort muss/soll alles neu. Auf drei Etagen stehen Racks, in ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT