Intune を用いてデスクトップ ショートカット アイコンを配布する

皆さん、おはようございます。

今回は、Microsoft Intune 関連の記事となります。

皆さんの中にも、Microsoft Intune でデバイス管理をされている方もいらっしゃると思います。今回は、デスクトップ ショートカット アイコンを Microsoft Intune を用いて配布する方法を紹介します。

なぜ、この話題かというと、既存のオンプレミス Active Directory 環境では、グループ ポリシーを用いて、デスクトップ ショートカット アイコンを簡単に配布可能なのですが、Microsoft Intune では、残念ながら、現状は、デスクトップ ショートカット アイコンを簡単に配布する方法はありません。そのため、この記事にて紹介出来ればと思います。

デスクトップ ショートカットとは、Windows のデスクトップ上に表示される、下記のようなショートカット アイコンになります。

オンプレミスの Active Directory 管理端末では、グループ ポリシーで、下記のようにウィザードで設定可能です。

では、どうやって、Microsoft Intune でデスクトップ ショートカット アイコンを配布するかですが、現実解としては、PowerShell スクリプトでショートカットを作成するスクリプトを作り、それを IntuneWinAppUtil.exe を用いて、.intunewin ファイルを作成して、Win32 アプリとして、Microsoft Intune から配布するという方法です。

<PowerShell スクリプトによるデスクトップ ショートカット アイコン配布スクリプト>

# Microsoft Intune PowerShell Script
# Create Desktop Shortcut Icon
# Author : Yutaro Tamai (https://sccm.jp)

# Define Variables
$Shortcut_Create_Location = "C:\Users\Public\Desktop\SCCM.lnk"
$Shortcut_Target_Application_Path = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
$Shortcut_Target_Path = "https://sccm.jp"
$Shortcut_Icon_Path = "C:\Windows\SCCM.ico"

# Copy Icon File
Copy-Item .\Icons\* -Destination C:\Windows -Recurse

# Mail Script
$shell = New-Object -comObject WScript.Shell
$shortcut = $shell.CreateShortcut($Shortcut_Create_Location)
$shortcut.TargetPath = $Shortcut_Target_Application_Path
$shortcut.Arguments = $Shortcut_Target_Path
$shortcut.IconLocation = $Shortcut_Icon_Path
$shortcut.Save()

PowerShell ファイル : Create-Desktop_Shortcut_Icon.ps1

上記の PowerShell スクリプトの、 Define Variables の項目を必要に応じて変更ください。

$Shortcut_Create_Location > ショートカット アイコンを作成する場所とファイル名を指定
$Shortcut_Target_Application_Path > ショートカットにて呼び出されるアプリケーションのパスを指定
$Shortcut_Target_Path > アプリケーションの引数 (ブラウザーの場合は URL 等) を指定
$Shortcut_Icon_Path > アイコン ファイルの場所およびファイル名を指定

<IntuneWinAppUtil.exe を用いて、.intunewin ファイルの作成>

上記で、記載した PowerShell を自組織向けに修正したら、今度は、.intunewin ファイルを作成します。

  1. .intunewin を作成する作業用 PC を用意して、ログオンします。
  2. フォルダー構成を下記のようにします。
    Create-Desktop_Shortcut_Icon.ps1 と同じ階層に、[Icons] フォルダーを作成し、アイコン ファイルを格納
  3. https://github.com/Microsoft/Microsoft-Win32-Content-Prep-Tool から、IntuneWinAppUtil.exe をダウンロードする。
  4. コマンド プロンプトにて、下記のようにコマンドを実行する。

    IntuneWinAppUtil -c “C:\Intune\Package\Create-Desktop_Shortcut_Icon” -s “C:\Intune\Package\Create-Desktop_Shortcut_Icon\Create-Desktop_Shortcut_Icon.ps1” -o “C:\Intune\Package\Output”


    コマンドの指定の仕方は、こちらの記事を参照ください。

    上記のように、[Done!!!] と表示されれば、.intunewin が -o で指定したフォルダーに作成されています。

<Intune 管理センターで Win32 アプリの登録および配布>

早速、作成した .intunewin ファイルを用いて、Win32 アプリを作成します。

  1. Intune 管理センター (https://intune.microsoft.com/) を開きます。
  2. [アプリ] > [Windows] から、[追加] を選択します。
  3. [アプリケーションの種類] にて [Windows アプリ (Win32)] を選択します。
  4. [アプリ情報] にて、[アプリ パッケージ ファイルの選択] にて、作成した .intunewin ファイルを選択します。
  5. 選択した、.intunewin ファイルが正しいことを確認して、[OK] を選択します。
  6. [アプリ情報] にて、[名前] 等を適宜設定します。[*] の付いているところは必須項目になります。
  7. [プログラム] にて、下記のように設定します。

    [インストール コマンド] : powershell.exe -Executionpolicy Remotesigned -File “Create-Desktop_Shortcut_Icon.ps1”


    [アンインストール コマンド] : powershell.exe -Executionpolicy Remotesigned -File “Create-Desktop_Shortcut_Icon.ps1”


    (※ 今回のアプリケーションはアンインストール用のコマンドを作成していませんが、設定上、アンインストール コマンドは必須項目であるため、インストール コマンドと同じものを指定しています。)
    [インストールの処理] は、[システム] を選択します。
    [デバイスの再起動] は [何もしない] を選択します。

  8. [必要条件] にて、適宜下記のように設定します。[オペレーティング システムのアーキテクチャ] と [最低限のオペレーティング システム] は必須項目になります。
  9. [検出規則] にて、[規則の形式] にて [検出規則を手動で構成する] を選択して、[種類] の項目にて、[追加] を選択します。
  10. [検出規則] にて、下記のように設定にします。この項目はポイントで、なぜ、Win32 アプリで作成しているかというと、仮にユーザーや何かしらの理由により、今回作成されたデスクトップ ショートカットが対象の場所から消えた際も、検出規則を正しく設定しておけば、再度、Intune から配布されるためになります。
  11. 追加した検出規則が追加されていることを確認します。
  12. [依存関係] は今回設定しないので、追加せず、[次へ] を選択します。
  13. [置き換え] についても、今回設定しないため、設定せず、[次へ] を選択します。
  14. [割り当て] にて、今回、デスクトップ ショートカット アイコンを配布する先のグループを選択し、[次へ] を選択します。
  15. [確認と作成] にて、設定内容が正しいことを確認して、[作成] を選択します。
  16. 以上で、Intune 管理センターでの設定は完了です。

<クライアント PC にて結果を確認>

クライアント PC 側でしばらくすると、下記のように、デスクトップにショートカット アイコンが表示されれば、成功です。

<まとめ>

今回は、Microsoft Intune にて、デスクトップ ショートカット アイコンを配布するという内容を取り上げました。本来であれば、Microsoft Intune の標準機能で本配布機能を搭載してほしいところですね。。。

ただ、現状はそのような機能がないので、このようなワークアラウンドをとる必要があります。

また、PowerShell スクリプトでショートカットは作成出来ますが、Intune の [スクリプト] 機能を使わなかったのは、Win32 アプリでは検出規則 (検出条件) を設定でき、もし、ショートカットが消えた場合に、再度、自動的にショートカットを配布してくれるためになります。

今回紹介した方法が、Intune 管理者の皆さんのお役に立てれば幸いです。

また、次回以降も Intune ネタを紹介しますので、ご期待ください。