見出し画像

IntuneでWindows端末に対して定期的にスクリプトを実行させる

この記事は【初心者優先枠】corp-engr 情シスSlack(コーポレートエンジニア x 情シス)#3のアドベントカレンダー12/12分です。

IntuneはWindowsに対してバッチファイル(Powershell)を実行させる機能があります。ただしこの機能は1度きりで定期実行させることは出来ません。

今回はタスクスケジューラの機能をと組み合わせてIntuneから設定と実行したいファイルを転送する方法を説明したいと思います。

今回作ったツール

今回は以前ブログで紹介したChocolateyをインストールした端末に対して定期的にアプリを更新させるタスクを追加したいと思います。

前回のブログはこちらを参照下さい


準備

実行させたいスクリプトを作成

まず定期的に実行させたいバッチファイルを作成します。
今回作成したファイルはこちらです。

ファイル名:choco-update.bat

@echo off
 
if not "%~0"=="%~dp0.\%~nx0" (
     start /min cmd /c,"%~dp0.\%~nx0" %*
     exit
)

cd /d %~dp0
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
if NOT "%LEVEL%"=="High" (
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -Command "Start-Process %~f0 -Verb runas"
exit
)

choco upgrade all -y

内容を簡単に説明すると以下ステップになります。

  1. バッチファイルを最小化で起動

  2. バッチファイルを管理権限で実行

  3. Chocolateyでインストールした全アプリを実行するコマンド実行

タスクスケジューラに登録させるスクリプトを作成

タスクスケジューラに登録するバッチファイルを作成します。

ファイル名:task-setting.bat

If not exist C:\ProgramData\chocolatey\update-tool mkdir C:\ProgramData\chocolatey\update-tool
copy "choco-update.bat" "C:\ProgramData\chocolatey\update-tool\choco-update.bat" /Y
schtasks /create /tn choco-update /tr "C:\ProgramData\chocolatey\update-tool\choco-update.bat" /sc onlogon /rl highest /F

内容を簡単に説明すると以下ステップになります。

  1. バッチ保管先がなければフォルダ作成

  2. タスクスケジューラに登録するバッチファイルをコピー

  3. タスクスケジューラ設定

タスクスケジューラはschtasksコマンドで登録出来ます。
上記は以下のような設定内容になっています。

タスク名: choco-update
実行ファイルの場所:"C:\ProgramData\chocolatey\update-tool\choco-update.bat"
実行タイミング:ログイン時

それぞれの詳しいパラメーターは以下サイトをご参照下さい。

インストーラー作成

IntuneのアプリインストールではおなじみのIntunewinを使用します。
こちらからツールをDLしてきて下さい。


インストーラ作成

1.Intunewinを起動
2.以下の通り設定して実行

<各設定内容について>
 source folder:作成したバッチが格納させているフォルダ
 setup file:実行させたいバッチ(今回はタスク登録)
 output folder:インストーラの出力先
 catalog folder:使用しないのでN

Intune登録

1 Intuneの管理画面から「アプリ」>「すべてのアプリ」>「+追加」>「Windowsアプリ(win32)」>「選択」クリック

2”アプリのパッケージファイル” にて作成したIntunewinファイルを選択して「OK」クリック

3 ”アプリ情報”タブにて以下設定して「次へ」クリック

名前:任意(実行されるバッチ名とか)
説明:任意(自動登録)
発行元:任意(作成者名とか)

4 ”アプリ情報”タブにて以下設定して「次へ」クリック

インストールコマンド:task-setting.bat(タスク登録させるバッチ)
アンインストールコマンド:task-setting.bat(タスク登録させるバッチ)
 ※アンインストールコマンドではないが必須項目のため入力
インストールの処理:ユーザー

5 ”必須条件”タブにて以下設定して「次へ」クリック

オペレーションシステムのアーキテクチャ : 32bit/64bit 選択
最低限のオペレーションシステム:任意

6 ”摘出規則”の設定画面にて「摘出規則を手動で構成する」を選択

7 ”摘出規則”の設定画面にて以下の通り設定

摘出の規則:ファイル
パス:バッチファイルを設置する場所
ファイルまたはフォルダー:バッチファイル名
摘出方法:ファイルまたはフォルダーが存在する

8 ”依存関係”タブは特に設定不要なので「次へ」
9 ”置き換え”タブは特に設定不要なので「次へ」
10 ”割り当て”タブにて必要なユーザ、デバイスを設定して「次へ」


最後に

これを応用すればいろんなタスクを設定できるのでお試し下さい。

あと自分がいつもお世話になっている情シスSlackはこちらから参加出来ます。とても素晴らしいコミュニティなのでまだの人はぜひ参加してみて下さい。

あと個人的には常時副業募集中です。
私のスキルと詳しい条件等は以下サイトを参照下さい。

それでは皆さんよい情シスライフを~~~


この記事が気に入ったらサポートをしてみませんか?