Powershell- Ordner auf Remote-PCs auf Inhalt prüfen

Mitglied: MarciMarc85

MarciMarc85 (Level 1) - Jetzt verbinden

22.01.2021 um 09:54 Uhr, 728 Aufrufe, 5 Kommentare

Ich versuche nun schon seit Ewigkeiten ein Script zum Laufen zu bekommen:

Ich möchte Denselben Ordner, den es auf allen definierten Computern gibt, auf den Inhgalt von Dateien prüfen. Wenn der Ordner Dateien beinhaltet, sollen diese auf den lokalen Computer kopiert werden und auf dem Quellsystem gelöscht werden. Auf dem lokalen System sollen dann die Dateien gezipped werden.

Falls auf keinem Der Computer Dateien in den Ordnen sind, dann soll auch keine Zip-Datei mit leerem Inhalt erstellt werden.

Ich scheitere einzig daran, dass das Überprüfen der Ordnerinhalte auf den Serven in der Schleife nicht funktioniert. Egal, ob Dateien im Ordner sind, oder nicht, ich bekomme immer "0" Dateien als Ergebnis:

Server 1 und Server 2 haben jeweils eine Datei (zum Testen) in diesem Ordner. Das Script gibt aber folgendes aus:

Mitglied: Doskias
LÖSUNG 22.01.2021, aktualisiert um 10:37 Uhr
Moin, arbeitet wie geplant :) face-smile

Du machst in Zeile 17 in Invoke-command mit einem Befehl. $directoryInfo wird dann auf dem Rechner gespeichert wo das invoke-command durchgeführt wird. In Zeile 18 rufst du dann lokal auf und lokal ist der Wert dann leer bzw. 0. versuch mal in Zeile 17 und 18:

Damit führst du den Befehl entfernt aus und speicherst das Ergebnis lokal in der Variablen.

Gruß
Doskias

Nachtrag: Zeile 7 gehört sich nicht und Zeile 8 sollte dann so heißen:
Bitte warten ..
Mitglied: MarciMarc85
22.01.2021 um 10:59 Uhr
Hallo Doskias.

Vielen Dank für deine Antwort. Das hat zum Ziel geführt! Ich hab wahrscheinlich schon zu lange an dem Script rumgedoktort, als das ich das hätte selbst rausfinden können ;)
Bitte warten ..
Mitglied: 147323
147323 (Level 1)
22.01.2021, aktualisiert um 11:15 Uhr
Dagegen hilft Grundlagen-Handbuch lesen 😉
About Scopes

Btw. Das New-PsSession ist doppelt gemoppelt und überflüssig weil du die Credentials schon separat an Invoke-Command übergibst. Wenn mit New-Pssession dann übergibst du Invoke-Command die Session über den dafür vorgesehenen Parameter und lässt die Credentials weg, denn so wie jetzt baust du immer wieder neue Verbindungen auf und das kostet enorm Zeit.
Bitte warten ..
Mitglied: MarciMarc85
29.01.2021 um 13:47 Uhr
Danke für die Tipps!

Eine Frage hätte ich dann noch. Ich habe noch eine funktion eingebaut, dass Am Ende eine E-Mail gesendet wird, dass eine neue Datei auf dem FTP Server liegt (inkl. dem Dateinamen).
Bekommt man es irgendwie hin, die Server IP's auf denen Dateien zum synchronisieren gefunden wurden in den Betraff der Mail zu schreiben?

Also im Prinzip benötige ich nur eine neue Variable, die alle Server hintereinander auflistet, bei denen if ($directoryInfo.count -ne 0) zutrifft
Bitte warten ..
Mitglied: 147323
147323 (Level 1)
29.01.2021, aktualisiert um 15:40 Uhr
Zitat von @MarciMarc85:

Danke für die Tipps!

Eine Frage hätte ich dann noch. Ich habe noch eine funktion eingebaut, dass Am Ende eine E-Mail gesendet wird, dass eine neue Datei auf dem FTP Server liegt (inkl. dem Dateinamen).
Bekommt man es irgendwie hin, die Server IP's auf denen Dateien zum synchronisieren gefunden wurden in den Betraff der Mail zu schreiben?

Also im Prinzip benötige ich nur eine neue Variable, die alle Server hintereinander auflistet, bei denen if ($directoryInfo.count -ne 0) zutrifft

Joa brauchst du nur die $computer Variable in deiner IF Prüfung in ein Array schreiben, fertig.

Bitte warten ..
Heiß diskutierte Inhalte
Linux
Installation Grammm Server
smeclntVor 1 TagFrageLinux13 Kommentare

Hallo zusammen, meine Linux Kenntnisse sind sehr rudimentär trotzdem suche ich eigentlich ständig nach einer Alternative zu MS Exchange. Bis jetzt gab es nichts ...

Switche und Hubs
Probleme im Netzwerk Switche teilweise nicht erreichbar
hukimanVor 10 StundenFrageSwitche und Hubs29 Kommentare

Guten Morgen, seit Monaten haben wir hier immer wieder Probleme mit dem Netzwerk, das Problem konnte ich leider aber noch immer nicht finden. Es ...

Erkennung und -Abwehr
Einer Malware auf der Spur. Benötige Sherlock Holmes!
streamVor 21 StundenFrageErkennung und -Abwehr7 Kommentare

Guten Abend Wenn ich meine Windows-10-Kiste starte, so gibt mir mein Router eine Meldung aus, dass eine bestimmte IP-Adresse wegen Bösartigkeit geblockt wurde. Auf ...

Windows 10
Windows 10 interes Mikro ohne Funktion
TPH125Vor 1 TagFrageWindows 1011 Kommentare

Hallo zusammen, Ich verzweifelt bald. Besitze einen Medion Akoya MD 97110. Habe Windows 10 installiert, seit dem funktioniert das inigrierte Mikrofon nicht mehr. Gerät ...

Batch & Shell
Tabellarische Ausgabe der Netzwerkschnittstellen
gelöst dysti99Vor 8 StundenFrageBatch & Shell18 Kommentare

Mit - ip a - werden ja die Netzwerkschnittstellen angezeigt. Ich möchte mit ein Batchscript folgende Ausgabe erreichen: 1 eth0 192.168.1.1 AD:13:67:56:14:D1 2 eth1 ...

Festplatten, SSD, Raid
(USB) Festplatten laut ?
TomEngelVor 1 TagFrageFestplatten, SSD, Raid6 Kommentare

Ich grüsse Sie Alle. Eine Frage eines engagierten Laien Habe mehrere 3,5 " Festplatte. Einige schon recht alt 8 Jahre, andere ca 2-3 jahre ...

Ubuntu
Mailserver Test Provider IP
gelöst it-blzVor 1 TagFrageUbuntu9 Kommentare

Hallo, ist es möglich einen "Mailserver" (Imap + smtp) in einer Virtual Box mit einer Provider IP (dynamisch - ist allerdings konstant) zu testen? ...

Linux Netzwerk
SAMBA FS Portfreigabe
Jannik2018Vor 23 StundenFrageLinux Netzwerk17 Kommentare

Hallo zusammen, ich habe eine Portfreigabe für meinen SAMBA Server mit Netzwerkfreigaben auf port 445 TCP eingerichtet allerdings wenn ich per DNS oder externer ...