Windowsにログオンしたときにスクリプトを自動的に実行するにはどうすればよいですか?
コンピューターにログインするたびに、次のようなものを実行したいと思います。
echo %USERNAME% logged on at %DATE% %TIME% >> log.txt
ボーナスは、スクリーンセーバーのロックを解除したときにも同じスクリプトを実行できることです。
コンピューターのロックが解除されたときに実行されるスケジュールされたタスクを作成できます。
また、スクリプトのパスを調整して読みました
echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt
すでにスクリプトがある場合:
ユーザーまたはグループにログオンスクリプトを割り当てるには
どこ?システムツール/ローカルユーザーとグループ/ユーザー
ログオンスクリプトを作成しています
ログオンスクリプトを使用して、ユーザーが特定のコンピューターにログオンしたときに実行されるタスクを割り当てることができます。スクリプトは、オペレーティングシステムコマンドを実行し、システム環境変数を設定し、他のスクリプトまたは実行可能プログラムを呼び出すことができます。 Windows Server 2003ファミリは2つのスクリプト環境をサポートしています。コマンドプロセッサはバッチ言語コマンドを含むファイルを実行し、Windowsスクリプトホスト(WSH)はMicrosoft Visual Basic Scripting Edition(VBScript)またはJscriptコマンドを含むファイルを実行します。テキストエディタを使用して、ログオンスクリプトを作成できます。ログオンスクリプトによって一般的に実行されるタスクには、次のものがあります。
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
[ファイル]メニューの[名前を付けて保存]をクリックします。
私が考えることができる最も簡単な方法は、これをスタートアップフォルダーの.batファイルに置くことです。
より複雑な方法は、バッチファイルをレジストリのレジストリに追加することです。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
レジストリキー。
必要なし! Windowsはすでにイベントログに これを記録するメカニズム を備えています。イベントIDは4624(Vista以前のシステムでは528)です。
画面がロック/ロック解除されているときにこれを実行するために使用できるかどうか誰でも知っていますか?
Windows 7またはWindows Server 2008、あるいはその両方の方法があります。
トリガーは「ログオン時」を使用するため、タスクスケジューラを使用して、新しい基本タスクを作成します。
別の良い方法は、実行したいコマンドを含むバッチファイルを作成することです。次に、マシンのポリシーエディターで、ログインプロセスの一部としてログインスクリプトを実行するように指定します。このオプションは、XP Proでのみ使用でき、ホームバージョンでは使用できません。