[XPe] RunAs alternatief

Pagina: 1
Acties:

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
Ik heb hier een rits T5700's staan, thin clients van HP waar Windows XPembedded op staat. Nou hebben we intern een tool ontwikkeld die vanuit een service gestart moet worden. Het probleem is echter dat de service onder System draait, en dat tooltje onder een useraccount moet draaien. Hiervoor zou je normaal RunAs kunnen gebruiken. Helaas beschikt onze XPe distributie niet over RunAs. De service waar deze van afhnakelijk is (secondary logon meen ik dat dat was maar pin me er niet op vast) draait in elk geval ook niet op die clients. Ik kan dus niet zomaar RunAs.exe kopieren en gebruiken.

Er zijn alternatieven, zoals RunAs Professional. Helaas willen die ook niet omdat ze ook van die service afhankelijk zijn.

Dan is er nog SU uit de resourcekit (van NT4 welliswaar) maar die wilt ook niet onder XPe werken. Deze geeft deze http://support.microsoft....5/4/01.ASP&NoWebContent=1 foutmelding, maar die patch kan ik dus helaas niet krijgen van MS.

Mijn vraag is dus OF iemand die die patch wel heeft, OF een alternatief voor RunAs.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je hebt zelf de service ontwikkeld geef je al aan - is het dan niet gemakkelijker om ook de API calls te gebruiken om een user te impersonaten? :)

http://msdn.microsoft.com...personateloggedonuser.asp

  • Question Mark
  • Registratie: Mei 2003
  • Laatst online: 16:10

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Misschien zie ik het wel totaal verkeerd. Maar je kunt bij het defineren van services toch opgeven onder welk account de service moet draaien?

Net even gekeken in de registry van m'n eigen machine. Onder de parameters van de service komt dan een extra string met de naam "Objectname" de waarde van deze string bepaald onder welk account dit moet draaien. Aangezien je de service zelf gedefineerd hebt, kun je deze instelling dan niet wijzigen?

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
Klopt. Maar het probleem is dat deze service moet kunnen interacten met de desktop. Een service kan dit alleen als het onder het System-account draait. De waarde 'interactive' wordt opgeslagen in de derde bit van de binary waarde 'Type' in de registry van de service. Als ik die waarde met de hand zet wanneer ik de service onder het user account zet, werkt het nog steeds niet, dat is blijkbaar gewoon niet mogelijk. De service MOET kunnen interacten met de desktop omdat deze service na een aantal andere acties uiteindelijk een Citrix client start. Wanneer de service niet kan interacten, kunnen alle 'onderliggende' processen dat ook niet. En dus zal dan de ICA client zijn werk niet goed doen. Met een RunAs kan ik dat dus omzeilen.

@elevator:
we hebben de service niet zelf ontwikkeld. Wat wij ontwikkeld hebben is een losse 'tool'. Om bepaalde redenen (vooral prijs, je weet hoe dat gaat in de meeste bedrijven, mag niks kosten) is die in Perl geschreven. Ik doe zelf niks aan dat programmeren maar zal de link doorsturen, misschien kunnen we dat vanuit perl ook wel aanroepen.

Voor in de tussentijd sta ik graag open voor andere tips nog :)

[ Voor 24% gewijzigd door Rataplan_ op 29-03-2004 08:39 ]


  • mutsje
  • Registratie: September 2000
  • Laatst online: 07-05 09:20

mutsje

Certified Prutser

Zomaar hotfixes van Microsoft installeren is sowieso niet echt slim omdat Microsoft deze ongevraagd kan veranderen en dan de mensen die het officieel verkregen hebben middels mailnotification op de hoogte houd.. jou in dat geval dus niet.

Verder zou ik de tip van Elevator gewoon uitproberen.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Waarom draait het verhaal dan als service? - als het moet interacten met de desktop is het gebruikelijk / aan te raden om hier een apart programma voor te maken die daadwerkelijk het interactieve verhaal afhandelt.

Misschien dat je ook kan vertellen wat je uiteindelijke doel is - misschien dat er een niet-service gebaseerde oplossing is?

  • Archie_T
  • Registratie: Januari 2002
  • Laatst online: 19:32
Wellicht is Epal iets voor je?
http://www.microsoft.com/...0serv/downloads/epal.mspx
Ik weet alleen niet of het helemaal voldoet aan je eisen, maar wij gebruiken het ongeveer voor hetzelfde als wat jij noemt.

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
elevator schreef op 29 maart 2004 @ 09:35:
Waarom draait het verhaal dan als service? - als het moet interacten met de desktop is het gebruikelijk / aan te raden om hier een apart programma voor te maken die daadwerkelijk het interactieve verhaal afhandelt.

