web-dev-qa-db-ja.com

Windowsにログオンしたときにスクリプトを自動的に実行する

Windowsにログオンしたときにスクリプトを自動的に実行するにはどうすればよいですか?

コンピューターにログインするたびに、次のようなものを実行したいと思います。

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

ボーナスは、スクリーンセーバーのロックを解除したときにも同じスクリプトを実行できることです。

27
Hallgrim

コンピューターのロックが解除されたときに実行されるスケジュールされたタスクを作成できます。

  1. [スタート]> [管理ツール]> [タスクスケジューラ]
  2. 左ペイン:タスクスケジューラライブラリを選択
  3. 右ペイン:[タスクの作成...]をクリックします(注:これが正しいトリガーを取得する唯一の方法です)
  4. [タスクの作成]ダイアログ:
    • 一般タブ-タスクの名前を入力します
    • 「トリガー」タブ-「新規...」をクリックし、「ワークステーションのロック解除時」を選択します
    • [アクション]タブ-[新規...]をクリックし、[参照...]をクリックしてスクリプトを検索します
    • [条件]タブ-コンピューターがAC電源で動作している場合にのみ[タスクを開始する]をオフにします

また、スクリプトのパスを調整して読みました

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

すでにスクリプトがある場合:

ユーザーまたはグループにログオンスクリプトを割り当てるには

  • コンピュータの管理を開きます。
  • コンソールツリーで、[ユーザー]をクリックします。

どこ?システムツール/ローカルユーザーとグループ/ユーザー

  • ログオンスクリプトを割り当てるユーザーをダブルクリックします。
  • 「プロファイル」タブをクリックします。
  • [ログオンスクリプト]フィールドに、そのユーザーに割り当てるログオンスクリプトのパスと名前を入力し、[OK]をクリックします。

ここにMicrosoftからの便利な「ハウツー」があります

ログオンスクリプトを作成しています

ログオンスクリプトを使用して、ユーザーが特定のコンピューターにログオンしたときに実行されるタスクを割り当てることができます。スクリプトは、オペレーティングシステムコマンドを実行し、システム環境変数を設定し、他のスクリプトまたは実行可能プログラムを呼び出すことができます。 Windows Server 2003ファミリは2つのスクリプト環境をサポートしています。コマンドプロセッサはバッチ言語コマンドを含むファイルを実行し、Windowsスクリプトホスト(WSH)はMicrosoft Visual Basic Sc​​ripting Edition(VBScript)またはJscriptコマンドを含むファイルを実行します。テキストエディタを使用して、ログオンスクリプトを作成できます。ログオンスクリプトによって一般的に実行されるタスクには、次のものがあります。

  • ネットワークドライブのマッピング。
  • ユーザーのデフォルトプリンターのインストールと設定。
  • コンピュータシステム情報の収集。
  • ウイルスシグネチャの更新。
  • ソフトウェアを更新しています。
  • 次のサンプルログオンスクリプトには、Active Directoryを使用するVBScriptコマンドが含まれています
  • ユーザーのグループメンバーシップに基づいて3つの一般的なタスクを実行するサービスインターフェイス(ADSI):

WSHネットワークオブジェクトのUserNameプロパティと組み合わせてWSHネットワークオブジェクトのMapNetworkDriveメソッドを呼び出すことにより、H:ドライブをユーザーのホームディレクトリにマップします。 ADSI IADsADSystemInfoオブジェクトを使用して、現在のユーザーの識別名を取得します。この識別名は、Active Directory内の対応するユーザーオブジェクトに接続するために使用されます。接続が確立されると、ユーザーのメンバーであるグループのリストは、ユーザーのmemberOf属性を使用して取得されます。グループ名の複数値リストは、VBScriptのJoin関数を使用して単一の文字列に結合され、ターゲットグループ名の検索が容易になります。

現在のユーザーがスクリプトの上部で定義された3つのグループのいずれかのメンバーである場合、スクリプトはユーザーのG:ドライブをグループの共有ドライブにマップし、ユーザーのデフォルトプリンターをグループプリンターに設定します。ログオンスクリプトの例を作成するには

  • メモ帳を開きます。
  • 以下をコピーして貼り付けるか、入力します。

    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
    
  • [ファイル]メニューの[名前を付けて保存]をクリックします。

  • [保存先]で、ドメインコントローラーのNetlogon共有フォルダーに対応するディレクトリをクリックします(通常、SystemRoot\SYSVOL\Sysvol\DomainName \Scripts。DomainNameはドメインの完全修飾ドメイン名です)。
  • [ファイルの種類]で、[すべてのファイル]をクリックします。
  • [ファイル名]にファイル名を入力し、続いて.vbsを入力して、[保存]をクリックします。 WSHは.vbs拡張子を使用して、VBScriptコマンドを含むファイルを識別します。
22
Ivo Flipse

私が考えることができる最も簡単な方法は、これをスタートアップフォルダーの.batファイルに置くことです。

より複雑な方法は、バッチファイルをレジストリのレジストリに追加することです。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

レジストリキー。

14
Bruce McLeod

必要なし! Windowsはすでにイベントログに これを記録するメカニズム を備えています。イベントIDは4624(Vista以前のシステムでは528)です。

2

画面がロック/ロック解除されているときにこれを実行するために使用できるかどうか誰でも知っていますか?

Windows 7またはWindows Server 2008、あるいはその両方の方法があります。

トリガーは「ログオン時」を使用するため、タスクスケジューラを使用して、新しい基本タスクを作成します。

2
Tomas Tintera

別の良い方法は、実行したいコマンドを含むバッチファイルを作成することです。次に、マシンのポリシーエディターで、ログインプロセスの一部としてログインスクリプトを実行するように指定します。このオプションは、XP Proでのみ使用でき、ホームバージョンでは使用できません。

ここにグループポリシーエディタのチュートリアル

2
Axxmasterr