私はチュートリアルに従っていますここログオン画面に変更するには、今のところは機能しています。ただし、可能であれば、もう少し機能を追加したいと思います。
私は表示することができますタイトル次のレジストリキーを編集します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
legalnoticecaption
また、メッセージ編集によって
legalnoticetext
私は今、別の知らせ言う "このコンピュータは x 分間ロックされています「」。
これを実現するには何を編集/作成する必要がありますか? これは可能ですか?
これを実行する理由は、私たちの研究室では一部の PC がロックされていて、ユーザーがその PC から立ち去ってしまうからです。ユーザーは 30 分後にログアウトしますが、他の通りすがりのユーザーに PC がロックされている時間を明確に表示したいのです。
答え1
率直に言って、これは本来不可能です。
ただし、スクリプトを使用すれば可能になる場合があります。
理論的には、スクリーンセーバーの開始時刻を読み取って、1 分または 2 分ごとにレジストリ キーを新しい値で更新する小さな VBScript を記述できます。
このスクリプティングの男この投稿では、スクリーンセーバーが起動したタイミングを確認する方法を紹介しています。日付と時刻の差分をとって経過時間を調べれば、レジストリキーを更新する「スクリーンセーバーは x 分間実行されています」。
これは、法的通知キーが表示されるたびに読み取られることを前提としています。現時点では予備のキットもテストする時間もありませんが、正しい方向を指し示すはずです。
これを、1 ~ 2 分ごとに実行されるスケジュールされたタスクとして設定できます。
完全にきれいというわけではありませんが、なんとか使えると思います。
次のようなことを試してください:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess in colProcesses
If Right(objProcess.Name, 4) = ".scr" Then
Wscript.Echo "Screen saver start time: " & DateDiff("n",WMIDateStringToDate(objProcess.CreationDate),now())
'Set Registry Key to "x mins"
End If
Next
Wscript.Echo "The screen saver is not running."
'Set Registry Key to "0 minutes"
Function WMIDateStringToDate(dtmStart)
WMIDateStringToDate = CDate(Mid(dtmStart, 5, 2) & "/" & Mid(dtmStart, 7, 2) & "/" & Left(dtmStart, 4) & " " & Mid (dtmStart, 9, 2) & ":" & Mid(dtmStart, 11, 2) & ":" & Mid(dtmStart,13, 2))
End Function