Toon posts:

VBS login script help

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

Verwijderd

Topicstarter
Ik heb een Vbs script gemaakt dat ik wil gebruiken als een login script om commando's mee uit te voeren via de cmd waar je admin rechten voor nodig hebt. Soms loopt het script perfect met aanloggen en soms blijft hij hangen op "Enter the admin password for......" Heeft iemand hier een oplossing voor?

Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "runas /noprofile /user:Administrator@Domainnamehere ""C:\windows\system32\cmd.exe"""
WScript.Sleep 100
oShell.Sendkeys "Somepasswordhere~"
WScript.Sleep 100
oShell.Sendkeys "route add 191.168.2.181 mask 255.255.255.255 172.22.80.26 /p~"
WScript.Sleep 100
oShell.Sendkeys "exit~"
Wscript.Quit

  • KillerAce_NL
  • Registratie: Juni 2001
  • Niet online

KillerAce_NL

If it ain't broke...

Zowiezo niet als de administrator doen. Maar daar ff een apart admin account voor.
Je gaat toch niet je admin-pass weggeven aan iedereen die dit script ziet ??

  • mhoogendam
  • Registratie: Oktober 2002
  • Laatst online: 19:57
Tijdens het aanloggen willen sommige services nog steeds bezig zijn met starten.
Kan je aangeven of het probleem blijft bestaan als je even wacht met inloggen op de machine ?

  • remco_k
  • Registratie: April 2002
  • Laatst online: 00:53

remco_k

een cassettebandje was genoeg

Op welke regel blijft hij dan hangen met die vraag?

Dit zou ik niet zo blijven doen. (Ongeacht het probleem wat je nu hebt)
Want wat gebeurd er als de focus in die 100msec sleep van cmd.exe verdwijnd door een ander proces wat start?
Dan gaan je 'sendkeys' naar iets heel anders. En dat is waarschijnlijk precies waar je last van hebt.
Je kan beter naar een andere methode zoeken om die route toe te voegen.

[ Voor 28% gewijzigd door remco_k op 14-08-2007 11:46 ]

Alles kan stuk.


  • SKiLLa
  • Registratie: Februari 2002
  • Niet online

SKiLLa

Byte or nibble a bit ?

Gewoon lekker psexec van Sysinternals gebruiken. Gratis, laat je wachtwoorden als parameter opgeven en werkt zowel remote als lokaal. En geen gedoe met Sendkeys nodig, je kan 'm zelfs lokale files laten executen (die ie automagisch upload op de achtergrond).

De focus op het Window herstellen kan trouwens met WShell.AppActivate "Windows title" ...

'Political Correctness is fascism pretending to be good manners.' - George Carlin


Verwijderd

Topicstarter
SKiLLa schreef op dinsdag 14 augustus 2007 @ 11:47:
Gewoon lekker psexec van Sysinternals gebruiken. Gratis, laat je wachtwoorden als parameter opgeven en werkt zowel remote als lokaal. En geen gedoe met Sendkeys nodig, je kan 'm zelfs lokale files laten executen (die ie automagisch upload op de achtergrond).

De focus op het Window herstellen kan trouwens met WShell.AppActivate "Windows title" ...
Kan je me een voorbeeld geven hoe het script er dan uit komt te zien met WShell.AppActivate "Windows title" ?

[ Voor 64% gewijzigd door Verwijderd op 14-08-2007 13:08 ]


Verwijderd

Ik gebruik veel AutoIT, werkt goed. Kun je een executable maken (heeft geen drivers nodig om te runnen).

Het is gratis !!
http://www.autoitscript.com/autoit3/

Heb je een RunAs functie inzitten, kun je zelfs het wachtwoord al meegeven. En je zet er gewoon een WinWaitActive in ofzo om te wachten tot explorer.exe actief is.

Verwijderd