Misschien dat je ook kan vertellen wat je uiteindelijke doel is - misschien dat er een niet-service gebaseerde oplossing is?
Simpel (als je het weet :)): De tool mag pas gaan draaien wanneer de SmartcardService actief is. De service die ik start moet dus dependend zijn van de Smartcard service.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Kan je dit niet relatief makkelijk ondervangen door gewoon de servicestatus op te vragen? (voor mij part in een batchfile met: sc query SmartcardService ?)

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
elevator schreef op 29 maart 2004 @ 09:54:
Kan je dit niet relatief makkelijk ondervangen door gewoon de servicestatus op te vragen? (voor mij part in een batchfile met: sc query SmartcardService ?)
Juist... helaas zo simpel is het niet.
De T5700 is een hele mooie client maar zit vol problemen, althans softwarematig. Windows XPe logt automatisch in (en dat moeten we ook hebben dus kan/mag ik niet disablen). Echter de eerste keer dat het ding opstart werkt de groep startup niet, en ook 'run' in de registry start niet. Log ik de gebruiker uit, dan logt de client (door de autologon) gelijk weer automatisch in (tenzij je shift ingedrukt houdt) en dan werkt startup en run wel. Hierover is al een topic geweest ooit, maar nog niemand heeft hiervoor een oplossing. Het klinkt erg bizar, maar het is gewoon echt zo :) Startup en run werken gewoon niet. Dit komt waarschijnlijk doordat een of andere service nog niet draait, want het is puur een kwestie van timing. Wanneer je namelijk bij de eerste login al shoft inhoudt, en dus een manuele login forceert, en je wacht minimaal 5 seconden met inloggen, werkt alles wel. Doe je het binnen die 5 seconden, ben je 'te snel' en werkt het niet. Hoe dan ook, ik kan batchfiles of tools schrijven zoveel ik wil maar ik kan ze niet op een reguliere manier starten. Daar is dit hele verhaal eigenlijk om begonnen.

Services starten echter wel gewoon netjes, vandaar dat ik het graag via een service wil doen.


Epal heb ik zonet geprobeerd maar kan ik helaas ook al niks mee, want die werkt alleen met Active Directory. Deze clients werken echter puur lokaal. Ze kunnen wel op het domein inloggen, maar vanuit het project mag ik dat niet laten doen.

Al met al een hoop ellende op de maandagmorgen :) *koffie*

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Rataplan_ schreef op 29 maart 2004 @ 10:03:
Juist... helaas zo simpel is het niet.
Kan je hem dan niet als shell replacement inzetten (die wordt wel gestart aangezien je een start menu krijgt?) of zie ik dan iets over het hoofd?

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
dat zou een mooie oplossing kunnen zijn. Zover ik weet kan je dat echter alleen in HKLM zetten en niet HKCU. LM zou weer onder system gaan draaien ben ik bang, dus dan hou ik weer hetzelfde probleem. Maar ik zal even kijken wat het doet onder current user, wie weet. Stay tuned :)

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

HKCU kan je hem ook onder zetten (zo gebruik ik het om 'echte' PC's dynamisch naar Citrix terminals om te bouwen :P ) - maar zelfs onder HKLM draait ie niet onder System (het nadeel is dan wel dat je niet meer als admin in kan loggen zonder met je script te maken te krijgen) :)

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
ja wat ik net even getest heb op mijn lokale machine is taskmanager er neergezet. Die draait dan idd onder account van de user die inlogt, meende dat dat onder system ging draaien. m.a.w. ik denk dat ik hier wel iets mee kan! Dat admin niet meer eromheen kan is in principe niet zo erg. Het is een thin client, dus gebruiker kunnen in principe al niet eens inloggen als admin. Buiten dat mag die tool best draaien onder admin. Zolang er geen smartcard in het systeem geprikt wordt is dat niet erg.

LAatste vraagje dan nog, die setting onder CurrentUser overruled die gewoon die in localmachine of kan ik verwachten dat er een extra proces gestart wordt? (testen op die T5700 kost nogal tijd dus misschien dat je dat zo nog weet)

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Voor zover ik weet overruled hij die :)

  • Question Mark
  • Registratie: Mei 2003
  • Laatst online: 16:10

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

elevator schreef op 29 maart 2004 @ 09:54:
Kan je dit niet relatief makkelijk ondervangen door gewoon de servicestatus op te vragen? (voor mij part in een batchfile met: sc query SmartcardService ?)
Maak een batchfile die bovenstaande controleerd. Converteer deze batchfiles naar een service. Draai deze service onder "System" en zorg dat deze interactief mag draaien Indien de SmartCardservice draait (na controle van de service/batch) , kun je ervoor zorgen dat de executable gestart wordt door de service/batchfile.

Doordat de service interactief mag werken, draait de executable toch ook interactief (of vergis ik me nu :?)

Nu omzeil je het nare probleem dat er geen startup is...

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Interactief draaien van een service zorgt er eigenlijk alleen voor dat de Window op een ander Winstation draait - alle andere 'nadelen' zaken die een service heeft (zoals een beperktere stack e.d., draaien onder te hoge privileges) blijf je hiermee behouden :)

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
Question Mark schreef op 29 maart 2004 @ 12:30:
[...]


Maak een batchfile die bovenstaande controleerd. Converteer deze batchfiles naar een service. Draai deze service onder "System" en zorg dat deze interactief mag draaien Indien de SmartCardservice draait (na controle van de service/batch) , kun je ervoor zorgen dat de executable gestart wordt door de service/batchfile.

