ログインしてもらったWindows PCで、画面をロックしないようにする方法を記載します。
Power Shellで下記処理を実行します。
# 変数定義
$sleep_time = 30# ループ処理
while ($true){
[System.Windows.Forms.SendKeys]::SendWait("{ESC}")
sleep $sleep_time
}
処理の説明
30秒間隔で、[ESC]キーを押す処理を行っています。
これにより、無操作をなくし、画面をロックしないようにする仕掛けです。
終了する場合は「Ctrl」+「C」またはPower Shellの画面を閉じます。
補足
・「見つかりません」と表示される場合について
sendkeysを実行した場合に下記メッセージが出る場合があります。
PS C:\Users\admin> [System.Windows.Forms.SendKeys]::SendWait("{ESC}")
型 [System.Windows.Forms.SendKeys] が見つかりません。
発生場所 行:1 文字:1
+ [System.Windows.Forms.SendKeys]::SendWait("{ESC}")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Windows.Forms.SendKeys:TypeName) []、RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
その場合は、下記処理を実行してから、再度実行してみてください。
Add-Type -AssemblyName System.Windows.Forms
・[ESC]キー以外でもOK
今回、[ESC]キーを押す処理をしていますが、ほかのキーでも可能です。
もし[ESC]キーで、何かの処理がされてしまうプログラムが表示している場合、勝手に処理がされてしまいますので、その場合は別のキーを選択するなど検討してください。
[ESC]以外のキーは下記サイトを参考にしてください。
最後に
セキュリティ設定などで、スクリーンセーバー設定の変更ができず、また、
ログインしてもらったPCなどで作業する場合に有効かと思います。
※滅多にないケースだと思いますが、備忘として残したいと思います。
ちなみに、マウスカーソルの移動処理でも試しましたが、こちらはなぜか、うまくできませんでした。(ロックされてしまいます。)
※試したマウスカーソルの移動関数。
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)
この点はどこかで検証したいと思います。