Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PowerShellでスクリーンセーバーが有効になってるか確認する

More than 5 years have passed since last update.

スクリーンセーバーの設定が有効になってるか、復帰時にパスワード入力が必須になってるかチェックする処理をPowerShellで書いたので貼っておきます。

スクリーンセーバーの設定はWMI経由で root/CIMV2Win32_Desktop から取得できます。
ポイントとしてデスクトップの設定はユーザごとにプロファイルが分かれてるので、現在ログイン中のユーザ設定を取得して絞込をします。

function SubCheck-ScreenSaver($sleepThresholdSec){
    # スクリーンセーバーの設定はユーザプロファイル単位に存在するので、現在ログイン中のユーザの設定を取得する
    $computername = $env:computername
    $username =  $env:username
    $desktop = Get-WmiObject -Namespace "root/CIMV2" -Query "SELECT * FROM Win32_Desktop WHERE Name = ""$computername\\$username"""
    # スクリーンセーバのプログラム
    # (なし)= 
    # 3Dテキスト = C:\Windows\system32\ssText3d.scr
    # バブル = C:\Windows\system32\Bubbles.scr
    # ブランク = C:\Windows\system32\scrnsave.scr
    # ラインアート = C:\Windows\system32\Mystify.scr
    # リボン = C:\Windows\system32\Ribbons.scr
    # 写真 = C:\Windows\system32\PhotoScreensaver.scr
    $screenSaver = @{}
    $screenSaver["ScreenSaverExecutable"] = $desktop.ScreenSaverExecutable
    # 待ち時間(秒)
    $screenSaver["ScreenSaverTimeout"] = $desktop.ScreenSaverTimeout
    # 再開時にログオン画面に戻る(=復帰時のパスワード入力を必須にする)
    $screenSaver["ScreenSaverSecure"] = $desktop.ScreenSaverSecure

    # チェック判定
    if (($screenSaver["ScreenSaverExecutable"] -ne $null) -and
        ($screenSaver["ScreenSaverTimeout"] -le $sleepThresholdSec) -and
        ($screenSaver["ScreenSaverSecure"] -eq $True)) {
        $screenSaver["ScreenSaverCheckStatus"] = "OK"
    } else {
        $screenSaver["ScreenSaverCheckStatus"] = "NG"
    }
    return $screenSaver
}
crowdworks
21世紀の新しいワークスタイルを提供する日本最大級のクラウドソーシング「クラウドワークス」のエンジニアチームです!
https://crowdworks.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away