Domanda

Usando Windows 2003, sto cercando un modo per creare un " logoff script " che continuerà con la disconnessione corrente quindi accederà immediatamente a un altro utente. Quindi, & Quot; UtenteA & Quot; si disconnette. Lo script viene attivato per accedere a & Quot; UserB & Quot ;.

Fa parte dell'aggiornamento di un'applicazione per un computer in cui è stata scritta la "shell"; simile a un'applicazione kiosk. Per l'aggiornamento è necessario accedere come "Amministratore", quindi, al termine dell'aggiornamento, disconnettersi da "Amministratore" e accedere come "utente_campione". Vorremmo realizzare questo SENZA riavvio.

Nota, non voglio uno script che avvii la disconnessione (ovvero " shutdown "). Sto cercando uno script che verrà eseguito sulla registrazione dell'utente spento (impostato tramite Criteri di gruppo). Come sopra, lo script dovrebbe accedere a un altro utente.

Grazie.

È stato utile?

Soluzione

Non pensare che sia possibile nel modo dichiarato (script alla disconnessione).

Dovresti impostare la macchina per accedere automaticamente come un account specificato e quindi disconnetterti (dopo averlo fatto automaticamente per te) e quindi dovrai disabilitare di nuovo quella funzione in seguito, inserendo uno script di accesso temporaneo ... generalmente suona disordinato.

L'impostazione effettiva può essere effettuata utilizzando strumenti come Microsofts Shared Computer Toolkit o simili (non sono sicuro di come il " normale " il login automatico del registro si comporti al logout manuale ma ho avuto un XP kiosk che si accederà automaticamente all'istante, anche se si è disconnessi manualmente - è stato necessario sostituirlo utilizzando una chiave come maiusc + disconnessione per poter specificare di nuovo manualmente l'accesso, quindi in qualche modo può essere effettuato).

Il " il più semplice " modo potrebbe essere quello di sostituire msgina.dll con qualcuno di tua creazione ...

Ma perché lo stai facendo? Basta usare runas e avviare tutto ciò che è necessario fare come quell'altro utente senza disconnettersi dall'utente della console - dopotutto è un sistema multiutente? Il desktop è solo fluff ^^

( Ciò richiederà comunque che le credenziali dell'utente siano disponibili per il tuo script, che tipo di ridondanza quando comprometti la sicurezza di quell'account - sfidando lo scopo di avere quel secondo account in primo luogo, per quale scopo esiste? )

Altri suggerimenti

Proverei impostando il registro su autologon con l'utente desiderato, quindi semplicemente disconnessione dell'utente amministratore. Questo dovrebbe riaccedere il tuo utente kiosk.

Non sono sicuro di come accedere a un altro utente dopo che l'utente corrente si è disconnesso (non sono sicuro se Windows ti permetterebbe ...)

Ma puoi usare lo spegnimento per disconnettersi:

shutdown /?

Ecco alcune idee per cui la possibilità di cadere nella quot " cheap hack " Categoria:

Che ne dici di accedere a UserB in primo luogo e quindi utilizzare runas /user:userA <cmd> per eseguire la prima parte del processo di installazione?

Se ciò è inaccettabile, so che esiste un modo per rendere automaticamente le workstation Windows (quelle che non fanno parte di un dominio) accedere a un determinato account utente dopo un riavvio. Forse se hai esaminato quali modifiche al Registro si verificano e le hai duplicate, un riavvio accederà automaticamente a quell'utente. (Ovviamente, come fase finale, dopo l'accesso di userB, dovresti ripristinare tali modifiche :-)

Mi viene anche da chiedermi se forse esiste un modo per un servizio di forzare un " aperto; schermata di accesso " per accedere come un determinato utente. Forse usando un metodo come il Remote Desktop lo fa in remoto ... Se è possibile, allora potresti creare un servizio che installi prima della disconnessione dell'utente A, che attiverebbe l'accesso dell'utente B.

Puoi copiarlo con VNC (ci sono molte versioni gratuite, fai la tua scelta). Configurare un processo del server VNC sulla macchina per l'ascolto su localhost. Quando l'utente si disconnette, lo script di disconnessione si connetterà alla macchina utilizzando VNC e invierà i tasti necessari per accedere all'utente successivo. VNC utilizza il protocollo RFB (remote framebuffer); ci sono librerie per le lingue più popolari, quindi dovresti riuscire a far funzionare qualcosa velocemente. Oppure ci sono strumenti correlati che potrebbe aiutare.

Se dovessi eseguire qualcosa del genere come uno script normale in una determinata lingua, molto probabilmente non funzionerebbe come quando esci dal tuo account, tutti i processi dovrebbero essere interrotti insieme allo script in esecuzione.

Potresti essere in grado di creare una sorta di "servizio" che verrebbe eseguito su un account di servizio (ovvero sempre attivo) che cambierebbe automaticamente questo utente per te.

Le mie scommesse sono su Windows Powershell, anche se non sono del tutto sicuro di quale funzionalità abbia per quanto riguarda la creazione di un servizio.

Una rapida ricerca fa apparire quanto segue (Il secondo collegamento è a un forum ma menziona l'esecuzione di Powershell come servizio e l'invio di quel servizio un parametro che sarebbe il percorso dello script di cambio utente)

Come creare un servizio Windows usando Powershel

Powershell Script come servizio di Windows

Non ho un server Windows 2003 o un sistema con un " Criteri di gruppo " configurazione per testare il mio sospetto, ma potresti dare un'occhiata a SU (" cambia utente ") per Windows. Originariamente parte del Resource Toolkit, questo è stato esteso a un nuovo SUperior SU . Pubblica i risultati / script se funziona.

Potresti affrontarlo dal punto di vista della creazione di un'utilità di controllo remoto (come VNC, ecc.). La cosa importante qui è che se si desidera accedere alla schermata di accesso (ovvero la parte CTRL + ALT + CANC / nome utente / password), l'unico kicker è che un servizio di Windows è l'unico componente che può accedervi, quindi devi crearne uno.

L'unico problema che vedo con questa tecnica nel suo insieme è che anche se hai speso molto sforzo per farlo funzionare (e sarebbe stato un grande sforzo), le possibilità che questo funzionasse con successo con l'intera cosa originati da uno script di disconnessione (ovvero quando si stanno chiudendo cose) sono bassi anche a causa del numero di cose che possono andare storte quando si accede nuovamente come Amministratore.

Ricorda solo che per tutto ciò che devi eseguire come amministratore, ci sono modi più semplici in Windows per farlo accadere (come Esegui come, cambiando le autorizzazioni utente sugli elementi che devono essere aggiornati, ecc.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top