Autor Beitrag
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 22.01.09 01:04 
Moin!

Ich hab´ da ein kleines Problem, bei dem ich nicht so richtig den Ansatz finde :( vielleicht könntet ihr mir mal auf die Sprünge helfen. ;)

Ich muss ein Script debuggen, dass im Rahmen eines automatischen Installationsverfahrens (Enterprise Software Management) aufgerufen wird. Bei dem Vorgang wird vom InstallerService nicht nur mein Script aufgerufen, sondern auch ein kleines externes Tool temporär auf der Platte abgelegt, aufgerufen und dann wieder gelöscht.

Ich vermute, dass die Kommandozeilen-Parameter, mit denen das ext. Tool vom InstallerService aufgerufen wird, nicht korrekt sind oder zumindest nicht vollständig. Der Hersteller/Hotline resp. "mein Ansprechpartner" für das ESM-Werkzeug sagt natürlich, "das kann gar nicht sein, dass muss an meinem Script liegen". :gruebel: :les: :evil: Glaub ich aber nicht... 8)

Problem: wie komme ich an die Kommandozeile, mit der das - ja leider nur temporär auf der Platte befindliche - Tool aufgerufen wird?! :nixweiss: Ich würde ja einfach eine Dummy-Anwendung "dazwischen" hängen, die einfach die übergebenen Parameter an das Original weiterleitet, aber das geht ja nicht, weil die Anwendung nur temporär da ist (und so Tricks mit vorher hinkopieren und Schreibschützen geht nicht, weil dann der InstallerService den Vorgang abbricht)... :?

Was tun?! :think:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.01.09 01:07 
Zeigt der Process Explorer den Prozess nicht an? Dort kann man die Kommandozeile ja einsehen.
technet.microsoft.co...ernals/bb896653.aspx
Und ab Vista zeigt der Original Taskmanager ja die Kommandozeile auch bereits an.
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 22.01.09 01:10 
Moin!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Zeigt der Process Explorer den Prozess nicht an? Dort kann man die Kommandozeile ja einsehen.
IIRC zeigt mir der PE doch keine beendeten Prozesse an, oder? :gruebel: Weil, das Tool läuft max. 500ms, soo schnell kann ich nicht lesen... :P

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Und ab Vista zeigt der Original Taskmanager ja die Kommandozeile auch bereits an.
a) dito, b) XP pro. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 22.01.09 01:14 
Man kann dem PE sagen, dass er beendete Prozesse für etwa 9 Sekunden noch anzeigen soll. Das sollte doch schon eher reichen.

Problem ist aber, dass man ggf. schnell genug Doppelklicken muss auf den Prozess, da die Kommandozeile IIRC nicht in den Datenspalten anzeigbar war ...

Ansonsten (Extrem-Lösung): Hook im InstallerService CreateProcessExW und schreib jegliche Aufrufe davon auf Platte ... 2ct usw. Du weißt ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.01.09 01:16 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
IIRC zeigt mir der PE doch keine beendeten Prozesse an, oder? :gruebel: Weil, das Tool läuft max. 500ms, soo schnell kann ich nicht lesen... :P
Dann erzeuge einen Prozess, der viel Rechnerzeit braucht und setze die Priorität des Installers herab. Dann kann das Tool nicht so schnell fertig werden. :mrgreen:

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Problem ist aber, dass man ggf. schnell genug Doppelklicken muss auf den Prozess, da die Kommandozeile IIRC nicht in den Datenspalten anzeigbar war ...
Doch, das kann man einstellen.

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Ansonsten (Extrem-Lösung): Hook im InstallerService CreateProcessExW und schreib jegliche Aufrufe davon auf Platte ... 2ct usw. Du weißt ;-)
Das wollte ich auch gerade vorschlagen. :mrgreen:
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Do 22.01.09 01:22 
Oh. Vergesst es, hab den OP nicht zuende gelesen.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."


Zuletzt bearbeitet von Martok am Do 22.01.09 01:23, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.01.09 01:23 
Das hast du aber gelesen in der Frage oben? ;-)
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Ich würde ja einfach eine Dummy-Anwendung "dazwischen" hängen, die einfach die übergebenen Parameter an das Original weiterleitet, aber das geht ja nicht, weil die Anwendung nur temporär da ist (und so Tricks mit vorher hinkopieren und Schreibschützen geht nicht, weil dann der InstallerService den Vorgang abbricht)... :?

