nobbi.the.great
Goto Top

Batch - psexec - Programm starten

PROBLEM WURDE NICHT GELÖST, ES GIBT NUR DENKANSÄTZE ZU LESEN!!!!!

Hallo Leute,


ich starte ein installiertes kleines Tool per Batch Script neu.

Nennt sich "Programm_neustarten.bat"
______
@echo off
:next
taskkill /f /im name.exe

ping -n 3 loopback >nul

start C:\Programme\name.exe
______
Das funktioniert lokal ohne Weiteres.
Nun muss ich dies aber auch auf entfernten Rechnern tun und mein Gedanke war psexec!
Ich kopiere diese .bat also temporär auf den Zielrechner und führe sie aus.


______
@echo off
:first
ECHO.
set /p Host=Auf welchem Rechner soll das Programm neugestartet werden?

psexec \\%Host% -u administrator -p -i -c -f "\\Pfad\Programm_neustarten.bat"
goto :first
______

Es kommt aber reproduzierbar eine Fehlermeldung beim starten des Programm, beenden lässt es sich bzw abschiessen.
"Could NOT create the memory Object: TMappedMem"

Habe ich etwas vergessen oder liegt es wahrscheinlicher am Programm?
Gibt es andere Möglichkeiten ausser psexec remote ein Programm (.exe) zu starten?

Bin für jeden Hinweis dankbar!

P.S. Wie formatiert man den Code hier im Forum richtig?

Content-ID: 174237

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

Ausgedruckt am: 08.11.2024 um 00:11 Uhr

60730
60730 06.10.2011 um 15:32:49 Uhr
Goto Top
Moinsen,

Nun muss ich dies aber auch auf entfernten Rechnern tun und mein Gedanke war psexec!

ähhhh

taskkill /?

Gruß
Nobbi.the.Great
Nobbi.the.Great 06.10.2011 um 15:45:55 Uhr
Goto Top
Zitat von @60730:
Moinsen,

> Nun muss ich dies aber auch auf entfernten Rechnern tun und mein Gedanke war psexec!

ähhhh

taskkill /?

Gruß


Was willst Du mir damit sagen?

Ich will/muss bei Bedarf in der Firma auf diversen Rechnern ein Programm neustarten, um die neue Konfiguration einzulesen!

Beenden kann ich es, nur beim Start via pexec kommt die Fehlermeldung! Lokal ausgeführt als angemeldeter Benutzer ist das kein Problem.
SlainteMhath
SlainteMhath 06.10.2011 um 15:51:35 Uhr
Goto Top
Moin,

ist das ein interaktives Program? Stichwort "Session 0 encapsulation"

lg,
Slainte

P.S. Wie formatiert man den Code hier im Forum richtig?
mit < code > / < /code > tags
60730
60730 06.10.2011 um 15:56:25 Uhr
Goto Top
Salü,

Zitat von @Nobbi.the.Great:
Was willst Du mir damit sagen?
  • nix, nur schreiben, dass du mal in einer Dosbox den Befehl taskkill mit parameter /? eingegeben sollst.
  • möglicherweise entdeckst du dann ein paar Schalter, wie zum Bleistift /s, der für System steht.
Ich will/muss bei Bedarf in der Firma auf diversen Rechnern ein Programm neustarten, um die neue Konfiguration einzulesen!
  • Ich kann lesen face-smile

Beenden kann ich es, nur beim Start via pexec kommt die Fehlermeldung! Lokal ausgeführt als angemeldeter Benutzer ist das
kein Problem.
  • aber leider nur verständliche Sätze - gibts den oberen auch in so einer Version?
Ps: Bitte keine Ausrufezeichen als normale Satzzeichen, da kriech ich nen Hals!!!!!!!!!

Gruß
Zendara
Zendara 06.10.2011 um 16:04:50 Uhr
Goto Top
Hallo,

ich würde auf den clients noch eine Batchdatei erstellen zb. startprog.bat

start programm.exe

und dann sollte man mit

start psexec \\%Host% c:\startprog.bat

Ich hatte mal vor 2 Jahren ein ähnliches Projekt in unserer Firma was ich auf diese weise gelöst habe. (winxp pro)

<.code>
bla
<./code>

mfg
zendara
Nobbi.the.Great
Nobbi.the.Great 06.10.2011 um 17:40:04 Uhr
Goto Top
Zitat von @Zendara:
Hallo,

ich würde auf den clients noch eine Batchdatei erstellen zb. startprog.bat

> start programm.exe
> 

und dann sollte man mit

> start psexec \\%Host% c:\startprog.bat
> 

Diesen Gedanken hatte ich schon, es lautet dann einfach nur "error code 0 exiting" in der Konsole.

Ich habs auch mit call aus einer weiteren .bat versucht, leider auch mit niederschmetterndem Ergebnis.

Es muss doch eine Möglichkeit geben die Ausführung als lokaler User zu immitieren?!?
60730
60730 06.10.2011 um 19:32:31 Uhr
Goto Top
Moinsen, das allerletzte Mal...

Hast du nun erfolgreich den Parameter /s gefunden?
Zitat von @Nobbi.the.Great:
Diesen Gedanken hatte ich schon, es lautet dann einfach nur "error code 0 exiting" in der Konsole.
Kennst du dich überhaupt mit irgendeinem Befehl /? aus???

Errorcode 0 ist in den meisten Fällen der Wert, der für erfolgreichdurchgekaspert steht.
Nobbi.the.Great
Nobbi.the.Great 06.10.2011 um 20:38:52 Uhr
Goto Top
Ja, aber was soll ich denn aus der taskkill Hilfe erlesen?

/S System Remotesystem für die Verbindungsherstellung - wie ist mir das dienlich?

Beenden kann ich den Task problemlos, aber wenn ich ihn wieder starten will mit
start \\pfad-zum-Programm\Programm.exe dann gibt das Programm o.b. Fehlermeldung aus. Logge ich mich auf den Rechner ein und Führe die .bat aus, läuft alles wie es soll.

Wenn ich mich mit "psexec \\remotepc cmd" verbinde, kann ich das Prog starten, allerdings ohne GUI
Nobbi.the.Great
Nobbi.the.Great 06.10.2011 um 20:45:58 Uhr
Goto Top
Zitat von @SlainteMhath:
Moin,

ist das ein interaktives Program? Stichwort "Session 0 encapsulation"

lg,
Slainte
Das Stichwort erinnnert mich an Netzwprotokolle, bringe es aber in keinen Zusammenhang mit Software.
Kannst genauer werden?

> P.S. Wie formatiert man den Code hier im Forum richtig?
mit < code > / < /code > tags

Ich versuche es mal.

Danke schonmal für deine Antwort
SlainteMhath
SlainteMhath 07.10.2011 um 09:45:35 Uhr
Goto Top
Session 0 isolation:

In Windows XP, Windows Server 2003, and earlier versions of Windows, all services run in Session 0 along with applications. This situation poses a security risk. In Windows Vista, Windows Server 2008, and later versions of Windows, the operating system isolates services in Session 0 and runs applications in other sessions, so services are protected from attacks that originate in application code.
[...]
This information applies to the following operating systems:
Windows 7
Windows Server 2008 R2
Windows Server 2008
Windows Vista

Quelle: http://msdn.microsoft.com/en-us/windows/hardware/gg463353

D.h. auch das Programme die mit dem Desktop interagieren nur in der Session des angemeldeten Users laufen können

Nochmal: Ist das ein interaktives Program, also mit GUI?
60730
60730 07.10.2011 um 10:02:38 Uhr
Goto Top
@SlainteMhath

Wenn ich mich mit "psexec \\remotepc cmd" verbinde, kann ich das Prog starten, allerdings ohne GUI
das wirft er mal eben zwischendurch rein, vorher beschwert er sich über Errorlevel 0, antwortet nicht, also

"Ich" blicke hier schon lange nicht mehr durch und stelle pauschal banal die Kardinalsfrage...

ich starte ein installiertes kleines Tool per Batch Script neu.

Warum, was ist das Ziel des ganzen?

