スキップしてメイン コンテンツに移動

Workspace ONE UEMのスクリプト機能でWin10デバイスの設定を自動化


Workspace ONE UEMの機能にScriptsというものがあります。
名が体を表している機能で、PCにスクリプトを配信してそれを実行することができるという機能で、例えばWindows10であれば特定のレジストリをゴリっと変更したりなど、標準的な機能では実施できない設定変更なども行うことができます。


また、実行コンテキストの指定ができるため、利用者のアカウントに管理者権限が無い環境においてもシステム権限でスクリプトを動作させることができるため、非常に便利な機能です。


今回はScripts機能で設定を実施するのにどのような設定が必要か確認します。
例として、「ユーザーはPCの管理者権限を持たない環境で管理者権限が必要な設定を行う」ということをやってみます。


なお、日本語での機能名が一般的な用語である「スクリプト」であり、一般的な名詞としてのスクリプトなのか機能名としてのスクリプトなのか紛らわしくなるので、この投稿内では一般的な名詞の方を「スクリプト」、機能名の方を「Scripts」(英語での機能名)と記載することにします。


大まかな流れは以下の通りです。
    1.スクリプトの作成
    2.Scriptsの作成と配信設定
    3.動作確認(デバイス側操作でScriptsを実行)


1.スクリプトの作成

まずはScripts機能で実施したい設定変更を行うためのスクリプトを作成します。(この一文を書いた後紛らわしくなったので冒頭部分に呼称の注意書きの文章を入れました。笑)
今回は「ユーザーはPCの管理者権限を持たない環境で管理者権限が必要な設定を行う」ということをテーマにしてますので、ユーザー側の操作でリモートデスクトップの有効/無効を切り替える、ということをやってみます。(実際にそういうことをするシーンがあるかどうかは置いておきます...)


まずはスクリプトを書いてみて、管理者権限を有する環境においてローカルで実行してみてキチンとRDPの有効化や無効化で出来ることを確認します。調べてみると以下のレジストリを変更することでRDPの有効/無効を切り替えられるようです。
 -キー:HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server
 -値の名前:fDenyTSConnections
 -タイプ:Dword
 -値:0なら有効、1なら無効


上記を設定するスクリプトは以下のようになります。
■有効化
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d "0" /f
■無効化
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d "1" /f


先ほどの有効化/無効化それぞれのコマンドを1行だけ書いたPowershellスクリプトファイルを作成し、なんでもいいのでWin10の管理者権限で起動したPowershellで実行して動作を確認します。
■実行前

■実行後


とりあえずローカルでの実行においては問題なく設定ができたのでスクリプトの作成はこれでよしとします。


2.Scriptsの作成と配信設定

UEM管理コンソールにて、Scriptsの作成と配信設定を行います。

UEMの管理コンソールで[リソース]>[スクリプト]をクリック後、[追加]>[Windows]をクリックします。


名前は適当に決めて「AppCatalogに表示」をオンにして、「次へ」をクリックします。


ここで、あらかじめ作成しておいたスクリプトをアップロードするため「アップロード」をクリックします。
【補足】
「コード」欄に直接入力することも可能です。ここでは前段でローカルでの動作確認をスクリプトを作成して実施していたため、動作確認済みのスクリプトを使う意味でもアップロードにしています。


アップロードすると、スクリプトの内容が「コード」欄に反映されます。
「次へ」をクリックします。


変数を定義することができますが今回は不要なため「保存」をクリックします。


作成したScriptsにチェックを入れ、「割り当て」をクリックします。


名前を決め、割り当て先のグループを指定し、「次へ」をクリックします。


Scriptsを実行するタイミングを定義します。
今回は実行されるタイミングをわかりやすくわかりやすくするためPC利用者側の操作で実行できる「Hubに表示」のみ有効化し、「追加」をクリックします。
これを有効化すると対象のScriptsが1つのアプリのようにHubカタログに表示され、ユーザーは自身の操作でScriptsを実行することができるようになります。


割り当て設定が完了したら、「保存して公開」をクリックします。



3.動作確認(デバイス側操作でScriptsを実行)

実際にScriptsを実行して設定変更ができることを見てみます。
まずは実行前の状態を確認しておきます。RDPは有効化されていません。
【補足】
「システムのプロパティ」は管理者権限がなければ開けませんが、今回は実行前後をわかりやすくするため管理者権限を持つ別のユーザーの権限で起動しています。
管理者権限が無い場合この画面になり、管理者権限を持つアカウントの認証が求められるため、本来は管理者権限を持たないユーザーでは変更ができません。


Hubアプリを起動し、「アプリ」タブを開くと先ほど配信設定をしたScriptsが表示されています。「Run」をクリックします。


管理コンソールのデバイスごとのScripts実行結果確認画面で実行が完了していることを確認します。


デバイス側で設定画面を開くとRDPが有効化されていることが確認できます。


今回は設定の反映タイミングなどをわかりやすくするためにHubに表示してユーザー側の操作で設定を実施しましたが、Hubに表示せずにバックグラウンドで自動的に実行させることも可能です。


ユーザーに意識させずに設定変更をしたい場合はScriptsのトリガー設定で「定期的に実行」や「ログオン」など、何らかのイベントのタイミングで実行するようにしておく方がよいかもしれません。


コメント

このブログの人気の投稿

Workspace ONE Accessに証明書認証でログイン

