Secara otomatis menjalankan skrip ketika saya masuk ke Windows

27

Bagaimana saya bisa menjalankan skrip secara otomatis ketika saya masuk ke Windows?

Saya ingin menjalankan sesuatu seperti ini setiap kali saya masuk ke komputer saya:

echo %USERNAME% logged on at %DATE% %TIME% >> log.txt

Bonus akan dapat menjalankan skrip yang sama setiap kali saya membuka kunci screen saver juga.

Hallgrim
sumber
accpeted answer is oktan sangat tinggi - menggunakan one-liner Anda, saya menawarkan sesuatu yang lebih rendah hati (tetapi efektif) di bawah ... ;-)
Jeff

Jawaban:

19

Anda dapat membuat tugas terjadwal yang akan berjalan saat komputer Anda tidak terkunci:

  1. Mulai> Alat Administratif> Penjadwal Tugas
  2. sebelah kiri: pilih Perpustakaan Penjadwal Tugas
  3. panel kanan: klik Buat Tugas ... (CATATAN: ini adalah satu-satunya cara untuk mendapatkan pemicu yang benar)
  4. dalam dialog Buat Tugas:
    • Tab Umum - berikan nama untuk tugas Anda
    • Tab Pemicu - klik Baru ... dan pilih Pada unlock workstation
    • Tab tindakan - klik Baru ... dan klik Browse ... untuk menemukan skrip Anda
    • Tab Kondisi - hapus centang Mulai tugas hanya jika komputer menggunakan daya AC

Juga, saya mengubah jalur pada skrip untuk dibaca

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

Jika Anda sudah memiliki skrip:

Untuk menetapkan skrip masuk ke pengguna atau grup

  • Buka Manajemen Komputer.
  • Di pohon konsol, klik Pengguna.

Dimana? Alat Sistem / Pengguna Lokal dan Grup / Pengguna

  • Klik dua kali pengguna yang ingin Anda beri skrip logon.
  • Klik tab Profil.
  • Di bidang skrip masuk, masukkan lintasan dan nama skrip masuk yang ingin Anda tetapkan untuk pengguna itu, dan kemudian klik OK.

Lain di sini adalah "HowTo" berguna dari Microsoft

Membuat skrip logon

Anda bisa menggunakan skrip logon untuk menetapkan tugas yang akan dilakukan ketika pengguna masuk ke komputer tertentu. Skrip dapat menjalankan perintah sistem operasi, mengatur variabel lingkungan sistem, dan memanggil skrip lain atau program yang dapat dieksekusi. Keluarga Windows Server 2003 mendukung dua lingkungan skrip: prosesor perintah menjalankan file yang berisi perintah bahasa batch, dan Windows Script Host (WSH) menjalankan file yang berisi Microsoft Visual Basic Scripting Edition (VBScript) atau perintah Jscript. Anda dapat menggunakan editor teks untuk membuat skrip log masuk. Beberapa tugas yang biasa dilakukan oleh skrip log masuk meliputi:

  • Memetakan drive jaringan.
  • Menginstal dan mengatur printer default pengguna.
  • Mengumpulkan informasi sistem komputer.
  • Memperbarui tanda tangan virus.
  • Memperbarui perangkat lunak.
  • Contoh logon contoh berikut ini berisi perintah VBScript yang menggunakan Active Directory
  • Antarmuka Layanan (ADSI) untuk melakukan tiga tugas umum berdasarkan keanggotaan grup pengguna:

Ini memetakan drive H: ke direktori home pengguna dengan memanggil metode MapNetworkDrive objek jaringan WSH dalam kombinasi dengan properti UserName objek WSH Network. Ini menggunakan objek ADSI IADsADSystemInfo untuk mendapatkan nama dibedakan pengguna saat ini, yang pada gilirannya digunakan untuk menyambung ke objek pengguna yang sesuai di Active Directory. Setelah koneksi dibuat, daftar grup pengguna adalah anggota diambil dengan menggunakan atribut memberOf pengguna. Daftar nama grup multinilai digabung menjadi satu string dengan menggunakan fungsi Bergabung VBScript untuk membuatnya lebih mudah untuk mencari nama grup target.

Jika pengguna saat ini adalah anggota dari salah satu dari tiga grup yang ditentukan di bagian atas skrip, maka skrip memetakan drive G: pengguna ke drive bersama grup, dan menetapkan printer default pengguna menjadi printer grup. Untuk membuat contoh skrip masuk

  • Buka Notepad.
  • Salin dan tempel, atau ketik, yang berikut ini:

    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
    
  • Pada menu File, klik Save As.

  • Dalam Simpan di, klik direktori yang sesuai dengan Netlog di pengontrol bersama folder mapon (biasanya SystemRoot \ SYSVOL \ Sysvol \ DomainName \ Script di mana DomainName adalah nama domain yang berkualifikasi penuh domain).
  • Di Simpan sebagai tipe, klik Semua File.
  • Di Nama file, ketikkan nama file, diikuti dengan .vbs, lalu klik Simpan. WSH menggunakan ekstensi .vbs untuk mengidentifikasi file yang berisi perintah VBScript.
Ivo Flipse
sumber
Selalu menyenangkan melihat seseorang menyukai jawabannya :-D
Ivo Flipse
saya hampir ingin menghidupkan CW ini dan menandainya faq :)
quack quixote
Jadilah tamuku @ quack ;-) FAQ untuk apa sebenarnya?
Ivo Flipse
14

Cara paling sederhana yang dapat saya pikirkan adalah dengan meletakkannya di file .bat di folder startup Anda.

Cara yang lebih rumit adalah menambahkan file batch ke registri di

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

kunci registri.

Bruce McLeod
sumber
8
Jika Anda ingin menjalankan ini ketika ada pengguna yang log on, Anda harus meletakkannya di folder startup Semua Pengguna ( % allusersprofile% / Start Menu \ Programs \ Startup ), atau buat entri di bagian Jalankan dari mesin LocalMachine reg: HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run )
Treb
Saya menjalankan .exe melalui cara ini, tetapi apakah ada cara untuk menjalankannya dengan tenang? Tanpa membuka dan menjaga membuka cmd?
bzupnick
2

Metode alternatif yang baik adalah membuat file batch dengan perintah yang ingin Anda jalankan di dalamnya. Selanjutnya Anda akan menentukan dalam editor kebijakan pada mesin yang menjalankan skrip login sebagai bagian dari proses login. Catatan singkatnya adalah opsi ini hanya tersedia di XP Pro dan bukan versi rumah.

Tutorial Editor Kebijakan Grup Di Sini

Axxmasterr
sumber
2

Adakah yang tahu apakah ini bisa digunakan untuk menjalankan ketika layar terkunci / tidak terkunci juga?

Ada cara untuk Windows 7 dan / atau Windows Server 2008.

Gunakan Penjadwal Tugas, buat tugas dasar baru, karena Pemicu menggunakan "Saat saya masuk".

Tomas Tintera
sumber
Anda tidak dapat menggunakan tugas dasar jika Anda ingin pelatuknya menjadi "Aktif di workstation"
Jeff
2

Tidak dibutuhkan! Windows sudah memiliki mekanisme untuk mencatat ini untuk Anda di log peristiwa. ID peristiwa adalah 4624 (528 pada sistem pra-Vista).

Aryeh Leib Taurog
sumber