AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Tasklist in CSV-Datei schreiben

Ein Thema von ickehausen · begonnen am 22. Jul 2015 · letzter Beitrag vom 22. Jul 2015
Antwort Antwort
ickehausen

Registriert seit: 29. Jul 2004
85 Beiträge
 
Delphi 2010 Enterprise
 
#1

Tasklist in CSV-Datei schreiben

  Alt 22. Jul 2015, 12:04
Hallo zusammen,

ich habe mehrer Terminalserver laufen, die mit Loadbalancing die Anwender verteilen. Nun hängen sich ganz gerne die Web-Browser auf und ich muss die User wieder freischalten in dem ich den Prozess abschieße. Jetzt wollte ich die Tasks in eine CSV-Datei schreiben um sie erstmal zu durchsuchen.
Mit der DOS-Konsole funktioniert es super.

Code:
tasklist /s 192.168.178.10 /u domain\administrator /p password /fi "Username eq User1" fo/csv >> c:\tasklist.csv
Wenn ich es aus Delhpi versuche, wird zwar die Datei tasklist.csv erzeugt, sie bleibt aber leer

ShellExecute(0, nil, 'cmd.exe', 'tasklist /s 192.168.178.10 /u domain\administrator /p password /fi "Username eq User1" fo/csv >> c:\tasklist.csv', nil, SW_SHOWNORMAL); Kann mir jemand einen Tipp geben?
Es gibt keine dummen Fragen ...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Tasklist in CSV-Datei schreiben

  Alt 22. Jul 2015, 12:27
Kann es sein dass du einfach nur den "/C"-Parameter für die cmd.exe vergessen hast voranzustellen?
  Mit Zitat antworten Zitat
ickehausen

Registriert seit: 29. Jul 2004
85 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Tasklist in CSV-Datei schreiben

  Alt 22. Jul 2015, 12:56
Ich weiß jetzt leider nicht, was Du mit dem /C-Parameter meinst. Es wird ja die Datei c:\tasklist.csv erzeugt. Also werden Teile des Befehls ja durchgeführt. Wenn ich den Befehl in der DOS-Konsole eingebe, dauert es eine Zeit, bis die Datei vollständig erzeugt ist. Wenn ich es mit Delphi versuche, erscheint nur Kurz das Konsolen-Fenster und schließt sich dann gleich wieder. Also tippe ich, dass die Daten nicht in die Datei geschrieben werden, weil das Konsolen-Fenster zu früh geschlossen wird.
Es gibt keine dummen Fragen ...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Tasklist in CSV-Datei schreiben

  Alt 22. Jul 2015, 13:16
/C für "Hey, cmd.exe, führe das aus, was ich dir als Parameter gebe und beende dich dann"

Es fehlte wohl weiterhin noch /A für "Ausgabe an Standard-Pipe im ANSI-Format"

Folgendes Programm

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, WinApi.Windows, WinApi.ShellApi;

begin
  try
   if ShellExecute(
      0,
      nil,
      'cmd',
      '/A /c tasklist /s 192.168.178.10 /u domain\administrator /p password /fi "Username eq User1" /fo csv > x:\test.txt',
      nil,
      SW_SHOWNORMAL
   ) < 32 then RaiseLastOSError();

  except
   on E: Exception do
     Writeln(E.ClassName, ': ', E.Message);
  end;

  readln;
end.
erzeugt bei mir eine Datei "x:\test.txt" mit dem Inhalt
Code:
INFORMATION: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt.
Führe ich das gleiche in der Konsole aus bekomme ich allerdings noch etwas mehr:

Code:
WARNUNG: Benutzeranmeldeinformationen können für lokale Verbindungen nicht verwe
ndet werden.
INFORMATION: Es werden keine Aufgaben mit den angegebenen Kriterien ausgeführt.
Wenn du den "stderr"-Ausgabepfad (Fehler und Warnungen) auch in der Datei haben willst musst du die eine Zeile noch so anpassen:

Code:
'/A /c tasklist /s 192.168.178.10 /u domain\administrator /p password /fi "Username eq User1" /fo csv 1> x:\log.txt 2>&1'


PS: Aber ich glaube das Programm erstmal auf die Festplatte schreiben lassen, dann warten bis es fertig ist um dann diese Datei wieder einzulesen, das geht sicherlich besser. Das ging doch irgendwie, dass man z.B. "tasklist" startet und seinen stdOut direkt im Delphi-Programm abgreift?
  Mit Zitat antworten Zitat
ickehausen

Registriert seit: 29. Jul 2004
85 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Tasklist in CSV-Datei schreiben

  Alt 22. Jul 2015, 14:03
Vielen Dank, schöner Günther,

es funktioniert und ich versuche jetzt noch, dass zu verstehen. Das in der DOS-Konsole noch mehr angezeigt wird, ist für mich i.M. nicht wichtig. Die Daten, die ich benötige, erhalte ich.
Es gibt keine dummen Fragen ...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf