URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

「Screensaver Operations」の設定をグループポリシーで管理する

 今回もメインテーマはグループポリシー管理用テンプレート(ADMXファイル)のお勉強です。
 かなり昔に「Screensaver Operations」について言及しており、その時にADMファイルも作っていました。

 その後も少しずつ手直ししながら使っていましたが、あれから時は流れて、主目的だったVMware Horizonにも無操作時に切断する機能が実装されるようになりました。
 一方で、Screensaver Operationsも.NET Framework  4.1以上を使うv2.0がリリースされていました。

 そんなわけで、個人的にはScreensaver Operationsの利用機会は減るかもしれませんが、v2.0対応も含めてADMXファイルを作ってみました。

 過去のADMファイルの説明はScreensaver OperationsのREADMEファイルをコピペしていたのですが、今回はちゃんと日本語にしています。ちょっと変なところがあるかもしれませんが😅
 なので、ADMLファイルの方は"ja-JP"の下に配置してください。

ScrOps.admx

<?xml version="1.0" encoding="utf-8"?> <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinition" revision="1.1" schemaVersion="1.0" > <policyNamespaces> <target prefix="ScreensaverOperations" namespace="Workstg.Policies.ScreensaverOperations" /> <using prefix="windows" namespace="Microsoft.Policies.Windows" /> </policyNamespaces> <resources minRequiredRevision="1.0" /> <categories> <category name="String_Cat_ScrOps" displayName="$(string.String_Cat_ScrOps)" explainText="$(string.String_Cat_ScrOps)" /> </categories> <policies> <policy name="String_LocalMachineOverride" class="Machine" displayName="$(string.String_LocalMachineOverride)" explainText="$(string.String_LocalMachineOverride_Help)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations" valueName="LocalMachineOverride"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <enabledValue> <decimal value="1" /> </enabledValue> <disabledValue> <decimal value="0" /> </disabledValue> </policy> <policy name="String_EWX_ExitFlag" class="Both" displayName="$(string.String_EWX_ExitFlag)" explainText="$(string.String_EWX_ExitFlag_Help)" presentation="$(presentation.Presentation_EWX_ExitFlag_List)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <enum id="Presentation_EWX_ExitFlag_List_Item" valueName="EWX_ExitFlag" required="true"> <item displayName="$(string.String_EWX_ExitFlag_0)"> <value> <decimal value="0" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_1)"> <value> <decimal value="4" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_2)"> <value> <decimal value="1" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_3)"> <value> <decimal value="5" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_4)"> <value> <decimal value="2" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_5)"> <value> <decimal value="6" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_6)"> <value> <decimal value="8" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_7)"> <value> <decimal value="12" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_8)"> <value> <decimal value="90" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_9)"> <value> <decimal value="91" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_10)"> <value> <decimal value="94" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_11)"> <value> <decimal value="95" /> </value> </item> <item displayName="$(string.String_EWX_ExitFlag_12)"> <value> <decimal value="99" /> </value> </item> </enum> </elements> </policy> <policy name="String_BackgroundOpacity" class="Both" displayName="$(string.String_BackgroundOpacity)" explainText="$(string.String_BackgroundOpacity_Help)" presentation="$(presentation.Presentation_BackgroundOpacity)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <decimal id="Decimal_BackgroundOpacity" valueName="BackgroundOpacity" minValue="0" maxValue="100" /> </elements> </policy> <policy name="String_CancelOnMouseClick" class="Both" displayName="$(string.String_CancelOnMouseClick)" explainText="$(string.String_CancelOnMouseClick_Help)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations" valueName="CancelOnMouseClick"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <enabledValue> <decimal value="1" /> </enabledValue> <disabledValue> <decimal value="0" /> </disabledValue> </policy> <policy name="String_CancelOnMouseMove" class="Both" displayName="$(string.String_CancelOnMouseMove)" explainText="$(string.String_CancelOnMouseMove_Help)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations" valueName="CancelOnMouseClick"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <enabledValue> <decimal value="1" /> </enabledValue> <disabledValue> <decimal value="0" /> </disabledValue> </policy> <policy name="String_DelayInSeconds" class="Both" displayName="$(string.String_DelayInSeconds)" explainText="$(string.String_DelayInSeconds_Help)" presentation="$(presentation.Presentation_DelayInSeconds)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <decimal id="Decimal_DelayInSeconds" valueName="DelayInSeconds" minValue="0" maxValue="2147483647" /> </elements> </policy> <policy name="String_DisableSpecialKeys" class="Both" displayName="$(string.String_DisableSpecialKeys)" explainText="$(string.String_DisableSpecialKeys_Help)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations" valueName="DisableSpecialKeys"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <enabledValue> <decimal value="1" /> </enabledValue> <disabledValue> <decimal value="0" /> </disabledValue> </policy> <policy name="String_EasterEgg" class="Both" displayName="$(string.String_EasterEgg)" explainText="$(string.String_EasterEgg_Help)" presentation="$(presentation.Presentation_EasterEgg)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <text id="TextBox_EasterEgg" valueName="EasterEgg" required="false" maxLength="12" /> </elements> </policy> <policy name="String_HideActionButton" class="Both" displayName="$(string.String_HideActionButton)" explainText="$(string.String_HideActionButton_Help)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations" valueName="HideActionButton"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <enabledValue> <decimal value="1" /> </enabledValue> <disabledValue> <decimal value="0" /> </disabledValue> </policy> <policy name="String_RunProcessEnabled" class="Both" displayName="$(string.String_RunProcessEnabled)" explainText="$(string.String_RunProcessEnabled_Help)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations" valueName="RunProcessEnabled"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <enabledValue> <decimal value="1" /> </enabledValue> <disabledValue> <decimal value="0" /> </disabledValue> </policy> <policy name="String_RunProcessPath" class="Both" displayName="$(string.String_RunProcessPath)" explainText="$(string.String_RunProcessPath_Help)" presentation="$(presentation.Presentation_RunProcessPath)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <text id="TextBox_RunProcessPath" valueName="RunProcessPath" required="true" maxLength="1023" /> <text id="TextBox_RunProcessArguments" valueName="RunProcessArguments" required="false" maxLength="1023" /> </elements> </policy> <policy name="String_MessageFontSize" class="Both" displayName="$(string.String_MessageFontSize)" explainText="$(string.String_MessageFontSize_Help)" presentation="$(presentation.Presentation_MessageFontSize)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <decimal id="Decimal_MessageFontSize" valueName="MessageFontSize" minValue="0" maxValue="1638" /> </elements> </policy> <policy name="String_CustomMessage" class="Both" displayName="$(string.String_CustomMessage)" explainText="$(string.String_CustomMessage_Help)" presentation="$(presentation.Presentation_CustomMessage)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <text id="TextBox_CustomTitleText" valueName="CustomTitleText" required="false" maxLength="255" /> <text id="TextBox_CustomMessage" valueName="CustomMessage" required="false" maxLength="1023" /> </elements> </policy> <policy name="String_GradientColor" class="Both" displayName="$(string.String_GradientColor)" explainText="$(string.String_GradientColor_Help)" presentation="$(presentation.Presentation_GradientColor)" key="SOFTWARE\GrimAdmin.com\Screensaver Operations"> <parentCategory ref="String_Cat_ScrOps" /> <supportedOn ref="windows:SUPPORTED_Windows7" /> <elements> <text id="TextBox_GradientColorLeft" valueName="GradientColorLeft" required="true" maxLength="8" /> <text id="TextBox_GradientColorRight" valueName="GradientColorRight" required="true" maxLength="8" /> </elements> </policy> </policies> </policyDefinitions>

ScrOps.adml

<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinition" revision="1.0" schemaVersion="1.0"> <displayName >ここに表示名を入力</displayName> <description >ADMX ファイルの説明を入力</description> <resources> <stringTable> <string id="String_Cat_ScrOps">Screensaver Operations</string> <string id="String_LocalMachineOverride">マシンポリシーの優先</string> <string id="String_LocalMachineOverride_Help">コンピュータの設定 (HKLM) をユーザーの設定 (HKCU) よりも優先させます。既定値は無効です。</string> <string id="String_EWX_ExitFlag">Windows終了時の動作</string> <string id="String_EWX_ExitFlag_Help">Screensaver OperationsがWindowsを終了するときの動作を指定します。既定値はログオフです。</string> <string id="String_EWX_ExitFlag_0">ログオフ</string> <string id="String_EWX_ExitFlag_1">強制ログオフ</string> <string id="String_EWX_ExitFlag_2">シャットダウン</string> <string id="String_EWX_ExitFlag_3">強制シャットダウン</string> <string id="String_EWX_ExitFlag_4">再起動</string> <string id="String_EWX_ExitFlag_5">強制再起動</string> <string id="String_EWX_ExitFlag_6">パワーオフ</string> <string id="String_EWX_ExitFlag_7">強制パワーオフ</string> <string id="String_EWX_ExitFlag_8">スリープ</string> <string id="String_EWX_ExitFlag_9">休止</string> <string id="String_EWX_ExitFlag_10">強制スリープ</string> <string id="String_EWX_ExitFlag_11">強制休止</string> <string id="String_EWX_ExitFlag_12">何もしない</string> <string id="String_BackgroundOpacity">背景の濃度</string> <string id="String_BackgroundOpacity_Help">スクリーンセーバーが起動したときの背景濃度を設定します。既定値は75です。 0を入力すると透明になり、バックグラウンドのプログラムを操作できます。1以上を入力すると、バックグラウンドの操作はできなくなります。</string> <string id="String_CancelOnMouseClick">マウスクリックによるキャンセル</string> <string id="String_CancelOnMouseClick_Help">マウスクリックでスクリーンセーバーをキャンセルする機能を有効にします。既定値は無効です。 (本機能は試験実装です)</string> <string id="String_CancelOnMouseMove">マウス移動によるキャンセル</string> <string id="String_CancelOnMouseMove_Help">マウス移動でスクリーンセーバーをキャンセルする機能を有効にします。既定値は無効です。 (本機能は試験実装です)</string> <string id="String_DelayInSeconds">指定動作までの時間</string> <string id="String_DelayInSeconds_Help">スクリーンセーバーが起動してから指定した動作を実行するまでの時間を設定します。既定値は60秒です。</string> <string id="String_DisableSpecialKeys">特殊キーの無効化</string> <string id="String_DisableSpecialKeys_Help">この設定を有効にすると、スクリーンセーバーが起動したときに[Windows]、[Alt]+[Tab]、[Alt]+[Esc]、[Ctrl]+[Esc]、[Ctrl]+[Shift]+[Esc]等の特殊なキー操作を無効にします。既定値は有効です。 ※[Ctrl]+[Alt]+[Del]と[Alt]+[F4]は無効になりません。</string> <string id="String_EasterEgg">イースターエッグ</string> <string id="String_EasterEgg_Help">指定した文字列によってイースターエッグが動作します。以下の文字列が使用可能です。 未入力: 1月1日に雪が表示されます。(既定値) snow: 常に雪が表示されます。 none: イースターエッグは動作しません。</string> <string id="String_HideActionButton">アクションボタンの非表示</string> <string id="String_HideActionButton_Help">スクリーンセーバーのダイアログウインドウからアクションボタンを非表示にします。既定値は無効です。</string> <string id="String_RunProcessEnabled">プログラムの実行</string> <string id="String_RunProcessEnabled_Help">この設定を有効にした場合、スクリーンセーバーが起動したときに「Windows終了時の動作」は無視され、指定プログラムを実行します。既定値は無効です。</string> <string id="String_RunProcessPath">実行プログラムの指定</string> <string id="String_RunProcessPath_Help">「プログラムの実行」を有効にした場合、ここで指定したファイルが実行されます。ファイルは完全パスで入力してください。</string> <string id="String_MessageFontSize">メッセージのフォントサイズ</string> <string id="String_MessageFontSize_Help">スクリーンセーバーが起動したときに表示されるメッセージのフォントサイズを設定します。既定値は9です。</string> <string id="String_CustomMessage">通知メッセージ</string> <string id="String_CustomMessage_Help">スクリーンセーバーが起動したときに表示されるタイトルとメッセージを設定します。未入力の場合は既定のメッセージが表示されます。タイトルやメッセージを表示したくないときはスペースを入力してください。 メッセージには以下の変数が利用できます。 %time_remaining% - 残り時間を秒単位で表示します。 %time_elapsed% - 経過時間を秒単位で表示します。 %user_name% - ログオンしているユーザー名を表示します。 %user_domain_name% - ログオンしているユーザーのドメインを表示します。 %machine_name% - コンピュータ名を表示します。</string> <string id="String_GradientColor">バナーテキストの背景色</string> <string id="String_GradientColor_Help">バナーテキストの背景色を設定します。左右の色を同一にした場合は単色となり、異なる場合はグラデーションになります。 色は#で始まる16進数カラーコード (例えば"#054E85") で入力してください。</string> </stringTable> <presentationTable> <presentation id="Presentation_EWX_ExitFlag_List"> <dropdownList refId="Presentation_EWX_ExitFlag_List_Item" defaultItem="0" noSort="true">終了時の動作:</dropdownList> </presentation> <presentation id="Presentation_BackgroundOpacity"> <decimalTextBox refId="Decimal_BackgroundOpacity" defaultValue="75" spinStep="1">濃度 (%):</decimalTextBox> </presentation> <presentation id="Presentation_DelayInSeconds"> <decimalTextBox refId="Decimal_DelayInSeconds" defaultValue="60" spinStep="1">待機時間 (秒):</decimalTextBox> </presentation> <presentation id="Presentation_EasterEgg"> <textBox refId="TextBox_EasterEgg"> <label>文字列:</label> <defaultValue></defaultValue> </textBox> </presentation> <presentation id="Presentation_RunProcessPath"> <textBox refId="TextBox_RunProcessPath"> <label>実行ファイル:</label> <defaultValue></defaultValue> </textBox> <textBox refId="TextBox_RunProcessArguments"> <label>引数:</label> <defaultValue></defaultValue> </textBox> </presentation> <presentation id="Presentation_MessageFontSize"> <decimalTextBox refId="Decimal_MessageFontSize" defaultValue="9" spinStep="1">フォントサイズ:</decimalTextBox> </presentation> <presentation id="Presentation_CustomMessage"> <textBox refId="TextBox_CustomTitleText"> <label>タイトル:</label> <defaultValue></defaultValue> </textBox> <textBox refId="TextBox_CustomMessage"> <label>メッセージ:</label> <defaultValue></defaultValue> </textBox> </presentation> <presentation id="Presentation_GradientColor"> <textBox refId="TextBox_GradientColorLeft"> <label>左側の色:</label> <defaultValue></defaultValue> </textBox> <textBox refId="TextBox_GradientColorRight"> <label>右側の色:</label> <defaultValue></defaultValue> </textBox> </presentation> </presentationTable> </resources> </policyDefinitionResources>

 一通りレジストリが変更されてScreensaver Operationsの設定が変更されるのは確認したので大丈夫だと思うけど、動作そのものは全て確認したわけではないです。
 実際に使う機会がやってきたときにはちゃんとテストしなければ。