none
Windows7におけるスクリーンセーバー、アカウントロックの仕様について RRS feed

  • 質問

  • 社内PCのWindowsXPからWindows7への移行プロジェクトに携わっている者です。
    現状のユーザー環境としましてはWindowsXP Pro SP3、移行後はWindows7 Pro、ドメインコントローラーはWindows Server 2003 Standard Edition SP2です。
    ユーザーはDomain Users権限にて業務を行っています。

    表題の件についてなのですが、現在XPの社内の端末についてはグループポリシーにて

    ・スクリーン セーバーのタイムアウト⇒300秒
    ・スクリーン セーバーをパスワードで保護する⇒有効

    上記設定を有効にしており、ユーザーPCは

    1)スクリーンセーバーに3Dテキスト等を設定していれば300秒後にロックがかかり、復帰にはログイン時のパスワードの入力が必要。
    2)スクリーンセーバーを何も設定していなければ300秒経過しても何も画面に変化がない。

    上記動作をしております。スクリーンセーバーの待ち時間(5分)、『パスワードによる保護(チェック有り)』はグレーアウトしている状態です。

    Windows7への移行にあたりXPと同様の動作を実現したく、グループポリシーも同設定を行っており、正常に適応されているようなのですが、
    スクリーンセーバーを無効にしていても300秒後にロックがかかってしまいます。
    ただし、スクリーンセーバーが起動するのではなく、300秒後にログイン時のパスワード入力画面に切り替わります。

    スクリーンセーバーの待ち時間(5分)、『再開時にログオン画面に戻る(チェック有り)』はグレーアウトしている状態です。

    私の方で色々と調査をしたのですが、有効なグループポリシー設定項目が見つけれらず、また、以下のようなサイトを見つけました。

    http://blogs.msdn.com/b/jpwin/archive/2009/10/20/windows7.aspx

    これによると、どうもXPと7ではスクリーンセーバーの仕様が変更になっているようなのですが、何か回避策はありますでしょうか。
    スタンバイやスリープモード等は全て無効にしております。

    よろしくお願いします。

    2011年1月24日 8:03

回答

  • >スクリーン セーバーをパスワードで保護する⇒有効

    この設定があると、上記の状態になるようです。
    回避策はこのGPOを外すくらいしか思い浮かびませんでした。

    2011年1月24日 11:00
    モデレータ
  • チェックは以下のレジストリで制御できます。ただし、この設定を変更してもスクリーンセーバーの設定はグレーアウトしません

    HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaverIsSecure

    グループポリシーでは、以下のレジストリエントリで上記設定を上書きし、クライアントが変更できないようにグレーアウトさせます

    HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaverIsSecure

     どうしてもいじらせたくないのでしたら、一層のことスクリーンセーバーのタブの表示をさせないGPOを有効にし、スクリーンセーバーの設定画面を自作するとか……
    下記は、.defaultuserに行っていますが、これを上記のHKEY_CURRENT_USER\Control Panel\Desktopに読み替えてください。

    「たまごろうのパソコン活用講座 初心者から上級者まで Windows上級編」
    http://www.internal.co.jp/services/windows/advanced/

    2011年1月25日 3:51
    モデレータ
  • チャブーンです。

    この件ですが、お望みの動作(スクリーンセーバーを指定していないときには、保護設定をポリシー適用したくない)をさせたい、というなら、クライアントのデスクトップで「スクリーンセーバーを指定していない」という情報を検出し、それによってグループポリシーの適用を動的に制御する、という方法はできるかもしれません。

    グループポリシーにはWMIフィルターという機能があり、指定したWMIクエリの結果でグループポリシーの適用を制御できます。スクリーンセーバーを指定しているかどうか、については、Win32_Desktop というクラスの ScreenSaverExecutable プロパティでスクリーンセーバープログラムのパスがわかるはずです。

    http://blogs.technet.com/b/heyscriptingguy/archive/2009/12/09/hey-scripting-guy-december-9-2009.aspx

    WMIフィルターでうえのプロパティをクエリして「空でない」という条件で適用する、ことでうまくいくかもしれません。

    [追記]
    うえで「動的に」といっているのは、たとえばログオン時にスクリーンセーバーの設定をチェックして、(特定のユーザやコンピュータではなく)状況に応じて適用を判断する、という意味です。ですから、ログオン後に「ユーザーが操作して」スクリーンセーバーの設定を変えたとしても、これを検出して適用させる、ということはできません。ここはご了解ください。

    2011年1月29日 2:14
    モデレータ

