[Win32] onzichtbaar processen starten *

Pagina: 1
Acties:
  • 248 views sinds 30-01-2008
  • Reageer

  • xychix
  • Registratie: September 2000
  • Laatst online: 03-12-2025

xychix

FreeBSD Rules !

Topicstarter
voor beheer in een groot netwerk moeten er op alle machines een aantal batch scripts gedraaid worden. Wanneer je echter een cmd proces start op de machine dan komt deze daar ook in beeld (ook als je hem remote start) is dat te voorkomen ??

en als we een klein programmatje schrijven dan regelmatig checkt of er nog nieuwe updates klaar staan voor hem hoe kunnen we dat dan onzichtbaar laten draaien ?

ik heb al gegoogled, ik kan wel C++ programmeren en wil gaan bouwen in visual studio 6. ik heb alleen nog nooit eerder een proces zo gemaakt dat hij niet in taakbalk en systemtray voorkwam.

voor google kan ik de juiste zoekwoorden maar niet vinden. of ik krijg een boel onzin terug of een heleboel gevonden items.... waar je nog niets mee opschiet.

kan iemand mij opweg helpen ??

1. cmd onzichtbaar starten
2. een nog te bepalen servertje onzichtbaar laten draaien (te starten vanuit het register)

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 09:27

dotcode

///\00/\\

kijk eens bij sysinternals, zij hebben precies de toolset die je zoekt.
http://www.sysinternals.com

Je hoeft niets op de bakken te zetten en je kan toch alles remote doen.

http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

Ik geloof dat dit de tools set is die je nodig hebt :).

BTW je kan ook naar sms kijken.

[ Voor 12% gewijzigd door dotcode op 25-08-2003 17:08 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

En doodgewoon een proces starten met CreateProcess verschijnt ook niet in de taskbar totdat er een window wordt gestart :z

Professionele website nodig?


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Je zou 1 batchfile kunnen maken die andere batchfiles aanroept.
In deze batchfile zouden dus dit soort dingen komen:

start /min login_admin.bat
start /min doe_iets.bat
exit

Het gaat dus om: 'start /min', hierdoor komen de dosboxjes iig niet zo prominent in beeld, maar geminimaliseerd onder in je scherm.
Echt helemaal onzichtbaar zijn ze dus nog niet... :(

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 19-05 16:21

leuk_he

1. Controleer de kabel!

Dat heet een service.

Je kunt met tools (zoeken) ook ervoor zorgen dat een willekeurig proces als service draait. Ook in de NT resource kit zit hiervoor een tooltje (anysvc geloof ik).

Let er wel op dat standaard een service geen toegang heeft tot het netwerk (netwerk shares worden onder een inlog account aangemaakt en service draait standaard onder localsystem).

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:13

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zie de opmerking van curry684
Maak gewoon een win32 GUI toepassing (dus met een WinMain () functie), en roep bij programmastart gewoon CreateProcess aan met cmd.exe als applicatie en je batchfile als argument (en nog een /C ertussen zodat het proces wordt afgesloten nadat de commando's zijn verwerkt). Et voila, je hebt geen console scherm

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

En vraag 2) kun je idd imho het beste oplossen met een service als het alleen maar op NT/2k/XP bakken hoeft te draaien.

Professionele website nodig?


  • xychix
  • Registratie: September 2000
  • Laatst online: 03-12-2025

xychix

FreeBSD Rules !

Topicstarter
curry684 schreef op 25 augustus 2003 @ 17:25:
En vraag 2) kun je idd imho het beste oplossen met een service als het alleen maar op NT/2k/XP bakken hoeft te draaien.
ik begrijp dus dat het op windows bakken niet kan ? eigenlijk moet de onzichtbaarheid ongeveer de functionaliteit van Back Orifice bevatten.. en dat draaide ook op win 98 / 95 (we hebben nl nog een aantal win 95 op de administratie afdeling)

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


  • MisterData
  • Registratie: September 2001
  • Laatst online: 16-05 23:29
xychix schreef op 25 August 2003 @ 18:49:
[...]


ik begrijp dus dat het op windows bakken niet kan ? eigenlijk moet de onzichtbaarheid ongeveer de functionaliteit van Back Orifice bevatten.. en dat draaide ook op win 98 / 95 (we hebben nl nog een aantal win 95 op de administratie afdeling)
Nee, services bestaan alleen maar onder Windows NT, Windows XP en Windows 2000. Onder de andere windows'en kun je gewoon een windowless programma maken, komt ook niet voor in de systray of de taakbalk :)

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

xychix schreef op 25 August 2003 @ 16:46:
voor beheer in een groot netwerk moeten er op alle machines een aantal batch scripts gedraaid worden. Wanneer je echter een cmd proces start op de machine dan komt deze daar ook in beeld (ook als je hem remote start) is dat te voorkomen ??
Kan je dat soort dingen niet beter doen vanuit een login script?
Eventueel via een "start /min" en dan de X in het cmd window disablen ofzo ?

Dit soort dingen zijn 'natuurlijker' (imho) om te doen vanuit een login script :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:13

.oisyn

Moderator Devschuur®

Demotivational Speaker

Voor win9x is er natuurlijk ook nog RegisterServiceProcess.
Maar wat is een "nog te bepalen servertje"? Is dat eigen software? Want service of niet, als een process een window aanmaakt (binnen de huidige session) dan is ie zichtbaar

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

.oisyn schreef op 25 August 2003 @ 19:41:
Voor win9x is er natuurlijk ook nog RegisterServiceProcess.
Maar wat is een "nog te bepalen servertje"? Is dat eigen software? Want service of niet, als een process een window aanmaakt (binnen de huidige session) dan is ie zichtbaar
Normaal zou je op WindowsNT en varianten ook nog op een ander Winsta je 'window' kunnen laten starten,
By default, CreateProcessAsUser creates the new process on a noninteractive window station with a desktop that is not visible and cannot receive user input. To enable user interaction with the new process, you must specify the name of the default interactive window station and desktop, "winsta0\default", in the lpDesktop member of the STARTUPINFO structure. In addition, before calling CreateProcessAsUser, you must change the discretionary access control list (DACL) of both the default interactive window station and the default desktop. The DACLs for the window station and desktop must grant access to the user or the logon session represented by the hToken parameter.
Overigens moet je je heel erg afvragen ofdat het wel zinvol is om je PC allerlei dingen te laten doen zonder feedback te geven op je scherm. In het algemeen is het gemakkelijk om dit gewoon (gepast) zichtbaar te doen.

Verwijderd

Waarom gewoon geen Trayicoon maken dan wat eventueel een status venstertje kan tonen ...
En om een proces onzichtbaar te starten doe je
Delphi:
1
shellexecute(hWnd,PChar('open'),Pchar('cmd'),Pchar('\C "\\Server1\loginbatch.bat"',Pchar(''),SW_HIDE);


ShellExecute is een API functie werkt in de meeste programmeertalen
Het is SW_HIDE die het em doet ipv SW_SHOW. Zo'n programma lijkt me eenvoudiger te programmeren als een service

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:13

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het is SW_HIDE die het em doet ipv SW_SHOW
en dat werkt dus alleen als de nCmdShow parameter (de 4e) van WinMain wordt gebruikt om de window te laten zien

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Dan maak je toch gewoon een programma zonder formulier :)

Delphi:
1
2
3
4
5
6
7
8
9
10
program invisible;
uses
  SysUtils,
  ShellApi,
  Windows;

begin
  ShellExecute(hInstance,pchar('open'),Pchar('cmd'),
              Pchar('\C "c:\test.bat"'),Pchar(''),SW_HIDE);
end.


Als ik het start zie ik geen venstertje opstarten en mijn batch c:\test.bat
code:
1
dir c:\ > c:\test.txt

wordt uitgevoerd en ik heb de inhoud van c:\ als c:\test.txt opgeslagen. C++ is handing weet het maar dit doet het ;)