// EDIT:
Zu spät, schon gelesen gehabt. :mrgreen:
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 22.01.09 01:25 
Moin!

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Man kann dem PE sagen, dass er beendete Prozesse für etwa 9 Sekunden noch anzeigen soll.
Ich kann die Option nicht finden... :oops:

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Ansonsten (Extrem-Lösung): Hook im InstallerService CreateProcessExW und schreib jegliche Aufrufe davon auf Platte ... 2ct usw. Du weißt ;-)
8) War klar, der Tipp... Wasserstoffbomben und Spatzen... :roll: ;) Also, es sollte nicht gleich in derartige Arbeit ausbrechen. Da muss ich ja erstmal die Debug-Anwendung debuggen, bis das läuft... :gaehn:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.01.09 01:27 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Man kann dem PE sagen, dass er beendete Prozesse für etwa 9 Sekunden noch anzeigen soll.
Ich kann die Option nicht finden... :oops:
Options --> Different Highlight Duration... müsste das sein. ;-)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 22.01.09 01:27 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Man kann dem PE sagen, dass er beendete Prozesse für etwa 9 Sekunden noch anzeigen soll.
Ich kann die Option nicht finden... :oops:

Options --> Difference Highlighting Duration --> 9 --> OK

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Ansonsten (Extrem-Lösung): Hook im InstallerService CreateProcessExW und schreib jegliche Aufrufe davon auf Platte ... 2ct usw. Du weißt ;-)
8) War klar, der Tipp... Wasserstoffbomben und Spatzen... :roll: ;) Also, es sollte nicht gleich in derartige Arbeit ausbrechen. Da muss ich ja erstmal die Debug-Anwendung debuggen, bis das läuft... :gaehn:

cu
Narses

Wollt das ja auch nur der Vollständigkeit halber mit erwähnt gewusst haben ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Do 22.01.09 01:28 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Man kann dem PE sagen, dass er beendete Prozesse für etwa 9 Sekunden noch anzeigen soll.
Ich kann die Option nicht finden... :oops:

Highlight Duration... bringt aber hier nix, da er den dann bei wenigstens einem Update laufend erwischen muss.

Was aber geht, ist den Host-Process mit Process Monitor überwachen. Auf 'Process Activity' überwachen, dann bleiben nur noch die CreateProcess-Aufrufe übrig.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 22.01.09 01:31 
Moin!

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Was aber geht, ist den Host-Process mit Process Monitor überwachen. Auf 'Process Activity' überwachen, dann bleiben nur noch die CreateProcess-Aufrufe übrig.
:shock: Was, wie?! Details! :D

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.01.09 01:34 
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 22.01.09 01:41 
Moin!

Ich danke euch! :zustimm: Schätze, damit komme ich weiter, ich werde das morgen mal intensiv verfolgen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.01.09 01:43 
Das geht sehr einfach, einfach Filter --> Filter... oder Strg + L und dann wie im angehängten Bild den Filter einstellen (Operation is "Process Create") und Add.
Einloggen, um Attachments anzusehen!
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Do 22.01.09 01:47 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das geht sehr einfach, einfach Filter --> Filter... oder Strg + L und dann wie im angehängten Bild den Filter einstellen (Operation is "Process Create") und Add.

Ahja, so gehts auch. Ich hab das über die Buttons in der Toolbar umgeschaltet, und dann auch nur den einen übrig behalten. Aber gut, man kann auch gleich richtig filtern ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 22.01.09 09:05 
Anscheinend kann auch FileMon von den SysInternals Parameter anzeigen. Dort werden alle Festplattenzugriffe aufgelistet, das ist vll. sogar schneller ausprobiert ;)
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 27.01.09 22:41 
Moin!

user profile iconUGrohne hat folgendes geschrieben Zum zitierten Posting springen:
Anscheinend kann auch FileMon von den SysInternals Parameter anzeigen. Dort werden alle Festplattenzugriffe aufgelistet, das ist vll. sogar schneller ausprobiert ;)
Wenn ich das auf der MS-Site richtig interpretiere, dann ist ProcessMonitor der Nachfolger von FileMon&RegMon. :idea: ;)


