Schrift
[thread]7820[/thread]

Mit Psexec und PERL 5.22 Client killen: Mit Psexec und PERL 5.22 Client killen

Leser: 1


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Matthias_1982
 2006-03-23 11:37
#63966 #63966
User since
2006-03-22
4 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen
Wir haben PERL 5.22
Wir haben einen NT4 Server. Jeden morgen läuft ein Wartungstool in PERL geschrieben. Das killt die Applikationen auf den Clients, bevor die Sybase wartung beginnt. Die Clients haben auch NT4 drauf. Das wird bis jetzt mit:
Wartung::remoteCmd(........ fuer $_\n",.......) das funktioniert gut.
Jetzt haben wir neu einen W2000 Client. Dort funktioniert remoteCmd nicht. Jetzt habe ich es mit psexec.exe versucht.
Ich weis aber nicht wie ich das Program in PERL aufrufen kann.
Ich habe es mit:
system("\\pfad\\dahin\\psexec.exe");
versucht, leider funktioniert das nicht. Hat jemand eine gute Idee?
Oder eine komplett andere Idee um das Problem zu lösen?

Danke
Matthias
renee
 2006-03-23 11:56
#63967 #63967
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht helfen Dir CPAN:Win32::API oder CPAN:Win32::OLE weiter...

P.S.: Es gibt kein Perl 5.22, was wird denn ausgegeben, wenn Du in der DOS-Box perl -v eingibst?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Matthias_1982
 2006-03-24 08:55
#63968 #63968
User since
2006-03-22
4 Artikel
BenutzerIn
[default_avatar]
Sorry es ist Version 5.005_03.

Gruss
Matthias
FIFO
 2006-03-24 09:15
#63969 #63969
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Welche Fehlermeldung bekommst Du denn? Eine von Perl oder eine von psexec?
Edit: Es ist auch sinnvoll, den Rückgabewert von system anzusehen, also
Code: (dl )
my $result = system('Befehl');


btw: in den PsTools gibts auch PsKill

Damit kann man auch remote Prozesse abschießen (im Gegensatz zu 'kill' aus dem W2k Resource Kit).\n\n

<!--EDIT|FIFO|1143185564-->
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
esskar
 2006-03-24 09:21
#63970 #63970
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Ansonsten kannst du auch mit Hilfe von Win32::Ole, WMI und er Win32_Process Klasse aus root/cimv2 einen Process Remote starten.
Matthias_1982
 2006-03-24 13:48
#63971 #63971
User since
2006-03-22
4 Artikel
BenutzerIn
[default_avatar]
Hallo

Wie haben lokal auf den Clients ein eigenes Kill, da wir 9 Prozesse beenden.

Danke und Gruss
FIFO
 2006-03-24 17:49
#63972 #63972
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Was funktioniert denn nun nicht?

Quote
Ich habe es mit:
system("\\pfad\\dahin\\psexec.exe");
versucht, leider funktioniert das nicht.


Hast Du genügend gebackslasht (backgeslasht?)?

Code: (dl )
1
2
# führt cmd.exe auf \\server aus:
my $result = system('C:\\sysinternals\\psexec \\\\server cmd.exe');


Also ne Fehlermeldung wäre schon ganz hilfreich ;-)\n\n

<!--EDIT|FIFO|1143215584-->
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
renee
 2006-03-24 21:00
#63973 #63973
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@FIFO: bei Single-Quotes brauchst Du den Backslash nicht zu escapen. D.h. man kann entweder "C:\\Pfad\\Unterpfad" oder 'C:\Pfad\Unterpfad' schreiben...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2006-03-24 21:04
#63974 #63974
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hilft dir vielleicht auch das hier weiter?

Wiki:Win32 Process Management

Hab ich gerade wieder entdeckt!
FIFO
 2006-03-25 21:38
#63975 #63975
User since
2005-06-01
469 Artikel
BenutzerIn

user image
@renee: Grundsätzlich ja klar.
Merkwürdigerweise bricht PsExec beim Aufruf von system( '\Pfad\Psexec \\server cmd' ) mit der Fehlermeldung "... could not start \server" ab. Deswegen hab ich mir angewöhnt, auch single-quoted zumindest den Remote-Namen mit escape-ten Backslahes zu versehen, es geht übrigens auch mit nur drei "\" vor dem Rechnernamen. Wahrscheinlich ein shell-Problem ?!

@Matthias: Wenn's ein Psexec-Problem ist, da gibt's ein eigenes PsTools-Forum bei sysinternals.com

Edit: STOP! Weil in '\\' der erste Backslash als Escape-char gedeutet wird, ist das Ergebnis natürlich '\'. Deswegen klappt's nicht mit '\\server'. Und vier (2 escapete) Backslashes in single-quotes sind dasselbe wie drei (ein escapeter und ein einfacher, was bei single-quotes keinen Unterschied macht. Vergesst das shell-Problem, ist eher ein brain-Problem meinerseits.
Fazit: Erst denken, dann posten ;-)\n\n

<!--EDIT|FIFO|1143324417-->
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2006-03-23 11:37.