Topicstarter
So i changed the script, you think this will properly function now or do i need to adjust something?
It seems to pass the tests.

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "runas /noprofile /user:Administrator@DOMAIN ""C:\windows\system32\cmd.exe"""
WScript.Sleep 300
WshShell.AppActivate "C:\WINDOWS\System32\runas.exe"
WScript.Sleep 300
WshShell.Sendkeys "password~"
WshShell.AppActivate "C:\WINDOWS\System32\runas.exe"
WScript.Sleep 300
WshShell.Sendkeys "route add 191.168.2.181 mask 255.255.255.255 172.22.80.26 /p~"
WshShell.AppActivate "C:\WINDOWS\System32\runas.exe"
WScript.Sleep 300
WshShell.Sendkeys "exit~"
Wscript.Quit

  • Equator
  • Registratie: April 2001
  • Laatst online: 30-01 08:52

Equator

Crew Council

#whisky #barista

Als je het al zo wil blijven doen, dan maak je toch een batch file die je met runas aftrapt 8)7
Nu heb je 3 x een SendKey's die fout kunnen gaan..

Zowiezo zou ik dit al helemaal niet gebruiken vanwege de simpele reden dat je wachtwoord in plain text in je vbscript staat.

  • KillerAce_NL
  • Registratie: Juni 2001
  • Niet online

KillerAce_NL

If it ain't broke...

Tja dat zei ik ook al. Je geeft toch niet zo je domain-admin account weg ?

Verwijderd

Topicstarter
je kan toch gewoon het script encoden en het in een folder zonder read rechten zetten.....

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 14 augustus 2007 @ 18:22:
in een folder zonder read rechten zetten.....
Beetje moeilijk executen dan ;)
Daarnaast even wat opmerkingen: Post code nou eens tussen code tags en als je cross-post met andere sites, neem dan op z'n minst de moeite om je bericht naar Nederlands te vertalen (we zijn een Nederlands forum).

Trouwens, zo op het eerste oog kan ik je script al behoorlijk inkorten:

VBScript:
1
2
3
4
5
6
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "runas /noprofile /user:Administrator@DOMAIN ""route add 191.168.2.181 mask 255.255.255.255 172.22.80.26"""
WScript.Sleep 300
WshShell.AppActivate "C:\WINDOWS\System32\runas.exe"
WshShell.Sendkeys "password~exit~"
Wscript.Quit


Maar ik zie uberhaupt niet in waarom je uberhaupt aan deze ranzige methode zou willen vasthouden. Waarom niet 1 van de andere oplossingen uit dit topic gebruiken?

[ Voor 82% gewijzigd door RobIII op 14-08-2007 22:37 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Waarom wil je dit persé in een login script doen? (da's zooooo jaren '80).
Ten eerste heb je kennelijk de /p optie van route add over het hoofd gezien
(persistent; hoef je 't command maar één keer te runnen).
Ten tweede is ip-routing machine afhankelijk dus hoort't niet in een login script,
maar in een machine policy of een machine startup script. Die runnen onder
local system dus daar hoef je dan ook geen admin password voor op te geven.
Ten derde: waarom zou je naar cmd.exe gaan shellen als je in vbscript ook WMI kunt gebruiken?

QnJhaGlld2FoaWV3YQ==


  • SKiLLa
  • Registratie: Februari 2002
  • Niet online

SKiLLa

Byte or nibble a bit ?

Die Script.Encode is ook echt niet veilig hoor. Enne, gebruik nou het gratis PsExec van SysInternals (inmiddels van Microsoft; http://www.microsoft.com/sysinternals/ , onderdeel van PsTools) ipv. runas, dan heb je die hele SendKeys niet nodig, kan het ook niet fout gaan :) Je hoeft dan ook geen cmd te spawnen, maar kunt meteen het 'route add ...' verhaal uitvoeren.

'Political Correctness is fascism pretending to be good manners.' - George Carlin


  • WaSteiL
  • Registratie: Juli 2003
  • Laatst online: 29-01 09:41
Overigens als je het als een logon computer script draait hoef je helemaal geen runas te gebruiken aangezien je op dat moment namelijk al rechten genoeg heb om route add te draaien.
Pagina: 1