Windows'da oturum açtığımda otomatik olarak bir komut dosyasını çalıştır


27

Windows'da oturum açtığımda bir komut dosyasını otomatik olarak nasıl çalıştırabilirim?

Bilgisayarıma her giriş yaptığımda böyle bir şey çalıştırmak istiyorum:

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

Bonus, ekran koruyucunun kilidini açtığımda da aynı betiği çalıştırabilmekti.


onaylanmış cevap çok yüksek oktandır - tek-astarınızı kullanarak, aşağıda daha mütevazı (ama etkili) bir şeyler öneriyorum ... ;-)
Jeff

Yanıtlar:


19

Bilgisayarınızın kilidi açıldığında çalışacak zamanlanmış bir görev oluşturabilirsiniz:

  1. Başlat> Yönetimsel Araçlar> Görev Zamanlayıcı
  2. sol bölme: Görev Zamanlayıcı Kitaplığı'nı seçin
  3. sağ bölme: Görev Oluştur ... seçeneğini tıklayın (NOT: doğru tetiği almanın tek yolu budur)
  4. Görev Oluştur iletişim kutusunda:
    • Genel sekmesi - göreviniz için bir ad girin
    • Tetikleyiciler sekmesi - Yeni ... 'yi tıklayın ve İş istasyonunda kilidi aç' ı seçin.
    • İşlem sekmesi - Yeni ... 'yi tıklayın ve komut dosyanızı bulmak için Gözat ...' ı tıklayın.
    • Koşullar sekmesi - işaretini kaldırın Görevi yalnızca bilgisayar AC gücündeyse başlatın

Ayrıca, komut dosyasını okumak için yolu daralttım.

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

22

Zaten bir komut dosyanız varsa:

Bir kullanıcı veya gruba oturum açma komut dosyası atamak için

  • Bilgisayar Yönetimi'ni açın.
  • Konsol ağacında Kullanıcılar'ı tıklatın.

Nerede? Sistem Araçları / Yerel Kullanıcılar ve Gruplar / Kullanıcılar

  • Oturum açma komut dosyası atamak istediğiniz kullanıcıyı çift tıklatın.
  • Profil sekmesine tıklayın.
  • Oturum açma komut dosyası alanına, bu kullanıcıya atamak istediğiniz oturum açma komut dosyasının yolunu ve adını girin ve ardından Tamam'ı tıklatın.

Başka bir işte Microsoft'tan kullanışlı bir "HowTo"

Oturum açma komut dosyaları oluşturma

Bir kullanıcı belirli bir bilgisayarda oturum açtığında gerçekleştirilecek görevleri atamak için oturum açma komut dosyalarını kullanabilirsiniz. Komut dosyaları işletim sistemi komutlarını yerine getirebilir, sistem ortamı değişkenlerini ayarlayabilir ve diğer komut dosyalarını veya çalıştırılabilir programları çağırabilir. Windows Server 2003 ailesi iki komut dosyası ortamını destekler: komut işlemcisi toplu iş dili komutlarını içeren dosyaları çalıştırır ve Windows Komut Dosyası Sistemi (WSH), Microsoft Visual Basic Komut Dosyası Sürümü (VBScript) veya Jscript komutlarını içeren dosyaları çalıştırır. Oturum açma komut dosyaları oluşturmak için bir metin düzenleyici kullanabilirsiniz. Genellikle oturum açma komut dosyaları tarafından gerçekleştirilen bazı görevler şunlardır:

  • Ağ sürücülerini eşleme.
  • Kullanıcının varsayılan yazıcısını takma ve ayarlama.
  • Bilgisayar sistemi bilgisinin toplanması.
  • Virüs imzalarını güncelleme.
  • Yazılım güncelleniyor.
  • Aşağıdaki örnek oturum açma komut dosyası, Active Directory kullanan VBScript komutlarını içerir
  • Bir kullanıcının grup üyeliğine göre üç ortak görevi gerçekleştirmek için Hizmet Arabirimleri (ADSI):

