TeamsをIntuneでインストールするけど自動起動はしない方法
この記事は何?
この記事はIntuneでAutopilot時にTeamsをインストールするけど、ユーザがサインインした時にTeamsを自動起動させない方法です。 Teams machine-wide installerは実行され、サインインしたユーザにTeamsがインストールされます。 なお、この方法でインストールを行っても一度でもそのPCでTeamsを実行したことのあるユーザはサインイン時Teamsが自動起動します。
全然できない…を積み上げて、出来た!となってすぐに書いた記事のため検証されてない事項がたくさんあります。この記事と同じ設定をした場合自分の環境で思ったように動作するかの確認は入念にお願いします。誰かの何かのヒントになれば良いと思って書いている記事です。この記事の作者は何が起こっても何の責任も取れません。
概要
Teamsをインストールする際にmsiインストーラで以下のオプションをつけてインストールを行うとTeamsは自動実行されません(すでにインストールされているユーザには適用されません)
msiexec /i Teams_windows_x64.msi OPTIONS="noAutoStart=true" ALLUSERS=1
Win32アプリとしてインストールしたTeamsのIntuneでの検出ルールはレジストリで キーパス
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{731F6BAA-A986-45A4-8936-7C3AAAAA760B}
のVersionの存在を確認するか、整数値で比較してインストール済みPCで確認した値を入力します
詳しく
こん○○は。にょもこです。
うちの環境では基本的にAzure Virtual Desktop(AVD)を利用している為、本来は実PCにインストールする必要があるアプリはAVD用のクライアントだけの筈ですが、TeamsはVDI版だとビデオ会議時にリアクションが使えない等、手元のPCでTeamsを使いたいという要望が寄せられるようになりました。
しかし、手元のPCではTeamsを使わない人の方が大多数のため、TeamsのインストールされたPCにサインインするとTeamsを利用しないユーザがサインインした時にも自動起動する…というのは避けたいのです。
AVDのクライアント用PCはIntuneのAutoPilotで共有PCモードを有効にするポリシーを適用してセットアップしています。IntuneにはDEMアカウントでPCを登録しているのでユーザアフィニティは利用出来ず、AutoPilotでインストールされたアプリが全てという環境です。(AutoPilot無しでもDEM登録できるじゃんという声も聞こえそうですが、うちの環境ではPC名は絶対に指定通りの物を設定したいという理由があるのでAutoPilotにしています)
そのため、後から必要なユーザが手動でポータルからTeamsをインストールすることは出来ません。さらにストアの利用は禁止していますので何としてでもAutoPilotでTeamsのインストールを完了したいという環境なのです。
Teamsはmsiインストーラを利用する事で自動起動をオフにした状態でインストールすることが出来ます。MSlearn(すでに展開済みの環境には適用されない)
これを利用することで共用PCにサインインしたユーザで必要な人はTeamsをスタートメニューから起動すれば良いし、不要な人は起動しない…という事が出来るようになります。
Win32アプリとしてインストール
MSIならMSI基幹業務アプリとしてインストールしたら楽じゃん…と思う方も多いでしょうが、今回はWin32アプリとしてインストールします。MSI基幹業務アプリとしてインストールするとアプリのインストールコンテキストがユーザに固定されてしまい、インストール対象をデバイスにすることが出来ません。(共用PCではない環境の人、誰かMSI基幹業務アプリとしてインストール試してみて下さい…)
Win32アプリはインストーラを含むintunewinファイルを作成しそれをIntuneに登録するという形で配布します。
intunewinファイルの作成
- 適当なフォルダを作成します。今回は
C:\IntuneApps
というフォルダという事にします。更にフォルダの中にTeams
フォルダを作ります。 - Teamsフォルダの中にMSlearnにリンクのある商用64ビットのMSIファイルをダウンロードして保存します
- Teams.batを作って保存します。Teams.batはこの記事の下の方にコピペ出来る様に書いてあります。
C:\IntuneApps
に build_Teams.batをおきます。build_Teams.batもこの記事の下の方においておきます。- build_Teams.batをダブルクリックして実行すると Teams.intunewin ファイルが作成されます。
intuneへのアプリの登録
- Windowsのアプリを開き追加ボタンを押します
- アプリの種類はWindowsアプリ(Win32)を選びます
- アプリパッケージファイルに先ほど作ったTeams.intunewin ファイルを選択します
- 名前はMicrosoft Teamsに変えておきましょう 発行元にはMicrosoftと入力
- インストールコマンドには
Teams.bat
と入力 アンインストールコマンドはmsiexec.exe /X{731F6BAA-A986-45A4-8936-7C3AAAAA760B}
インストールの処理 システム デバイスの再起動 何もしない - 必要条件はオペレーティングシステム x64 最低限のオペレーティングシステム Windows10 20H2 にしてますがこの辺は適宜変えて下さい
- 検出ルールを手動で構成する
レジストリ
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{731F6BAA-A986-45A4-8936-7C3AAAAA760B}
値の名前 Version 検出方法 値が存在する にするか 整数値を比較(予めインストールをどこかで行ってレジストリの値を調べておく必要があります) 整数値を比較にした場合演算子以上 値 17170432(バージョン 1.6.0.376の場合) 64ビットクライアント上で32ビットアプリに関連付ける いいえ - レビューと保存で内容を確認して保存します
アプリの割り当てにデバイスのグループを指定したらできあがりです。最初は検証用の手元にある少数のPCが入ったグループを指定しましょう
AutoPilotが完走することと、新しいユーザがサインインした際にTeamsが起動しないことと、ユーザのスタートメニューにTeamsが存在する事を確認できたら完成です。
これでできあがりです。
必要なファイル達
メモ帳にコピペして作る場合は文字コードをANSIにする必要があります
build_Teams.bat
REM ↓で指定しているBASE_PATHの中に作ったアプリを置くフォルダ
SET APPDIR=Teams
REM アプリの名前のバッチファイル、これがIntuneで指定するインストールコマンド
REM このファイル名の.batを取って.intunewinをつけたファイルが作成される
SET SETUP_EXE=Teams.bat
REM Intuneで配布するアプリを置くフォルダ
SET BASE_PATH=C:\IntuneApps
%BASE_PATH%\IntuneWinAppUtil.exe -c %BASE_PATH%\%APPDIR% -s %BASE_PATH%\%APPDIR%\%SETUP_EXE% -o %BASE_PATH%\
Teams.bat
動かなかったときにわかりやすいように C:\Users\Public\Setup\
というフォルダを作ってログを出力して居るので不要なら C:\Users\Public\Setup\
を含む行を全部消して下さい
cd /d %~dp0
set APPNAME=Teams
mkdir C:\Users\Public\Setup\ > NUL 2>&1
echo %APPNAME% Start %DATE% %TIME% >> C:\Users\Public\Setup\install_log.txt
cd >> C:\Users\Public\Setup\install_log.txt
REM ここが実際にインストールを行っている場所
start /wait C:\Windows\System32\msiexec.exe /I Teams_windows_x64.msi /quiet /norestart OPTIONS="noAutoStart=true" ALLUSERS=1
set errorcode=%errorlevel%
echo %APPNAME% ERRORLEVEL %errorcode% %DATE% %TIME% >> C:\Users\Public\Setup\install_log.txt
REM 成功
If %errorcode% equ 0 goto noerror
REM すでにインストールされている
REM Intuneでは出ない筈のコード(試行錯誤の跡…)
If %errorcode% equ 1638 goto noerror
:END
echo %APPNAME% END ERROR %DATE% %TIME% >> C:\Users\Public\Setup\install_log.txt
exit /B 1
:needrestart
echo %APPNAME% END NEEDRESTART %DATE% %TIME% >> C:\Users\Public\Setup\install_log.txt
exit /B 3010
:noerror
echo %APPNAME% END OK %DATE% %TIME% >> C:\Users\Public\Setup\install_log.txt
exit /B 0