it-swarm-eu.dev

Esegui automaticamente uno script quando accedo a Windows

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.

27
Hallgrim

È possibile creare un'attività programmata che verrà eseguita quando il computer è sbloccato:

  1. Start> Strumenti di amministrazione> Utilità di pianificazione
  2. riquadro a sinistra: selezionare Libreria Utilità di pianificazione
  3. riquadro destro: fare clic su Crea attività ... (NOTA: questo è l'unico modo per ottenere il trigger corretto)
  4. nella finestra di dialogo Crea operazione:
    • Scheda Generale: fornire un nome per l'attività
    • Scheda Trigger: fare clic su Nuovo ... e selezionare Su sblocco workstation
    • Scheda Azione: fare clic su Nuovo ... e fare clic su Sfoglia ... per individuare lo script
    • Scheda Condizioni: deselezionare Avvia l'attività solo se il computer è acceso

Inoltre, ho ottimizzato il percorso nella sceneggiatura da leggere

echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt
18
Jeff

Se hai già uno script:

Per assegnare uno script di accesso a un utente o un gruppo

  • Apri Gestione computer.
  • Nella struttura della console, fare clic su Utenti.

Dove? Strumenti di sistema/Utenti locali e Gruppi/Utenti

  • Fare doppio clic sull'utente a cui si desidera assegnare uno script di accesso.
  • Fare clic sulla scheda Profilo.
  • Nel campo Script di accesso, immettere il percorso e il nome dello script di accesso che si desidera assegnare a tale utente, quindi fare clic su OK.

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:

  • Mappatura delle unità di rete.
  • Installazione e impostazione della stampante predefinita di un utente.
  • Raccolta delle informazioni di sistema del computer.
  • Aggiornamento delle firme dei virus.
  • Aggiornamento del software.
  • Il seguente script di accesso di esempio contiene comandi VBScript che utilizzano Active Directory
  • Service Interfaces (ADSI) per eseguire tre attività comuni in base all'appartenenza al gruppo di un utente:

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

  • Apri il blocco note.
  • 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.

  • In Salva in, fare clic sulla directory corrispondente alla cartella condivisa Netlogon del controller di dominio (in genere SystemRoot\SYSVOL\Sysvol\DomainName\Scripts in cui DomainName è il nome di dominio completo del dominio).
  • In Salva come, fare clic su Tutti i file.
  • In Nome file, digitare un nome file, seguito da .vbs, quindi fare clic su Salva. WSH utilizza l'estensione .vbs per identificare i file che contengono comandi VBScript.
22
Ivo Flipse

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.

14
Bruce McLeod

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).

2

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".

2
Tomas Tintera

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.

Tutorial dell'Editor dei Criteri di gruppo qui

2
Axxmasterr