Soo, dann will ich doch hier noch mal die Ergebnisse der Aktion vermelden: :)
  • Das Fazit vorab: ich habe es damit hingekriegt :dance2: aber... :hair:

  • ProcMon runtergeladen, gestartet, ein paar Sekunden den reinlaufenden Ereignissen zugesehen - Bluescreen (nur aus dem Augenwinkel gesehen!) - Reboot (ohne, dass ich das in den Systemeigeschaften erlaubt hätte)! :shock:

  • Hm :gruebel: das Ding auf einem anderen Rechner gestartet - gleicher Effekt. :?!?:

  • Gibt´s doch nicht :nixweiss: Was kann das sein?! :arrow: Erstmal direkt nach dem Start das Capturing gestoppt, Backing auf File gestellt, den Filter eingerichtet und Haken bei "gefilterte Ereignisse droppen" gesetzt, IP-Adressresolution ausgemacht. Wieder gestartet, besser. :? Trotzdem, nach 15 Minuten :arrow: Bluescreen, Reboot. :evil:

  • :idea: Der Virenscanner! :roll: Den ganzen Rotz disabled, ProcMon gestartet, läuft stabil. :) Uff... ;)

  • Software-Verteilungswerkzeug angeworfen, Job angelegt, gestartet - Fehler! :shock: Hm... :? nochmal gestartet - Fehler. :| Auf dem andern Rechner (der von oben) den Job gestartet - Fehler! :lol: :autsch: Auf einem dritten Rechner den Job ausgeführt - geht. :( Fazit: auf den Rechnern, auf denen ProcMon einen Reset ausgelöst hat, läuft das SW-Verteilungs-Tool nicht mehr... :autsch: :autsch: :nut: Ahhhhhhhhhrg! :twisted: Warum? :nixweiss:

  • Also den dritten Rechner entsprechend vorbereitet und höllig aufgepasst, dass ProcMon keinen Reset auslöst. 8) Job gestartet, läuft an (besteht aber leider aus mehreren Teilschritten), kurz bevor der letzte Teilschritt (mit meinem Script) kommt - Reboot... :bawling: :evil: AAAAAAAAAAAHHHHHHHHHHHHHRRRRRRRGGGG!!! :puke:

  • Diesmal 8) hat der kleine Narses aber keine Hardware, sondern eine VM genommen :mrgreen: und klickt kalt lächelnd auf "Revert to Snapshot"... :tongue: und weiter gehts...

  • Ohne ProcMon den Job bis vor den entscheidenden Teilschritt laufen lassen und dann erst ProcMon gestartet. :D Bingo! Parameter erwischt. ;) Und wie ich es mir gedacht habe, die Parameter sind nicht die, die da stehen sollten. Hehe. Also, Erfolg! :dance2:

  • Dummerweise sind nun aber leider auch zwei Arbeitsplatzrechner (softwaremäßig) defekt :( so dass ich die jetzt neu installieren darf... :roll: einer davon ist natürlich mein Desktop... :autsch: klar eigentlich, oder? *seufz*

  • Dieses Tool ist entweder grandios buggy oder ich habe nicht die Lizenz zur Nutzung. :!:
Nachdem ich nun zur allgemeinen Erheiterung beigetragen habe, ;)

cu :wave:
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 28.01.09 01:43 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Dieses Tool ist entweder grandios buggy oder ich habe nicht die Lizenz zur Nutzung.
Naja, dass es bei mir funktioniert zeigt ja der Screenshot. ;-)
Aber was da derart schief laufen kann weiß ich nicht. Vielleicht funkt ja das Antivirenprogramm / die Firewall dazwischen und verursacht sowas. Bei mir springt bei sowas z.B. die Firewall an (ZoneAlarm).
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 28.01.09 03:53 
Also bei mir verursacht ProcMon auch teilweise von "Programm hängt" bis Bluescreen verschiedene Dinge ...

Wobei mein Windows auch beim Stecken von 4 GB gar nicht hochfährt, von daher kann ich nicht wirklich sagen, ob mein System da noch wirklich als Testsystem für solch eine Beurteilung herhalten kann ...

Fakt ist, dass ProcMon durchaus Hänger verursachen kann. Ähnliche Effekte kann auch TcpMon haben (verursacht bei mir öfters BlueScreens, besonders, wenn man versucht, TcpMon zu beenden.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.