すべての返信

  • >スクリーン セーバーをパスワードで保護する⇒有効

    この設定があると、上記の状態になるようです。
    回避策はこのGPOを外すくらいしか思い浮かびませんでした。

    2011年1月24日 11:00
    モデレータ
  • ご回答ありがとうございます。

    >スクリーン セーバーをパスワードで保護する⇒有効

    このGPOを解除すると、確かにロックはかかりませんでした。

    しかしながら、この状態でスクリーンセーバーが起動すると、ロックはかかりません。

    イメージとしては、『スクリーンセーバー自体にパスワードを設定したい』です。

    レジストリの編集等も含めて、何か良い回避策があればいいのですが。

    2011年1月25日 1:23
  • チェックは以下のレジストリで制御できます。ただし、この設定を変更してもスクリーンセーバーの設定はグレーアウトしません

    HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaverIsSecure

    グループポリシーでは、以下のレジストリエントリで上記設定を上書きし、クライアントが変更できないようにグレーアウトさせます

    HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaverIsSecure

     どうしてもいじらせたくないのでしたら、一層のことスクリーンセーバーのタブの表示をさせないGPOを有効にし、スクリーンセーバーの設定画面を自作するとか……
    下記は、.defaultuserに行っていますが、これを上記のHKEY_CURRENT_USER\Control Panel\Desktopに読み替えてください。

    「たまごろうのパソコン活用講座 初心者から上級者まで Windows上級編」
    http://www.internal.co.jp/services/windows/advanced/

    2011年1月25日 3:51
    モデレータ
  • ご回答ありがとうございます。

    クライアントが変更できるのは

    ①スクリーンセーバーの有無
    ②スクリーンセーバーの種類

    上記2点のみにしたく、尚且つ

    ①を有りにすると5分後にスクリーンセーバーが起動し、パスワードによるロックがかかる。
    ①を無しにすると何分経ってもロックはかからない。

    という動作を強制したいのですがWindows7の仕様(VISTAから?)では難しそうですね。。

    運用ルールの再考の検討が必要かもしれません。

    2011年1月27日 10:56
  • チャブーンです。

    この件ですが、お望みの動作(スクリーンセーバーを指定していないときには、保護設定をポリシー適用したくない)をさせたい、というなら、クライアントのデスクトップで「スクリーンセーバーを指定していない」という情報を検出し、それによってグループポリシーの適用を動的に制御する、という方法はできるかもしれません。

    グループポリシーにはWMIフィルターという機能があり、指定したWMIクエリの結果でグループポリシーの適用を制御できます。スクリーンセーバーを指定しているかどうか、については、Win32_Desktop というクラスの ScreenSaverExecutable プロパティでスクリーンセーバープログラムのパスがわかるはずです。

    http://blogs.technet.com/b/heyscriptingguy/archive/2009/12/09/hey-scripting-guy-december-9-2009.aspx

    WMIフィルターでうえのプロパティをクエリして「空でない」という条件で適用する、ことでうまくいくかもしれません。

    [追記]
    うえで「動的に」といっているのは、たとえばログオン時にスクリーンセーバーの設定をチェックして、(特定のユーザやコンピュータではなく)状況に応じて適用を判断する、という意味です。ですから、ログオン後に「ユーザーが操作して」スクリーンセーバーの設定を変えたとしても、これを検出して適用させる、ということはできません。ここはご了解ください。

    2011年1月29日 2:14
    モデレータ
  • こんにちは、フォーラムオペレーターの三沢健二です。

    Chuki さん、チャブーン さん、いつもアドバイスありがとうございます。

    OS 毎の動作の違いによるものであれば全く同じ設定を行う事は難しいかもしれませんので、色々な組み合わせを試していただき、運用ルールに近い内容の設定を選択していただければと思います。

    それでは、お二人のアドバイスが参考になられたのではないかと思いましたので、勝手ながら [回答としてマーク] を付けさせていただきました。


    今後とも TechNet Forum をよろしくお願いします。

    ______________________________________
    マイクロソフト株式会社 フォーラム オペレーター 三沢健二

    2011年2月1日 4:23
    モデレータ