Workspace ONE AccessではSaaSなどのサービスへのアクセス管理ができますが、クライアント証明書認証の機能も備わっています。 ここでは、Workspace ONE UEMから配信した証明書を使用して、Workspace ONE Accessに証明書認証でログインする、ということをやってみます。 まずは、Workspace ONE UEMコンソールでの作業です。 すべての設定>システム>エンタープライズ統合>Workspace ONE Access>構成 へ移動し、「 エクスポート 」をクリックしてAirWatch認証局のルート証明書をエクスポートします。 次に、Windows向けにWorkspace ONE Access認証用証明書プロファイルを作成してデバイスに対して配信します。 SCEPペイロードを選択し、「 資格情報ソース 」は「 AirWatch認証局 」を選択します。証明書テンプレートは「 証明書(クラウド展開) 」です。 【補足】 上記のプロファイルで配信した証明書は 秘密キーのエクスポートができない ようになっているため、使い回しを防ぐことができます。つまり、私用のデバイスにインポートし直してログインしてしまおう...ということはできない仕組みになっているワケですね。 次はWorkspace ONE Accessの管理コンソールでの作業です。 IDとアクセス管理>管理>認証方法をクリックし、「 証明書(クラウドデプロイ) 」の設定を変更します。(UEMのプロファイルで選択した証明書テンプレートと同じ名前ですね。若干の誤差はありますが...) 始めに、「 証明書アダプタを有効にする 」にチェックを入れ、「 ルートおよび中間CA証明書 」のところには先ほどWorkspace ONE UEMからエクスポートした証明書をアップロードし、「 証明書の失効を有効にする 」にもチェックを入れておきます。 【補足】 公的認証局であっても、ここでルート証明書をアップロードしない限り証明書認証はできないので、今回の例では Workspace ONE UEM内部の認証局から発行されている証明書以外では認証できない 構成にすることができます。 少し下にスクロールして「 OCSPの失効を有効にする 」にチェックを入れ、「 OCSPレスポンダの署名証明書 」には

Workspace ONE AccessでOpenID Connect連携

Workspace ONE Accessはその名の通りSaaSなどへのアクセス管理をすることができる製品ですが、Identity Providerの役割を果たすことも可能で、以下のフェデレーションプロトコルに対応しています。  -WS-Federation  -SAML  -OpenID Connect WS-FederationはOffice365と連携する際などに利用したりするヤツですね。 個人的な感覚では、クラウドサービスはSAML認証に対応しているものが多いのでWorkspace ONE Accessと認証連携する場合、SAMLを利用するケースが一番多い気がします。 また、設定ガイド( SAML ベース SSO 統合のドキュメント センター )なんかも公開されており、連携のハードルは比較的低いと思います。 一方で、OpenID Connectの利用に関してはかなり情報が少ない気がしてます... ただ、OpenID Connectも認証連携の仕組みとしては代表的なものの一つではありますので、今回はOpenID Connectを使用してWorkspace ONE Accessと認証連携をしてみたいと思います。(連携先のサービスにはRedmineを使用します。) まずはWorkspace ONE Accessの管理コンソールでの作業です。 カタログ>Webアプリケーション とクリックして、Workspace ONE Accessのアプリカタログに載せるWebアプリの一覧を開き、「 新規 」をクリックします。 「 名前 」に入力した値はそのままユーザーのアプリカタログに表示されるので、わかりやすい名称にします。入力したら次に進みます。 【補足】 いくつかのサービスは連携用のテンプレートがあり、「 またはカタログから参照 」をクリックすることで利用が可能です。今回使用するRedmineについても、SAML連携であればテンプレートがあるので比較的カンタンに設定できると思います。 まずは、「認証タイプ」で「 OpenID 接続 」を選びます。(おそらくOpenID Connectが訳されているのでしょうが、何か違うような...) すると、OpenID Connect連携用の設定項目が現れるので、各設定を入れていきます。 「 クライアントID 」と「 クライアント シークレ

Workspace ONE AccessからServiceNowにシングルサインオン(SAML)

以前、Workspace ONEと他システム間で、 OpenID Connect で連携する内容をポストしましたが、今回は SAML を利用したシングルサインオンの構成を検証してみました。 ServiceNow と SAML連携 して、WS1のポータルからシングルサインオンする構成を試してみます。 大枠の流れとしては以下の通りです。      1.ServiceNow(SP)のSAML認証設定          1.1. WS1 AccessからSAML連携に必要な情報を取得           1.2.SAML認証設定      2.WS1 Access(IDP)でSAML認証設定      3.動作確認 1.ServiceNow側(SP)でSAML認証設定 まずは、今回の構成ではSP(Service Provider)となるServiceNow側でSAMLによるシングルサインオンを可能とするように構成します。 1.1.WS1 Accessから S AML連携に必要な情報を取得 まずは、WS1 AccessのIDPメタデータのURLを取得します。 [カタログ]>[Webアプリケーション]をクリック後、[設定]をクリックします。 左ペインから[SAMLメタデータ]をクリック後、IDPメタデータの[URLをコピー]をクリックします。 クリップボードにコピーされるので、テキストエディタにでも貼り付けておきます。 次に、WS1 AccessのIDP署名証明書を取得します。 左ペインから、[SAMLメタデータ]をクリック後、署名証明書の[ダウンロード]をクリックします。 こんなファイルがダウンロードされます。 1.2.SAML認証設定 続いて、ServiceNow側のSAML認証設定を行います。 ServiceNowの管理コンソールにログインし、検索バーに[saml]と入力後、[SAML2 Single Sign-On]配下の[Certificate]をクリックします。 後で、使用するため先ほどダウンロードした、[signingCertificate.cer]をテキストエディタで開いておきます。 証明書の一覧画面で、[New]をクリックします。 Nameに[SAML 2.0]と入力して下にスクロールします。 PEM Certificateに先ほどテキストエディタで開い