➊はじめに
在宅勤務などで調べごとをしているときなど、定期的にキーボードやマウス操作をしないと、Teamsアプリが退席中表示となってしまいイマイナイ
ことになってしまうことが多々あります。
➋ Teamsで退席中となるのはどんなとき?
Teamsで退席中となるのは概ね以下の場合です。ただし、この挙動はTeamsのバージョンや組織のポリシーによって異なる可能性があるとのことです。
- 手動でステータスを変更した場合
ユーザーが手動でステータスを「退席中」に変更することもできます。これは、ユーザーが一時的に利用できない状態であることを示すために使用されます。まぁこれは良いですね。
- キーボードやマウスの操作が一定時間ない(アイドル状態)
ユーザーが一定時間、キーボードやマウスを操作しない場合、自動的にステータスが「退席中」に変更されることがあります。これは、ユーザーがデスクにいないことを示すための機能です。
- デスクトップ画面がロックされた場合
特定の環境や組織において、デスクトップ画面がロックされると、Teamsのステータスが「退席中」に変更される場合があります。これは、ユーザーがデバイスから離れていることを示すための自動的な挙動です。
➌ Teamsで退席中防止方法
Teamsで退席中とならないための防止策としては、以下で対処できそうです。
- 1人で会議を開き参加する
-
マウスを動かしたりキーボードを操作して、アクティブな状態を維持する
などなど
➍ お悩み
とは言え、会議ばかりやっていると怪しまれるし、自動でマウスを動かしたりキーボードを操作するアプリはないものか?
皆さん、一度はこういうことを考え、一度は「Mouse Jiggler
」や「Auto Clicker
」など検索したことがあるでしょう...でも、会社貸与のPCだと、アプリのインストールやダウンロードもできないし、お金もかけたくないし...
︙
う~ん
︙
ならば、作ってしまえ!
ということで、イマイルヨの悩みをPowerShellで吹っ飛ばしたいと思います😉
➎ イマイルヨ
ソースコードを打ち込んだら(コピペ推奨)、「イマイルヨ.ps1」として保存してください。
こちらは、10秒毎に「Windowsキー
」を押下したことにし、退席中を防止するイマイルヨのプログラムです。
Add-Type -AssemblyName System.Windows.Forms
[Console]::Write("Running...")
while ($true) {
[System.Windows.Forms.SendKeys]::SendWait('^{ESC}')
Start-Sleep -Seconds 10
}
※イマイルヨは、PowerShell Ver5.1(Windowsにインストール済みのバージョンです)で動作確認済みです。PowerShellのバージョンは、「Get-Host」コマンドで確認できます。
➏ 実行結果
「イマイルヨ.ps1」ファイルを右クリックして、「PowerShellで実行」を選択してください。
通常「.ps1ファイル」をダブルクリックすると、PowerShellのエディタが開いてしまうと思いますので、必ず右クリからPowerShellを実行してくださいね。
PowerShellスクリプトが起動し、10秒ごとに「Windowsキー
」が押され、Windowsの「スタートメニュー
」がパタパタ動き始めます(ON➔OFFを繰り返します)。
➐ カスタマイズの仕方
⬢ 繰り返し間隔変更
勘の良い方ならもう分かっていると思いますが、「Start-Sleep -Seconds 」の引数の '10' は10秒間隔という意味です。例えば60秒間隔で「スタートメニュー
」をパタパタさせたい場合は、以下のように値を '60' に修正してください。
Start-Sleep -Seconds 60
⬢ 押下ボタン変更
「スタートメニュー
」のパタパタはウザくてイヤだよ。「シフトキー
」押下でイイよっていう場合は、以下のようにSendKeysの値を '+' に修正してください。
[System.Windows.Forms.SendKeys]::SendWait('+')
どのキーにするかは、👉こちらの資料を参照してください。
⬢ イマイルヨ改
上記2つを修正したものがこちらになります。
こちらは、60秒毎に「シフトキー
」を押下したことにし、退席中を防止するイマイルヨのプログラムです。
Add-Type -AssemblyName System.Windows.Forms
[Console]::Write("Running...")
while ($true) {
[System.Windows.Forms.SendKeys]::SendWait('+')
Start-Sleep -Seconds 60
}
➑ その他 カスタマイズ例
「PowerShellが起動しているからイマイルヨが起動しているんだろうけど、プログラムが正常に動作しているのか分かるようにしてくんない?」っちゅー熱いご要望にもお答えして、以下のようにカスタマイズしてみました。1秒毎に日時が更新されるので、プログラムが正常に動作していることが分かります。
こちらは、1秒毎に「シフトキー」を押下したことにし、退席中を防止するイマイルヨのプログラムです。日時が更新されるので、動作していることが分かりやすいです。
Add-Type -AssemblyName System.Windows.Forms
$prefix = "Running... :"
$textLength = [System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($prefix)
[Console]::Clear()
[Console]::ForegroundColor = [ConsoleColor]::Yellow
[Console]::Write("$prefix")
while ($true) {
[System.Windows.Forms.SendKeys]::SendWait('+')
$datetime = Get-Date -Format "yyyy/MM/dd HH:mm:ss"
[Console]::ForegroundColor = [ConsoleColor]::White
[Console]::Write("$datetime")
Start-Sleep -Seconds 1
[System.Console]::SetCursorPosition($textLength, 0)
}
➒ 以上
Teamsの退席中表示問題に悩んでいる方は多いと思います。悩んだ結果、PowerShellの勉強もできました。イマイルヨを貴方なりのカスタマイズで、貴方なりのTeamsライフをお過ごしください。他にもこんなやり方ありますよとかあれば、コメント欄で教えてくださいね。
それでは、お疲れさまでした😊