Anzeige

Am Puls von Microsoft

Anzeige

Exe auf anderem PC starten

o0Julia0o

gehört zum Inventar
Ich möchte eine exe-Datei auf einem PC im LAN starten. Dazu nutze ich https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

Ich tue die psexe ins Verzeichnis wo folgende Batch-Datei liegt:
Code:
@echo off
psexec \\192.168.1.201\H_Anwender\Daten1\note 1.exe"
pause
Dann erhalte ich:
Couldn´t access: 192.168.1.201\H_Anwender\Daten1\note:
Das System kann den angegebenen Pfad nicht finden.

Wenn ich im Explorer folgendes eingebe:
Code:
\\192.168.1.201\H_Anwender\Daten1\note 1.exe
dann wird das Programm gestartet(bei mir auf dem PC, wa ja nicht soll, aber der Pfad stimmt somit). Die " 1.exe" schneidet der irgendwie ab. Vorne ein Anführungszeichen geht aber nicht.

Aber selbst eine exe ohne Leerzeichen im Namen(und Pfad) wird nicht gestartet. Habe die note 1.xe mal zur note.exe umbenannt. Dann zeigt er mit den Syntax von PsExec.exe an.

Wo liegt das Problem?
 
Zuletzt bearbeitet:
Anzeige
du meinst:
Code:
PsExec.exe File:\\192.168.1.201\H_Anwender\Daten1\note.exe

Ergebnis ist das gleiche wie schon zuvor:
Code:
Couldn´t access: 192.168.1.201\H_Anwender\Daten1\note.exe:
Das System kann den angegebenen Pfad nicht finden.

Wichtig: Die note.exe soll ja auf dem anderen PC gestartet werden. Also nicht dort wo die batch ausgeführt wird. Sondern auf dem 192.168.1.201-PC im LAN.

Wenn ich aber trotzdem mal folgendes ausführe:
Code:
File://\\192.168.1.201\H_Anwender\Daten1\note.exe
erhalte ich:
Code:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
 
War ein Versuch wert, da ich keine anderen PC im Netzwerk habe kann ich dein Problem leider nicht nachvollziehen.
 
Hallo @o0Julia0o!
Ich habe ja nicht so viel Ahnung von Remote, aber:
\\192.168.1.201 ist doch der Zielcomputer
Auf diesem gibt es Verzeichnisse und Partitionen
Sollte die note.exe nicht zB auf c:\ liegen?
Dann wäre nach meiner Meinung der richtige Befehl
Code:
psexec \\192.168.1.201 "C:\H_Anwender\Daten1\note 1.exe"
 
H_Anwender die die Freigabebezeichnung(also kein Ordner). Ich kann ja auch auf den Ordner zugreifen, wenn ich \\192.168.1.201\H_Anwender\Daten1 in den Explorer kopiere, dann öffnet sich der Ordner auf dem PC im LAN. Und die Exe dort (ist nicht die notepad.exe) startet auch, wenn ich: \\192.168.1.201\H_Anwender\Daten1\note.exe in den Explorer kopiere und mit Enter bestätige.

Auch wenn ich folgende batch ausführe wird die exe gestartet:
Code:
@echo off
\\192.168.1.201\H_Anwender\Daten1\note.exe
exit
Egal, ob ich die batch als Administartor oder so ausführe.

Aber - sie startet dann natürlich auf meinem PC. Und nicht wie gewünscht, auf dem anderen PC. Dazu ist ja psexec da.

Wen

War ein Versuch wert
Logo - danke!
 
Hallo Julia,

Du könntest dafür ein PowerShell Script benutzen.

Code:
Enter-PSSession -ComputerName 192.168.1.201
\\localhost\H_Anwender\Daten1\note.exe

Stellt erst eine Verbindung per PowerShell auf den Remotecomputer her und führt dann die Datei aus.


Vorher musst du aber PSRemoting auf dem entfernten Rechner aktivieren:

Code:
Enable-PSRemoting -Force

Mehr dazu findest du hier: https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/

Ich hoffe, ich konnte dir damit helfen.

VG
Utty
 
Hallo o0Julia0o,

@echo off
REM psexec \\192.168.1.201 <lokaler Pfad zu "H_Anwender\Daten1\note 1.exe">
REM psexec \\192.168.1.201 "D:\H_Anwender\Daten1\note 1.exe"
psexec \\192.168.1.201 "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
pause


