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

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 UENにはセルフサービスポータル(SSP)という機能があります。 名前の通りセルフサービスで自身に紐付いているデバイスに対して色々できるポータルで、デバイスのステータスを確認したり、位置情報を確認してみたり、コマンドを実行したりと様々なことができます。 色々できるとなると、逆に誤操作などでデバイスワイプを実行してしまい意図せず初期化してしまったりするのではないか...という懸念が出てきますが、WS1 UEMのセルフサービスポータルではユーザーが実施可能な操作をカスタマイズできます。 例えば、あくまで情報参照用とするためにデバイス情報の表示の権限だけ与えておいたり、紛失したときの対策のために加入解除操作はできるようにしておく、など運用要件によりカスタマイズして利用できるというワケです。 ここでは、加入解除のみを実行できるようにカスタマイズしたSSPにログインし、ユーザー目線で実際に自分のデバイスを加入解除する、ということをやってみます。 実際にありそうなシーンと言えば、あまり考えたくありませんが、夜中に会社支給のデバイスの紛失に気付いてしまったときとかですかね... まずは、Workspace ONE UEMのSSPにログインします。 WebブラウザでWorkspace ONE UEMコンソールのURLの末尾にmydeviceを付けてEnterキーを押します。「https://cnXXX.awmdm.com/mydevice」みたいな感じです。 アクセス後は、ログイン方法などを選択後次ヘ進み、ユーザー名パスワードを入力してログインします。 今回は事前に権限を極限まで絞っているため「 企業情報ワイプ 」のみ表示されていますので、これをクリックします。 【補足】 画像に映っている通り、自分に紐付くデバイスが複数存在する場合もすべてSSPから管理できます。 すると、対象のデバイスで加入解除が実行され、企業データが削除されます。 ちなみに、上記の動作確認ではSSPの権限をかなり限定して企業情報ワイプしかできないようにしてますが、特に権限を限定しなければ「 企業情報ワイプ 」以外にも「 デバイスの位置情報を確認 」など様々なオプションが実行できますし、「 詳細に進む 」をクリックすると... デバイスの順守状態や適切にプロファイルが適用されているか、...

Workspace ONE UEMでWindowsデバイスのログ収集

WS1 UEM管理下のWindowsデバイスのトラブルシューティング時などに有用なログ収集の方法を紹介します。 また、実際のトラブルシュート時の小技なども紹介したいと思います。 大まかな流れは以下の通りです。      1.WS1 UEM管理コンソールからリモートでログ取得     2 .取得したログの確認     3 .小技 1.WS1 UEM管理コンソールからリモートでログ取得 ログ収集を行う際、管理者目線で言うと、可能であればユーザー側の操作なしにリモートでかつサイレントで収集できることが望ましいと思います。 WS1 UEMではリモートでログ収集を行う機能が備わっているため、その機能を利用します。 WebブラウザでWorkspace ONE UEMの管理コンソールにログインし、ログ取得対象のデバイス詳細画面で[その他のアクション]>[デバイスログを要求]をクリックします。 [デバイスログを要求]画面で、[HUB]を選択した状態で[保存]をクリックします。 同じ手順を繰り返し、次は[システム]を選択した状態で[保存]をクリックします。 【補足】 [HUB]の方は文字通りIntelligent Hubのログの収集で、[システム]の方はOSレベルのログを一部収集することができます。 2.取得したログの確認 次に実際に取得されたログを確認してみます。 先ほどログ取得を実行したデバイスの詳細画面で[その他]>[添付ファイル]をクリックします。 [ファイル]タブをクリックすると収集されたログの一覧が表示されます。 ファイル名の接頭辞部分(Hub_とかSystem_の部分)は、ログ取得実行時に選択した種別に対応したものになります。 [spanned]という文字列が含まれているファイルはサイズの関係で複数のファイルに分割された状態になっているログです。 ファイル名のリンクをクリックするとダウンロードができます。 【補足】 ファイル分割はされないような機能改善がどこかのバージョンで実施されたため今後は不要かもしれません。分割されていても次の手順で対応が可能です。 [spanned]が名前に含まれるファイルはそのままだと中身を見ることができないため一手間必要になります。 まずは、末尾にzXXを含むファ...