WSH Network nesnesinin MapNetworkDrive yöntemini WSH Network nesnesinin UserName özelliği ile birlikte çağırarak H: sürücüsünü kullanıcının ana dizinine eşler. Geçerli kullanıcının ayırt edici adını elde etmek için ADSI IADsADSystemInfo nesnesini kullanır, bu da Active Directory'de karşılık gelen kullanıcı nesnesine bağlanmak için kullanılır. Bağlantı kurulduktan sonra, kullanıcının üyesi olduğu grupların listesi, kullanıcının memberOf özniteliği kullanılarak alınır. Çok değerli grup adları listesi, hedef grup adlarını aramayı kolaylaştırmak için VBScript'in Join işlevi kullanılarak tek bir dizeye birleştirilir.

Geçerli kullanıcı, betiğin üstünde tanımlanan üç gruptan birinin üyesiyse, komut dosyası kullanıcının G: sürücüsünü grup paylaşımlı sürücüyle eşleştirir ve kullanıcının varsayılan yazıcısını grup yazıcısı olarak ayarlar. Örnek bir oturum açma komut dosyası oluşturmak için

  • Not Defteri'ni açın.
  • Aşağıdakileri kopyalayıp yapıştırın veya yazın:

    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
    
  • Dosya menüsünde Farklı Kaydet'i tıklatın.

  • Kaydetme bölümünde, etki alanı denetleyicisinin Netlogon paylaşılan klasörüne karşılık gelen dizini tıklatın (genellikle EtkiAlanının tam etki alanı adı olan SystemRoot \ SYSVOL \ Sysvol \ EtkiAlanıAdı \ Komut Dosyaları).
  • Kayıt türü bölümünde, Tüm Dosyalar'ı tıklatın.
  • Dosya adı alanına bir dosya adı ve ardından .vbs yazın ve ardından Kaydet'i tıklatın. WSH, VBScript komutlarını içeren dosyaları tanımlamak için .vbs uzantısını kullanır.

Birisinin cevabı sevdiğini görmek güzel :-D
Ivo Flipse

ben neredeyse bu CW açmak istiyorum ve etiketi sss :)
vak quixote

Misafirim olun @quack ;-) Aslında ne için SSS?
Ivo Flipse,

14

Düşünebildiğim en basit yol, bunu başlangıç ​​klasörünüzdeki bir .bat dosyasına koymak olacaktır.

Toplu iş dosyasını, kayıt defterine eklemek için daha karmaşık bir yol

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

kayıt defteri anahtarı


8
Herhangi bir kullanıcı oturum açtığında bunu çalıştırmak istiyorsanız , bunu Tüm Kullanıcılar başlangıç ​​klasörüne ( % allusersprofile% / Başlat Menüsü \ Programlar \ Başlangıç ) koymanız veya LocalMachine kaydının Çalıştır bölümüne bir giriş yapmanız gerekir: HKLM \ Yazılım \ Microsoft \ Windows \ CurrentVersion \ Run )
Treb,

Bu şekilde bir .exe çalıştırmak, ancak sessizce çalışması için bir yolu var mı? Cmd açmadan ve açık tutmadan mı?
bzupnick

2

İyi bir alternatif yöntem, içinde çalıştırmak istediğiniz komutlarla bir toplu iş dosyası oluşturmaktır. Ardından, makinedeki politika düzenleyicide oturum açma işleminin bir parçası olarak bir oturum açma komut dosyası çalıştırdığını belirteceksiniz. Kısa bir not: Bu seçenek yalnızca XP Pro'da bulunur ve ana sürümde kullanılamaz.

Grup İlkesi Düzenleyicisi Burada Öğretici


2

Ekran kilitliyken / kilidi açıldığında bunun çalıştırılmasında kullanılıp kullanılamayacağını bilen var mı?

Windows 7 ve / veya Windows Server 2008 için bir yol var.

Görev Zamanlayıcı'yı kullanın, tetikleyici "Oturum açtığımda" kullandığından, yeni temel görev oluşturun.


Tetikleyicinin "İş istasyonunun kilidini
Jeff

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.