Win7 ログオン画面にメッセージを追加する

Win7 ログオン画面にメッセージを追加する

私はチュートリアルに従っていますここログオン画面に変更するには、今のところは機能しています。ただし、可能であれば、もう少し機能を追加したいと思います。

私は表示することができますタイトル次のレジストリキーを編集します。

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

関連情報