Und: für PsExec die Schalter "-u, -p, -s" ggf. hinzufügen.
 
Zuletzt bearbeitet:
Danke. PowerShell ist mir etwas zu hoch & auch komplizierter einzubinden. Aber ich arbeite mich da parallel ein.

Ich teste diesen Code:
Code:
psexec \\192.168.1.201 "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
Das Ergebnis ist folgendes(ob mit oder ohne Schalter):
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access 192.168.1.201:
Das Handle ist ung³ltig.
Drücken Sie eine beliebige Taste . . .

Wenn ich die Batch als admin ausführe erhalte ich mit dem gleichen Code:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

C:\ ist aber auch nicht freigegeben auf dem PC(192.168.1.201)

Ich kopiere die ipconfig.exe also zu: \\192.168.1.201\H_Anwender & führe folgenden Code aus(wahlweise auch ohne Schalter). Den Temp-Ordner weggelassen, ansonsten meldet die batch "Das System kann den angegebenen Pfad nicht finden" zurück in jedem Fall, weil ipconfig keine Ordner erstellt automatisch:
Code:
psexec \\192.168.1.201 "H_Anwender\ipconfig" > H:\ipconfig.txt -u -p -s
Als admin ausgeführt erhalte ich als Ergebnis:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Ganz normal per Doppelklick als User ausgeführt erhalte ich als Ergebnis:
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access 192.168.1.201:
Das Handle ist ung³ltig.
Drücken Sie eine beliebige Taste . . .
 
Zuletzt bearbeitet:
Sieh dir mal hier die Beispiele an (ganz unten):
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

Noch ein Zitat von https://www.windowspro.de/tipp/programme-mit-system-privilegien-starten

Das zu startende Programm steht immer an letzter Stelle der Parameterliste. Besteht es aus mehreren Teilen, etwa weil das Programm selbst Parameter zu verarbeiten hat, gehört der ganze Befehl trotzdem nicht in Anführungszeichen gesetzt; diese sind wie gewohnt für Datei- und Verzeichnisnamen mit Leerzeichen reserviert.
 
Hallo o0Julia0o,

psexec \\192.168.1.201 -s "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
psexec \\192.168.1.201 -u <Domäne>oder<Arbeitsgruppe>\<Benutzername> -p <Passwort> "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
 
Zuletzt bearbeitet:
Suche mal in Google nach "psexec remote cmd access denied", da gibt´s eine Reihe von Antworten (allerdings in englisch).
 
Ohne die Lösung dieses Problems wird das hier NIE was:
https://www.drwindows.de/windows-10...rk-nur-angezeigt-man-ip-eingibt-new-post.html

Sollte einleuchten, wenn man deine Beiträge quer liest...

Und wenn das dann so weit ist, sollte der Text von Olli auch zwingend funktionieren:
psexec \\192.168.1.201 "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt

Wobei ich den Vorteil geniesse:
da ich keine anderen PC im Netzwerk habe kann ich dein Problem leider nicht nachvollziehen.
Ich habe einen anderen Rechner, Verbindung von Win8>Win10 funktioniert.
Suche mal in Google nach "psexec remote cmd access denied", da gibt´s eine Reihe von Antworten (allerdings in englisch).
Wie soll man sowas denn noch kommentieren ausser mit (n)
Wenn die englische Doku im Technet schon Probleme aufwirft? :rolleyes:
 

Anhänge

  • Posten.gif
    Posten.gif
    2,3 KB · Aufrufe: 2.730
o.k., danke euch. Also als admin ausgeführt ergibt folgendes:
Code:
psexec -s \\192.168.1.201 "H_Anwender\ipconfig" > H_Anwender\ipconfig.txt
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .
Und das gleiche normal ausgeführt ergibt:
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access 192.168.1.201:
Das Handle ist ung³ltig.
Drücken Sie eine beliebige Taste . . .

Ich kann ja auf den PC zugreifen im LAN. Wenn ich folgendes im Explorer eingebe, funktioniert es:
Code:
\\192.168.1.201\H_Anwender\ipconfig" > H_Anwender\ipconfig.txt
Und wenn ich folgendes im Explorer eingebe:
Code:
\\192.168.1.201\H_Anwender\
lande ich im Verzeichnis H:\ auf dem PC 192.168.1.201
Der Freigabename lautet dafür somit logischerweise: H_Anwender
 
