panguu
Goto Top

Powershell zum Remote Host öffnen und Befehle absetzen mittels psexec?

Guten Morgen liebe Gemeinde,

weiß vielleicht jemand ob man mit psexec folgendes erzielen kann?

ich möchte von HostA auf Client1, Client2, usw... zugreifen um einige Befehle dort abzusetzen. Außerdem möchte ich durch einige Kommandos Infos sammeln. Dazu habe ich ein eigenes Batch Skript geschrieben und stehe vor folgendem Problem:

ich könnte mit psexec \\remoteclient -e -h -u Domainname\poweraccount -p mypwd /accepteula cmd eine Remoteshell öffnen auf dem entfernten Rechner.

Jedoch würde ich nun gerne weitere Befehle absetzen, die eben auf der Remoteshell ausgeführt werden sollten. Zum Beispiel möchte ich gerne Variablen deklarieren können mit SET IRGENDWAS=blabla oder evtl. auch einfach nur ein "echo %hostname% > c:\temp\myname.txt"

Nachdem aber psexec die Shell öffnet kann ich ja die Befehle nicht direkt dahin weitergeben, denn meine Batchdatei hängt ja nun an dieser Stelle. Erst nachdem der psexec Prozess beendet wird, würde meine Batchdatei weiterlaufen (auf hostA).

Kann ich das irgendwie erreichen, dass meine Batch-Datei trotzdem die Befehle (aber REMOTE! in der geöffneten Powershell) weiterabarbeitet?

Content-Key: 190215

Url: https://administrator.de/contentid/190215

Printed on: April 26, 2024 at 11:04 o'clock

Member: Luie86
Luie86 Aug 27, 2012 at 06:42:20 (UTC)
Goto Top
Hallo,

du kannst mit dem Parameter -c auch ein Script angeben.
Für weitere Informationen, bitte das Manual konsultieren face-wink

z.B:

psexec \\xxx -c C:\Programme\Scripte\Defrag.bat


Gruß Daniel
Member: panguu
panguu Aug 27, 2012 at 07:00:55 (UTC)
Goto Top
das würde jedoch eine Batchdatei auf dem remotclient1 ausführen, oder? und sobald die defrag.bat hier beendet würde, dann läuft quasi die lokal gestartete batch-Datei weiter?

Wie könnte ich aber Informationen zwischen der lokalen Batch und der remote batch austauschen? Ich möchte vom HostA die local.bat ausführen:

@echo off
cls
psexec \\remoteclient -e -h -u Domainname\poweraccount -p mypwd /accepteula cmd
IF /I "%WINDIR%" == "C:\WINNT" GOTO :Win2k
IF /I "%WINDIR%" == "C:\Windows" GOTO :WinXP7

Leider würde das ja so nicht funktionieren, denn zu den zwei letzten IF Abfragen kommts ja gar nicht, da die psexec shell noch geöffnet wäre. Die zwei IF Abfragen möchte ich ja gerade in der remote shell ausführen, damit ich abfrage ob es sich beim remote client um win2k oder winxp7 handelt. Ganz simples Beispiel soll das sein