Gewoon in Delphi een consoleapplicatie maken en deze tag:
{$APPTYPE CONSOLE}
wissen, compilen, klaar
Wil je de code eens zien :) Download
Ik wil niet betwetering overkomen of zo :D

[ Voor 16% gewijzigd door Verwijderd op 26-08-2003 00:14 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Recon: je snapt oisyn denk ik niet helemaal :) De SW_HIDE die je aan ShellExecute (of CreateProcess for all that matters) meegeeft wordt als 4e parameters aan de WinMain van het child process meegegeven, en het is volledig optioneel of die zich er iets van aantrekt. Je methode is dus botweg niet waterdicht.

* curry684 wil ook niet betweterig overkomen of zo hoor ;)

Professionele website nodig?


Verwijderd

:)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Onder het motto far-fetched kun je trouwens ook nog met ShellExecuteEx of CreateProcess het proces lanceren, vervolgens met EnumWindows en GetWindowThreadProcessId de geopende windows traceren en die handmatig ontdoen van WS_APPWINDOW styles en allemaal hiden :z

Professionele website nodig?


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 19-05 00:34

alienfruit

the alien you never expected

Moet je dan toch eerst attach-en aan die thread process van die andere window :Z
Dat gebruikt ik in ieder geval om zo'n 3d bevel weg te krijgen bij een popupmenu :)

[ Voor 35% gewijzigd door alienfruit op 26-08-2003 01:47 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Waarom zou je moeten attachen?

PostMessage(Handle, WM_CLOSE, 0, 0); doet het goed hoor :z

Professionele website nodig?


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 19-05 00:34

alienfruit

the alien you never expected

Ik ga maar slapen :Z :X

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

* curry684 ook, maar voor jou is het harder nodig :Y)

Professionele website nodig?


  • xychix
  • Registratie: September 2000
  • Laatst online: 03-12-2025

xychix

FreeBSD Rules !

Topicstarter
http://msdn.microsoft.com...rt__popen.2c_._wpopen.asp

als ik msdn moet geloven kan ik gewoon gebruik maken van popen !!

ik heb nu een windowless server proggie. deze zal dan over tcp/ip commando's accepteren en deze draaien, de output komt dan weer terug over tcp/ip...

klinkt als de oplossing.. ik vind het alleen zo weird dat Popen gaat werken onder windows ....

let's try

:'( noway.. werkt niet.. verder zoeken dan maar :P

wat ik nu dus wil in vanuit mijn C++ programma een commandline opdracht starten en de uitvoer afvangen..

bijvoorbeeld

"dir c:\"

Onder linux kan dit met Popen maar dit werkt toch niet onder win32 applicaties.

[ Voor 28% gewijzigd door xychix op 26-08-2003 11:37 ]

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad

Pagina: 1