Doordat de service interactief mag werken, draait de executable toch ook interactief (of vergis ik me nu :?)

Nu omzeil je het nare probleem dat er geen startup is...
Het startupprobleem omzeil je dan idd.. maar niet het probleem dat de tool moet draaien onder een USER account :) Wanneer de service interactive is, issie gelijk ook System. Alles wat die service opstart (behoudens andere services) draait ook onder system. De Citrix client die gestart wordt zanikt dan over de gebruiker icm de smartcard, deze komen niet overeen.

Ik heb nu een test draaien met de shell als tool. Die start ook netjes, moet nu alleen nog even bekijken hoe ik explorer daarna wel weer netjes opstart als zijnde de shell. Wanneer ik explorer.exe zo start krijg ik een 'normaal' explorer scherm, maar niet de shell (dus geen startmenu enzo)

[edit]
overigens: wanneer ik shell onder currentuser voor die gebruiker aanpas, hou ik het probleem met starten, dat doettie dan alleen als het hemzelf uitkomt. uitloggen -> inloggen weer wel, net zoals met startup en run. Wanneer ik met LocalMachine werk gaat het wel goed, dus die optie wordt het.

[ Voor 12% gewijzigd door Rataplan_ op 29-03-2004 13:16 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Rataplan_ schreef op 29 maart 2004 @ 13:11:
overigens: wanneer ik shell onder currentuser voor die gebruiker aanpas, hou ik het probleem met starten, dat doettie dan alleen als het hemzelf uitkomt. uitloggen -> inloggen weer wel, net zoals met startup en run. Wanneer ik met LocalMachine werk gaat het wel goed, dus die optie wordt het.
Explorer controleert ofdat het de shell is zoals opgegeven in de HKLM - door het gebruik van de HKCU zou je het probleem niet hebben, maar dan heb je dus weer het originele probleem.

Je zou kunnen proberen met 'regini', op het moment dat je je explorer wil starten, je HKLM value naar explorer te zetten maar dat is ook geen fraaie oplossing.

Heb je ergens het topic nog waar in je je originele vraag vertelt?

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
Het probleem is opgelost! Ik heb heel simpel een batchfile (maak ik nogwel een netjese executable van) gezet, die polled of de service gestart is. Dat doe ik via net start. Vervolgens laat ik find de output 'filteren' op "Smart Card" (zo heet de service). Die geeft een errorlevel 1 af als hij niets gevonden heeft. En bij 0 mag hij netjes de tool starten. Geweldig :)

Wat ik nu dus gerealiseerd heb met dit alles: De client start op. User logt automatisch in. Heeft alleen Internet explorer op zijn desktop. Internet kan hij dus, verder niets. Zogauw hij een smartcard plaatst, zorgt dat tooltje wat dus nu eindelijk gestart is dat de smartcardinsertion wordt afgevangen en er automatisch gekeken wordt wat voor gebruiker er in gaat loggen. Dat kan ik weer aflezen aan de gebruikersnaam die een bepaalde codering meekrijgt. Is dat een leerling, dan wordt de pincode automatisch ingevuld (leerlingen krijgen altijd dezelfde pincode en die is dus gewoon bekend). Is het een leraar, ICT-manager of weetikveel wie, wordt netjes de pincode gevraagd (die wel altijd anders is uiteraard). Vervolgens worden een aantal settings aangepast, zoals de plaats van favorieten en geschiedenis van IE enzo. Die verwijzen dan netjes naar een (remote) fileserver. Vervolgens start de Citrix Program Neigborhood Agent. Deze haalt de gebruiker nogmaals van de smartcard af en doet een enumeration naar de Citrix farm. De gebruiker krijgt dan zijn eigen programma's op de desktop. Gelijktijdig wordt een 'dummy'sessie gestart, waardoor zogauw de gebruiker zijn applicatie start, hij niet nog eens moet wachten tot er een ICA sessie is opgebouwd.

m.a.w.: Smartcard erin: 15-20 seconden later kan de leerling zijn eigen, door de leraar te definieren applicaties gebruiken. Smartcard eruit: applicaties sluiten af, icoontjes verdwijnen, reg settings terug naar default. Sessies worden keihard gekilled. Gaat een leerling dus naar een ander systeem en logt opnieuw in, kan hij verdergaan waar hij gebleven is.

Nu zul je misschien zeggen: waarom laat je de clients niet op het domein inloggen, dan had je dat gedoe met die profielen niet. Juist, maar aangezien er ook 'zo' geinternet moet kunnen worden zonder in te loggen, is er voor gekozen lokaal in te loggen. Ook voor verkeer ivm roaming profiles enzo is daarvoor gekozen van bovenuit, heb ikzelf niets aan te willen.

Al met al werkt het! iedereen bedankt, vooral elevator over de 'shell' oplossing, dit heeft het balletje laten rollen :) _/-\o_

[ Voor 4% gewijzigd door Rataplan_ op 29-03-2004 15:07 ]

Pagina: 1