Come posso eseguire automaticamente uno script quando accedo a Windows?
Mi piacerebbe eseguire qualcosa di simile ogni volta che accedo al mio computer:
echo %USERNAME% logged on at %DATE% %TIME% >> log.txt
Un bonus sarebbe essere in grado di eseguire lo stesso script ogni volta che sblocco anche lo screen saver.
È possibile creare un'attività programmata che verrà eseguita quando il computer è sbloccato:
Inoltre, ho ottimizzato il percorso nella sceneggiatura da leggere
echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt
Se hai già uno script:
Per assegnare uno script di accesso a un utente o un gruppo
Dove? Strumenti di sistema/Utenti locali e Gruppi/Utenti
Altrimenti ecco un utile "HowTo" di Microsoft
Creazione degli script di accesso
È possibile utilizzare gli script di accesso per assegnare attività che verranno eseguite quando un utente accede a un determinato computer. Gli script possono eseguire i comandi del sistema operativo, impostare le variabili di ambiente del sistema e chiamare altri script o programmi eseguibili. La famiglia Windows Server 2003 supporta due ambienti di scripting: il processore dei comandi esegue file contenenti comandi in linguaggio batch e Windows Script Host (WSH) esegue file contenenti comandi Microsoft Visual Basic Scripting Edition (VBScript) o Jscript. È possibile utilizzare un editor di testo per creare script di accesso. Alcune attività comunemente eseguite dagli script di accesso includono:
Associa l'unità H: alla directory home dell'utente dell'utente chiamando il metodo MapNetworkDrive dell'oggetto WSH Network in combinazione con la proprietà UserName dell'oggetto WSH Network. Utilizza l'oggetto ADSI IADsADSystemInfo per ottenere il nome distinto dell'utente corrente, che a sua volta viene utilizzato per connettersi all'oggetto utente corrispondente in Active Directory. Una volta stabilita la connessione, l'elenco dei gruppi di cui l'utente è membro viene recuperato utilizzando l'attributo memberOf dell'utente. L'elenco multivalore di nomi di gruppi viene unito in una singola stringa utilizzando la funzione Join di VBScript per semplificare la ricerca dei nomi dei gruppi di destinazione.
Se l'utente corrente è membro di uno dei tre gruppi definiti nella parte superiore dello script, lo script associa l'unità G: dell'utente all'unità condivisa di gruppo e imposta la stampante predefinita dell'utente come stampante di gruppo. Per creare uno script di accesso di esempio
Copia e incolla o digita quanto segue:
Const ENGINEERING_GROUP = "cn=engineering"
Const FINANCE_GROUP = "cn=finance"
Const HUMAN_RESOURCES_GROUP = "cn=human resources"
Set wshNetwork = CreateObject("WScript.Network")
wshNetwork.MapNetworkDrive "h:",
"\\FileServer\Users\" & wshNetwork.UserName
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" &
ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
If InStr(strGroups, ENGINEERING_GROUP) Then
wshNetwork.MapNetworkDrive "g:",
"\\FileServer\Engineering\"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\EngLaser"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\Plotter"
wshNetWork.SetDefaultPrinter
"\\PrintServer\EngLaser"
ElseIf InStr(strGroups, FINANCE_GROUP) Then
wshNetwork.MapNetworkDrive "g:",
"\\FileServer\Finance\"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\FinLaser"
wshNetWork.SetDefaultPrinter
"\\PrintServer\FinLaser"
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
wshNetwork.MapNetworkDrive "g:",
"\\FileServer\Human Resources\"
wshNetwork.AddWindowsPrinterConnection
"\\PrintServer\HrLaser"
wshNetWork.SetDefaultPrinter
"\\PrintServer\HrLaser"
End If
Nel menu File, fare clic su Salva con nome.
Il modo più semplice che posso pensare sarebbe quello di metterlo in un file .bat nella cartella di avvio.
Un modo più complicato sarebbe quello di aggiungere il file batch al registro nel
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
chiave di registro.
Non c'è bisogno! Windows ha già un meccanismo per registrare ciò per te nel registro eventi. L'ID evento è 4624 (528 su sistemi pre-Vista).
Qualcuno sa se può essere usato per funzionare anche quando lo schermo è bloccato/sbloccato?
C'è un modo per Windows 7 e/o Windows Server 2008.
Utilizzare l'Utilità di pianificazione, creare una nuova attività di base, poiché il trigger utilizza "Quando accedo".
Un buon metodo alternativo consiste nel creare un file batch con i comandi che si desidera eseguire in essi. Successivamente si specifica nell'editor dei criteri sulla macchina che viene eseguito uno script di accesso come parte del processo di accesso. Una nota rapida è che questa opzione è disponibile solo su XP Pro e non sulla versione home.