Zuletzt bearbeitet:
PowerShell ist nicht hoch.
Letztendlich ist es doch nur ein einziger PowerShell Befehl und ein cmd Befehl, den ich dir da gegeben habe.

Einfach mal eine PowerShell öffnen und diese beiden Befehle reinkopieren, was passiert denn dann?
 
Danke!
#9 bzw. #12.
Einfach mal so rauskopieren!
Das habe ich doch bereits getan - abgewandelt:
Code:
psexec \\192.168.1.201 -s "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
Ich habe auf 192.168.1.201 C:\ nicht freigegeben. Daher habe ich keinen Zugriff so dort. Wenn ich es trotzdem 1:1 so mache als user ausgeführt:
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access 192.168.1.201:
Das Handle ist ung³ltig.
Drücken Sie eine beliebige Taste . . .
Als admin ausgeführt:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Code:
psexec \\192.168.1.201 -u <Domäne>oder<Arbeitsgruppe>\<Benutzername> -p <Passwort> "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
Meine Arbeitsgruppe lautet auf beiden PCs: Arbeitsgruppe
Benutzername der Freigabe lautet: Jeder
Passwort der Freigabe gibt es keines.
C:\ ist ohnehin nicht freigegeben. Sondern: 192.168.1.201\H_Anwender (welches Laufwerk H:\ auf 192.168.1.201 ist)

Wenn ich es trotzdem 1:1 eingebe erhalte ich als user ausgeführt:
Code:
Das System kann die angegebene Datei nicht finden.
Drücken Sie eine beliebige Taste . . .
Und als admin ausgeführt:
Code:
Das System kann die angegebene Datei nicht finden.
Drücken Sie eine beliebige Taste . . .
Was klar ist, weil ich ja für die Syntax nichts einsetze. Führe ich folgendes aus:
Code:
psexec \\192.168.1.201 -u Arbeitsgrupp\Jeder -p "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
erhalte ich als user ausgeführt:
Code:
Das System kann die angegebene Datei nicht finden.
Drücken Sie eine beliebige Taste . . .
und als admin ausgeführt:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Lasse ich das -p weg, da ich kein Passwort vergeben habe, also so:
Code:
psexec \\192.168.1.201 -u Arbeitsgrupp\Jeder "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt
erhalte ich als user ausgeführt:
Code:
Das System kann die angegebene Datei nicht finden.

PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
und als admin ausgeführt:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Ich habe jetzt mal die calc.exe aus dem system32-Ordner zu 192.168.1.201\H_Anwender kopiert. Was lokal auf 192.168.1.201 H:\ ist. Die calc.exe ist ohne weitere Dateien ausführbar. Ich habe auch direkten Blick auf den Monitor von 192.168.1.201. Die ipconfig.exe zwar auch, jedoch kann es da ja noch zu Konflikten mit dem Schreiben geben.

Code:
psexec \\192.168.1.201 -u Arbeitsgruppe\Jeder "H_Awender\Calc.exe
ergibt als user ausgeführt:
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Password:
Couldn't access 192.168.1.201:
Zugriff verweigert
Bei Passwort werde ich zwischenzeitlich aufgefordert eines einzutragen. Da es keines gibt, bestätige ich mit Enter.

als admin ausgeführt:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .
Wie gesagt, wenn ich im explorer per \\192.168.1.201\H_Anwender auf den andern PC zugreife, kann ich dort alle Dateien löschen, ausführen, ändern & neue erstellen. Die Festplatte ist für den Benutzer "Jeder" freigegeben mit der Berechtigung "Ändern":
7sWdJbW.jpg

Unter dem Sicherheit-Tab ist auch "Jeder" eingetragen mit "Ändern":
0ZOzTpH.jpg



Gebe ich folgendes ein:
Code:
psexec \\192.168.1.201 -u Arbeitsgruppe\Jeder -p "H_Awender\Calc.exe

erhalte ich als user ausgeführt:
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