Denn eine Anwendung, die als Gui bei Anwender X zu sehen sein soll, kann User A nicht anwerfen.
Nobbi.the.Great
Nobbi.the.Great 07.10.2011 um 10:54:53 Uhr
Goto Top
Haut nicht so doll drauf, ich bin doch noch klein. Ich hatte gehofft, dass das hier jemandem bekannt vorkommt.

Ja. Das Prorgramm hat ne GUI.
Da die Rechner nicht oder nur sehr selten neugestartet werden, ich aber dem Programm regelmäßig eine neue Config unterjubel, muss ich es neustarten, damit es sie einliest.
Selbst wenn ich mich als Admin (nicht als User) auf dem Rechner einlogge und dann per Remote das Prog neustarten will, passiert das Gleiche.

Wie bestimme ich denn, dass das Prog in Session 0 gestartet wird, bzw im User Account!?

Trotzdem danke für eure Infos erstmal
SlainteMhath
SlainteMhath 07.10.2011 um 11:10:35 Uhr
Goto Top
Wie bestimme ich denn, dass das Prog in Session 0 gestartet wird, bzw im User Account!?
Gar nicht. Schick dem User eine Meldung das er das Ding neu starten muss o.Ä.

ODER: schreib dir ein Programm das in der Taskleiste, also in der User Session läuft, und regelmässig das Programm neu startet
60730
60730 07.10.2011 um 12:14:36 Uhr
Goto Top
Moinsen,

Da die Rechner nicht oder nur sehr selten neugestartet werden, ich aber dem Programm regelmäßig eine neue Config unterjubel, muss ich es neustarten, damit es sie einliest.

Und nun komme ich und schreibe dir das einzig wahre...

Du hast ein größeres Problem und meldest dich wegen einer kleinigkeit.
Anders als der geschätzte SlaintheMhath sehe ich das globaler.

Baue ein Script, dass z.B

fc "%programfiles%\meineapp\meineconfig.txt" "\\server\freigabe\neueconfig.txt" || copy  "\\server\freigabe\neueconfig.txt" "%programfiles%\meineapp\meineconfig.txt"  

lautet, die Zeile(n) kopierst du in das Loginscript und sorgst dafür, dass die User die Kisten regelmäßig runterfahren.
  • Du testest die neue Config lokal und im Erfolgsfall schiebst du die auf \\server\freigabe\neueconfig.txt

  • Kostet weniger Strom
  • Sorgt dafür, dass Winblowspatche auch richtig installiert werden
  • dein Configkopier guistartproblem ist nebenbei auch noch Schnee von gestern
  • Falls mal eine Kiste doch ausgeschaltet wäre, wenn du Psexec laufen lassen würdest - die erwischt du so auch
  • Die User kriegen "ihre" Anwendung nicht unterm Arsch weggezogen

ergo: Ordentlicher, logischer und vor allen Dingen richtiger Ansatz.

Gruß
und kleb endlich einen Wie kann ich einen Beitrag als gelöst markieren? dran.
Nobbi.the.Great
Nobbi.the.Great 07.10.2011 um 16:58:13 Uhr
Goto Top
... ich klebe nichts, bevor ich euch nicht für eure Geduld gedankt habe ...

Ich hatte mir zwar etwas Anderes erhofft aber ..

dank an SlainteMhath: Das mit der Usersession werde ich weiter verfolgen!

dank an TimoBeil: Du magst ja im ganzen Recht haben, aber das Zentralisieren der Config startet mir immernoch das Programm nicht neu.

Strom ist nicht relevant
Mag sein, aber diese finden partiell statt und das Prog bzw. die Config muss einheitlich sein.
Beim Configkopieren gibt es keine Probleme
Wenn ne Kiste aus is, leuchtet es bei mir wie auf einer 70er Jahre Party
Den Neustart hätte ich auf die Ruhezeit gelegt

Gerade der ordentliche Ansatz ist es, der mich derart in die Enge treibt
Leider sind geplante Tasks auch keine Alternative face-sad denn damit funktionierts auch einwandfrei .....

So denn ...