Newsgroup: it.comp.lang.visual-basic
Titolo: aiuto:script per cambio utenza su macchiana xp

Ciao a tutti, ho bisogno di un aiuto, vi illustro la problematica:
ho bisogno di un vbscript che mi permetta di poter cambiare  utente a
secondo delle applicazioni che voglio lanciare visto che alcune hanno
bisogno di essere eseguite da "utente1" altre da "utente2".
Altro consiglio che volevo, è meglio fare uno script o un piccolo
programmino vb che mi fa scegliere l'utente fa il reboot e il login con
il nuovo utente? Se volessi fare il programmino tutto ok per il reboot
uso ExitWindowsEx Lib "user32" ma per il login?
Vi ringrazio in anticipo per la collaborazione
Alex

 ha scritto nel messaggio
news:1126790923.9...@z14g2000cwz.googlegroups.com...

Questo può fare al caso tuo?
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx
Come vedi non serve effettuare il reboot.
Nota però che la password dell'utente verrà richiesta al prompt dei comandi.
Bye
Raf

 Grazie Raf, avvo sentito di questo comando ma lo posso lanciare da vbscript? se si come faccio a presentare tutti gli utenti configurati per far scegliere quello con il quale rieffettuare il login?
Scusa ma non ho mai affrontato problematiche di questo tipo percio
potrei anche dire delle stupidaggini
Grazie di nuovo
Alex

 quello con il quale rieffettuare il login?
Sì, ma quello che non è facile è presentare l'elenco degli utenti da VBScript,
non avendo a disposizione forms come in VB.
Conviene forse scrivere un programma VB.
Credo che si debba usare CreateProcessWithLogonW per avviare un processo con una
certa identità e altre API un po' complesse per recuperare l'elenco degli utenti
configurati.
Qui c'è un esempio con del codice, per quanto riguarda RunAs.
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B285879
Per quanto riguarda il recupero della lista utenti, qua c'è un altro esempio
http://www.andreavb.com/tip060001.html
Ciao
Raf

 configurati.
Tieni presente però che su XP e superiori la suddetta API non funziona se la
password è blank (è una limitazione per la sicurezza) e, in ogni caso,
l'utente cha chiama la CreateProcessWithLogonW deve essere Administrator.

 lanciare da vbscript?
ti converrebbe farlo col WMI che e' piu duttile per questo
ma devi stare li a studiare ancora ti conviene farlo in VB
se hai le basi
http://www.google.it/search?hl=it&q=script%2Bwmi%2Buser%2Bfaq&btnG=Cerca+con+Google&meta=
--
Fosco

Grazie a tutti per i suggerimenti, sentite se cosi può andare bene o
è una stupidaggine:
creo un form con lista e bottone, la lista carica gli utenti e al click
del bottone associo la chiamata  alla funzione "W2KRunAsUser", da
questo momento l'applicazione verrà lanciata dal nuovo utente loggato?
o la "W2KRunAsUser" mmi permette di lnciare solo una istanza con
quell'utente ma il login e' dell'utente originario?
Spero di essere stato chiaro forse ho le idee un po confuse aiutatemi
Alex

 ha scritto nel messaggio
news:1126858595.1...@g47g2000cwa.googlegroups.com...

La W2KRunAsUser avvia *quella* istanza dell'applicazione con l'identità
dell'utente specificato, ma non cambia l'utente correntemente loggato.
Quindi se dopo ne viene avviata un'altra senza usare W2KRunAsUser, questa
tornerà ad essere eseguita con l'identità dell'utente loggato.
Se vuoi rendere permanente quell'impostazione, devi creare manualmente un
collegamento all'applicazione e nelle proprietà avanzate specificare "Esegui con
altre credenziali".
Bye
Raf

Rafunk ha scritto:

Grazie ancora, per l'aiuto ora e' tutto chiaro ma nel creare la lista
con gli utenti la chiamata
nRet = NetUserEnum(bServer(0), 10, FILTER_NORMAL_ACCOUNT, lpBuffer,
1,EntriesRead, TotalEntries, ResumeHandle)
mi torna nRet=53 lpBuffer=0 e tutti gli altri a 0
        If lpBuffer Then
            Call NetApiBufferFree(lpBuffer)
        End If
questo if non viene valutato e la lista è vuota da cosa puo' dipendere
sono sbagliati i parametri?
Grazie
Alex

Ho risolto passavo un parametro sbagliato, però ho un'altro quesito ho
la lista degli utenti sarebbe possibile avere in chiaro le loro
password associate? e sarebbe possibile da vb fare un nuovo login con
l'utente scelto?
Grazie

 Alex
Se cerchi nell'MSDN alla voce "System error codes", otterrai l'elenco di tutti i
codici di errore.
Il 53 corrisponde a ERROR_BAD_NETPATH, ossia è sbagliato un qualche percorso di
rete, presumibilmente quello del server.
Probabilmente conviene che gestisci anche questa condizione nella routine che
chiama NetUserEnum.
Bye
Raf

 Grazie
Cosa intendi per "fare un nuovo login"?

Intendo o il riavvio della macchina con il login dell'utente scelto
dalla lista o logoff e logon sempre con il nuovo utente scelto,
ovviamente in tutto questo l'operatore non deve inserire i dati
dell'utente che ha scelto,
quello che ancora pero non mi hanno chirito se questo programmino o
script(che devo ancora studiare) deve essere eseguito da client o da
server, a qual problematiche potrei andare in contro a seconda della
macchina?
Alex

 Alex
Già localmente non mi è chiaro se sia fattibile, far riavviare la sessione su
una macchina remota la vedo molto dura...
Ma qual è lo scopo finale? Magari ci sono strade alternative...
Ciao

Rafunk ha scritto:

Cerco di spiegarti, anche se ancora chi vuol realizzare questa cosa non
ha chiaro quello che vuole, in prima battuta ha chiesto un vbscript che
permettesse all'utente di una macchina che ha 2 utenti 1 di test e uno
di esecuzione di poter lanciare un'applicazione con l'utente di test
mentre l'utente di esecuzione gira (e per questo runas mi sembra la
soluzione migliore) anche se ignoro com possa essere inserita in un
vbscript (che non conosco).
Allora cercavo di capire come avrei potuto affrontare la problematica
in vb, con un programmino che mi identificasse gli utenti e
raggiungesse lo stesso obbiettivo.
Il problema che però non ho ancora chiaro è che mi è stato parlato
di un problema di passwd criptate, ma purtroppo visto che c'erano 10
scienziati a parlare, non sono riuscito a capire a cosa fosse associato
quel problema.
Questo è quello che ho capito ma a brevissimo dovrei avere delle info
+ dettagliate, spero comunque che con queste siano chiare alcune delle
finalita appena avrò * info ti farò sapere
Grazie di nuovo per la disponibiità
Alex