こんにちは、ほやほやエンジニアの雪見チョコです
エンジニアとしてまだまだ未熟な私の奮闘日記です
今思うとどうしてこんなことをしてたんだと思いますが
その記録を書き留めようと思います
【仕様目的】
ポリシーで設定されているためかWindowsで設定しても
10分毎にスクリーンセイバーが強制起動してしまう
以前リモートワークで話題になったサボり防止のため
マウスカーソルを自動で雑に動かす商品の存在を思い出し
PowerShellで作れないかと思った
参考記事は3秒動いて10秒停止を繰り返すもの
PowerShellでマウス操作「任意の場所をクリック」
ランダムに動く方が様々なシーンで活用でき
今後便利だなと思ったが(悪い考え)
手始めに作成するならシンプルなものが良い
【ファイル名】
mouseAuto.ps1
【タイムスケジューラ】
⭐︎プログラム / スクリプト
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
⭐︎引数の追加
様々なコマンドC:\shellscripts\mouseAuto.ps1"
⭐︎開始
空欄のまま
【進捗】
管理者権限で実行できず(パスワード求められる)
⭐︎潜り抜けようとした手段⭐︎
- 実行ポリシー変更
- -Fileではなく-Commandで直接指定
- -Scope Processにしセッション内だけでポリシー変更
- batで実行
- グループポリシーはアクセス拒否で確認できず
【進捗の具体的な内容】
①実行ポリシー変更
デフォルトでポリシーが「Restricted」になっている
Get-ExecutionPolicyで確認
Set-ExecutionPolicy -Scope Process -ExecutionPolicy ⚪︎⚪︎で変更、変更先はBypassに設定
【結果】
管理者権限に阻まれエラーを出しやがった
ここでプライベートとは違い管理者権限って
厄介なものなんだなと実感(大切な仕様です)
②-Fileではなく-Commandで直接指定
元々のスクリプトが長いため、あまり意味ないかなと思ったが引数のところを変更してやってみた。
【結果】
何もないただただPowerShellの画面が設定した時間に現れ消えた
スクリーンセイバーの防止には確かになってる、目的は達成しているが「そうじゃないねん」
③-Scope Processにしセッション内だけでポリシー変更
同じく引数のところを変更。全体のポリシーを変更できないならスケジューラ実行時だけ起動するという一時的ポリシー変更できる神コードを発見。
システム全体に影響ないし実行ポリシーは完全に無視できるため勝ったと思った時期が私にもありました。
【結果】
「どうして何も動かないん????」
④batで実行
後日記述する予定だが、とあるプログラムbatがちゃんと動いていたのである。そうだ、batで回避できるのではないか。という淡い期待を抱いていた。またこの頃になると管理者権限をどうにかしないといけないとも薄々思ってはいたが、まだまだ諦め切れなかった。
【結果】
「マルウェア検知されたのだが????」
(一体私はどんなコマンドを打っていたのでしょう。。)
⑤グループポリシー確認
いやこんなマルウェア検知されるだなんて私にはどんなポリシー掛けられてんねん!!怒ったぞ!!確認するぞ!!
【結果】
グループポリシーページへのアクセス権なし
⑥ChatGPT様に聞いてみる
もう疲れたよパトラッシュ、、そうだ今流行りのChatGPT様に聞いてみたら教えてくれるのではないか!?
「ChatGPT様、管理者権限を掻い潜る方法を教えてください」
【結果】
GPT様「セキュリティを回避する行為は組織や法律の規定に違反する可能性がありますので正当な方法で対応してください」
怒られました、そりゃそうだ(当たり前)
【まとめ】
管理者権限はどうにもできません、管理者権限なしでできる何かをしましょう。ここまでやってやっと諦めが付きました。
まあそもそも管理者権限をなんとかしてやろうって考えがダメってのは反省してます。あ、ちなみにタスクスケジューラにある管理者として実行する的なチェックもだめでした。
またマウスカーソルが動かせないのなら画面クリックは大丈夫だろ!と思いましたが同じく管理者権限でダメでした。
PowerShellでマウス操作「任意の場所をクリック」
これできたらマウスより見た目はスタイリッシュでいいと思ったのですがね。。
これからは大人しく管理者権限に縛られて
スクリプト作成していきます