PsExec executes a program on a remote system, where remotely executed console
applications execute interactively.

Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
     -a         Separate processors on which the application can run with
                commas where 1 is the lowest numbered CPU. For example,
                to run the application on CPU 2 and CPU 4, enter:
                "-a 2,4"
     -c         Copy the specified program to the remote system for
                execution. If you omit this option the application
                must be in the system path on the remote system.
     -d         Don't wait for process to terminate (non-interactive).
     -e         Does not load the specified account's profile.
     -f         Copy the specified program even if the file already
                exists on the remote system.
     -i         Run the program so that it interacts with the desktop of the
                specified session on the remote system. If no session is
                specified the process runs in the console session.
     -h         If the target system is Vista or higher, has the process
                run with the account's elevated token, if available.
     -l         Run process as limited user (strips the Administrators group
                and allows only privileges assigned to the Users group).
                On Windows Vista the process runs with Low Integrity.
     -n         Specifies timeout in seconds connecting to remote computers.
     -p         Specifies optional password for user name. If you omit this
                you will be prompted to enter a hidden password.
     -r         Specifies the name of the remote service to create or interact.
                with.
     -s         Run the remote process in the System account.
     -u         Specifies optional user name for login to remote
                computer.
     -v         Copy the specified file only if it has a higher version number
                or is newer on than the one on the remote system.
     -w         Set the working directory of the process (relative to
                remote computer).
     -x         Display the UI on the Winlogon secure desktop (local system
                only).
     -arm       Specifies the remote computer is of ARM architecture.
     -priority  Specifies -low, -belownormal, -abovenormal, -high or
                -realtime to run the process at a different priority. Use
                -background to run at low memory and I/O priority on Vista.
     computer   Direct PsExec to run the application on the remote
                computer or computers specified. If you omit the computer
                name PsExec runs the application on the local system,
                and if you specify a wildcard (\\*), PsExec runs the
                command on all computers in the current domain.
     @file      PsExec will execute the command on each of the computers listed
                in the file.
     cmd            Name of application to execute.
     arguments  Arguments to pass (note that file paths must be
                absolute paths on the target system).
     -accepteula This flag suppresses the display of the license dialog.
     -nobanner   Do not display the startup banner and copyright message.

You can enclose applications that have spaces in their name with
quotation marks e.g. psexec \\marklap "c:\long name app.exe".
Input is only passed to the remote system when you press the enter
key, and typing Ctrl-C terminates the remote process.

If you omit a user name the process will run in the context of your
account on the remote system, but will not have access to network
resources (because it is impersonating). Specify a valid user name
in the Domain\User syntax if the remote process requires access
to network resources or to run in a different account. Note that
the password and command is encrypted in transit to the remote system.

Error codes returned by PsExec are specific to the applications you
execute, not PsExec.

als admin ausgeführt:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Und wenn ich das -p nach vorne ziehe und so ausführe:
Code:
psexec \\192.168.1.201 -u Arbeitsgruppe\Jeder -p "H_Awender\Calc.exe
ist das Ergebnis als user ausgeführt:
Code:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Password:
Couldn't access 192.168.1.201:
Zugriff verweigert
Hier wird zwischenzeitlich wieder das Passwort abgefragt, was ich mit Entertaste bestätige, da ich kein Passwort vergeben habe.

und als admin ausgeführt:
Code:
Der Befehl "psexec" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

@powershell
ich arbeite mich dort parallel ja ein. Aber ich find es momentan noch zu kompliziert. Vom Handling ohnehin aufwändiger. Oder kann ich, wie bei einer batch-datei einfach eine Dateiendung bestimmen(.bat) & powershell wird angewendet? Desweiteren ist powershell nicht so gut in Windows eingebunden. Ich kann eine batch aus Excel ausführen, aber eine Powershell-Datei nicht. Ich müsste erst eine Powersehll-Script-Datei erstellen & diese dann in einer Batch aufrufen. Was wiederum mit Problemen behaftet ist, weil ich halt mehr Schnittstellen habe.
 
Zuletzt bearbeitet:
Hallo o0Julia0o,

psexec \\192.168.1.201 -u <Domäne>oder<Arbeitsgruppe>\<Benutzername> -p <Passwort> "C:\Windows\System32\ipconfig.exe" > C:\Temp\ipconfig.txt

<Domäne>oder<Arbeitsgruppe> - Arbeitsgruppe des entfernten Systems (192.168.1.201)
<Benutzername> - lokaler Benutzer mit entsprechenden Rechten des entfernten Systems (192.168.1.201)
<Passwort> - Passwort (im Klartext) des lokalen Benutzers des entfernten Systems (192.168.1.201)

...das funktioniert nun schon seit Windows NT so!
 
Anzeige
Oben