Methode oder Anwendung zum Aktualisieren von Dateien und/oder Anwendungen auf vielen Remotecomputern?

Methode oder Anwendung zum Aktualisieren von Dateien und/oder Anwendungen auf vielen Remotecomputern?

Ich habe mehrere Windows 10- und Windows 7-Rechner, die remote betrieben werden. Manchmal müssen bestimmte Dateien oder ausführbare Dateien aktualisiert werden. Dies würde Folgendes beinhalten.

  1. Laufendes Programm schließen.
  2. Löschen Sie die aktuelle ausführbare Datei
  3. Kopieren Sie die neue ausführbare Datei
  4. Ersetzen (löschen und kopieren) Sie alle Dateien nach Bedarf
  5. Starten Sie das Programm neu

Ich habe mich gefragt, ob es eine Anwendung irgendeiner Art gibt, mit der ich dies über einzelne Systeme hinweg (Einzelaktualisierung) oder über alle Systeme hinweg (Massenaktualisierung) steuern kann.

Antwort1

Erstens liegen spezifische Software-Empfehlungen außerhalb des RahmensSuperuser. Versuchenhttps://softwarerecs.stackexchange.com/, stattdessen.

Sie könnten hierfür jedoch ein einfaches Batch-Skript schreiben, wenn ein zentrales Repository mit den neuen Dateien vorhanden ist.

  • VerwendenTaskkill - Eingeschränktum eine laufende Anwendung zu stoppen.
  • Verwenden Sie copy* oder besser,Robokopie, um die alten Dateien mit neuen zu überschreiben (RobokopieHier können Sie das Datum angeben, um ein Überschreiben zu verhindernneuereDateien mit alt), Angabe des vollständigen UNC-Pfades. Alternativen wären die VerwendungFTPoderSFTPum die Dateien zu übertragen. Indem Sie die neuen Dateien über die alten kopiert haben, haben Sie die alten effektiv gelöscht.
  • Verwenden Sie dieStartBefehl zum Neustarten der Anwendung.

Natürlich gibt es Komplikationen:

  • Unter wessen Anmeldeinformationen werden die einzelnen Anwendungen ausgeführt? Ihr Skript sollte beim Neustart der Anwendung unter denselben Anmeldeinformationen ausgeführt werden. Wenn Sie immer „System“ verwenden, hätte der lokale Benutzer Schwierigkeiten bei der Interaktion mit der App. Für alle anderen Zwecke könnte das Skript als „System“ ausgeführt werden.
  • Sollten Anwendungen ersetzt werdenstetsneu gestartet werden? Wenn Sie feststellen möchten, ob es am Anfang ausgeführt wird, überprüfen Sie die Ergebnisse vonTaskkill - Eingeschränktund verwenden Sie diese Angabe, um zu entscheiden, ob ein Neustart durchgeführt werden soll.
  • Für die Verwendung von SFTP müssen auf dem Server und dem Client andere Anwendungen installiert werden.
  • Es wäresehrnützlich, um ein Protokoll der Skriptarbeit aufzuzeichnen.

Antwort2

In Windows sind WMI (Windows Management Instrumentation) und WinRM (Windows Remote Management) integriert. Beide machen dasselbe, aber mit unterschiedlichen Netzwerkverbindungen. Außerdem kann Windows Dateien auf einen anderen Computer kopieren, so wie Sie Dateien auf einem einzelnen Computer kopieren.


Mit dieser Batchdatei erhalten Sie eine Textdatei mit den in Ihrem Netzwerk eingeschalteten Computern.

for /f "skip=3 delims=\" %%A in ('net view ^| findstr /v /C:"The command completed successfully"') do Echo %%A >> c:\computerlist.txt

So beenden Sie alle Instanzen eines Prozesses im Netzwerk

wmic /node:@c:\computerlist.txt process where "name='notepad.exe'" call terminate

Zum Kopieren von Dateien. C$ ist eine versteckte administrative Freigabe, die nur Administratoren verwenden können.

copy c:\somefolder\file.exe \\127.0.0.1\C$\Somefolder\file.exe

Sehen Sie for /?, wie Sie die obige Schleife durchlaufen können.computerlist.txt. Fügen Sie die folgende Zeile in eine Batchdatei ein. Entfernen Sie den Echo-Teil, um tatsächlich etwas zu tun.

for /f "usebackq delims=" %%A in ("C:\Folder\computerlist.txt.txt") do echo copy "c:\folder\file.exe" "\\%%A\C$\folder\file.exe

Löschen und Kopieren hat keinen Sinn.


So starten Sie einen unsichtbaren Prozess auf einem Remotecomputer (er ist sichtbar, wenn er auf dem lokalen Computer gestartet wird). Hier geben wir einen einzelnen Computer an und nicht eine Textdatei mit Computern.

wmic /node:127.0.0.1 process call create "c:\\windows\\notepad.exe"

Geben Sie zur Hilfe for /?, wmic /?, wmic process get /?, ein wmic process call /?. Außerdem wmic /format /?und wmic /node /?.

verwandte Informationen