Autor Thema: Konsolenkommandos ausführen  (Gelesen 4636 mal)

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Konsolenkommandos ausführen
« am: 29.10.08 - 12:31:16 »
Hallo,
ich möchte gerne per Lotusscript Kommandobefehle ausführen.
Leider klappt das nur bedingt:

Zitat
Show Tasks >C:\WINDOWS\TEMP\rem40327.con
29.10.2008 12:17:47   Remote console command issued by Dev/Test/DE: Show Tasks
29.10.2008 12:17:47   Agent printing: sRespondMSG: 0

Es steht zwar da, dass der Befehl "Show Tasks" heißt, aber wirklich ausgeführt wird er nicht, da ja keine Auflistung der Tasks angezeigt wird!

Code
Declare Function NSFRemoteConsole Lib NOTES_DLL ( Byval sServername As String, Byval sCommand As String, hResponse As Long ) As Long


Code
	
	Private Sub main()
	'========================================
	
		...

		While it.hasNExtElement
			sCommand = it.nextElement

			lResult = Me.lSendConsoleCommandLessThanN6( nnServer.Abbreviated, sCommand, False, sRespondMSG )		
			Print "sRespondMSG: " + sRespondMSG' Wird in der Konsolenausgabe ausgegeben
						
		Wend
		
	End Sub


Code
Private Function lSendConsoleCommandLessThanN6( psServer As String, psCommand As String, pbWithResponse, psRetResponse As String) As Long
	'========================================
		'sendet an psServer das Command psCommand
		'nur unter Windows lauffähig: wegen CopyMemory
		Dim hBuffer As Long
		Dim lStatus As Long
		Dim sResponse As String
		
		lStatus = NSFRemoteConsole( psServer, psCommand, hBuffer )

		psRetResponse = Cstr(lStatus)
		
	End Function

Weiß jemand weiter?

Liebe Grüße
Giordano

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Konsolenkommandos ausführen
« Antwort #1 am: 29.10.08 - 12:33:59 »
Warum machst Du das nicht über NotesSession.SendConsoleCommand??

Beim API-Call "lSendConsoleCommandLessThanN6" macht mich zudem das "LessThanN6" stutzig.

Bernhard

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Konsolenkommandos ausführen
« Antwort #2 am: 29.10.08 - 13:27:17 »
Hi Bernhard,
danke, für deine Antwort!

Warum machst Du das nicht über NotesSession.SendConsoleCommand??

Wird ja erst ab Notes 6 unterstützt.

Zitat
Beim API-Call "lSendConsoleCommandLessThanN6" macht mich zudem das "LessThanN6" stutzig.

Wieso?

Liebe Grüße
Giordano

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Konsolenkommandos ausführen
« Antwort #3 am: 29.10.08 - 13:28:47 »
Äh, wir sind doch hier im 7er Board ... Von Versionen vor R6 hast Du nichts geschrieben.

Bernhard

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Konsolenkommandos ausführen
« Antwort #4 am: 29.10.08 - 13:47:58 »
Tut mir Leid! :(

Ich habe mal deinen Tipp ausprobiert und da habe ich dasselbe Problem. Wenn ich dieses lösen kann, dann sollte sich ersteres auch erledigen!

Liebe Grüße
Giordano

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Konsolenkommandos ausführen
« Antwort #5 am: 29.10.08 - 13:56:44 »
Bzw. mit sendConsoleCommand sieht es so aus:

Zitat
Show Tasks >C:\WINDOWS\TEMP\rem27731.con
29.10.2008 13:54:08   Agent printing: sRespondMSG:

Da fehlt also das "Remote console command issued by Dev/Test/DE: Show Tasks"

Liebe Grüße
Giordano

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Konsolenkommandos ausführen
« Antwort #6 am: 29.10.08 - 14:03:23 »
Darf mit der verwendeten ID denn überhaupt auf der Console herumgefuhrwerkt werden? Stimmen die Berechtigungen?

Bernhard

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Konsolenkommandos ausführen
« Antwort #7 am: 29.10.08 - 14:20:44 »
Darf mit der verwendeten ID denn überhaupt auf der Console herumgefuhrwerkt werden?

Meinst du die UserID? Manuell geht's ja.

Zitat
Stimmen die Berechtigungen?

Die Berechtigungen stimmen, da ich die nötigen Rollen habe und den Befehl auf der Konsole manuell ausführen kann.

Liebe Grüße
Giordano

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Konsolenkommandos ausführen
« Antwort #8 am: 29.10.08 - 14:38:40 »

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Konsolenkommandos ausführen
« Antwort #9 am: 29.10.08 - 15:27:34 »
Hi,
danke, für deine Antwort!
Ich habe bemerkt, dass bei den beiden Befehlen (die erste Variante von mir und die zweite von koehlerbv), die Konsolenausgabe in einem String ausgegeben wird, anstatt dass der Befehl normal auf der Konsole ausgegeben wird.
Man kann zwar den Rückgabewert per "print" auf der Konsole ausgeben, aber das Dumme dabei ist, dass "print" nur wenige Zeichen ausgeben kann und so sehe ich bei "Show Task" immer nur einen Bruchteil!

Ich brauche also entweder eine Möglichkeit den Rückgabewert vollständig ausgeben zu können, oder der Befehl soll so ausgeführt werden, wie sonst auch, d. h., dass automatisch der Rückgabewert auf der Konsole angezeigt werden soll.

Liebe Grüße
Giordano

Offline mase

  • Frischling
  • *
  • Beiträge: 14
Re: Konsolenkommandos ausführen
« Antwort #10 am: 29.10.08 - 15:29:18 »
Hallo Hubert,

also ich verwende immer den Befehl:

consoleReturn$ = session.SendConsoleCommand(serverName$, consoleCommand$)

Damit habe ich bisher immer gute Ergebnisse erzielt.

Vielleicht hilft Dir das weiter.

Gruß

Mark

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Konsolenkommandos ausführen
« Antwort #11 am: 29.10.08 - 15:32:35 »
Hallo Hubert,

also ich verwende immer den Befehl:

consoleReturn$ = session.SendConsoleCommand(serverName$, consoleCommand$)

Damit habe ich bisher immer gute Ergebnisse erzielt.

Vielleicht hilft Dir das weiter.

Hi Mase,
der Befehl funktioniert genauso gut, wie der andere auch, nur haperts bei mir an der Konsolenausgabe. Siehe voriger Beitrag von mir.

Liebe Grüße
Giordano

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Konsolenkommandos ausführen
« Antwort #12 am: 29.10.08 - 20:37:34 »
Hallo Giordano,

habe das Script so ausprobiert und es wird problemlos in consoleReturn alles zurückgeliefert.

Wie sieht die Variable denn im Debugger aus ?

Schönen Abend noch
Axel

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Konsolenkommandos ausführen
« Antwort #13 am: 29.10.08 - 22:37:20 »
Irgendwie bekomme ich das Gefühl, dass Giordano die Ausgabe tatsächlich auf der Serverkonsole haben möchte und nicht als Return Value im Client. Wozu auch immer ... Nur: Das würde überhaupt gar nicht funktionieren - entweder direkt auf der Konsole (manuell), oder remote, dann bekommt man aber nur einen Rückgabewert (oder eine "Fehlermeldung", wenn keine direkte Rückgabe möglich ist - hierzu ist das NotesSession.SendConsoleCommand nicht als Function, sondern per Call aufzurufen).

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz