見出し画像

IntuneのWin32アプリのカスタム検出スクリプトメモ

公開日:2024/3/20

本当にメモ。
Win32アプリのカスタム検出スクリプトはとりあえず0を返せばいいのかな~などと安易に考えて作ってみたけどうまく検出が動かなくて困った。

うまく動いてから気づいたのが、、learn (Microsoft 技術情報) の見る場所を間違えてた……
Win32 アプリを追加し、Microsoft Intune に割り当てる | Microsoft Learn
「スクリプト……スクリプト……」ばかり考えてたから、検出規則のところじゃなくて、デバイス要件の章(「手順 3:要件」)を見てた……

「手順 3:要件」のところ

「手順 4: 検出規則」のところ。ここちゃんと気づいてたらもっと早かったよ!

手順 4: 検出規則」のところ

ちゃんと検出してくれた版 ↓ 
・最初に $exit_code = 0 をセットした
・Write-Outputで標準出力に出した(今回の出力内容は意味ない出力だけど)

$exit_code = 0
# DISM.exe コマンドの出力を取得
$packagesOutput = DISM.exe /online /get-ProvisionedAppxPackages

# PackgeNameを指定
$targetPackgeName = <PackgeName指定してね>

# PackgeNameが存在するかどうかを確認
if ($packagesOutput -match $targetPackageName) {
    # 存在する場合は0を返す
    Write-Output "Exit Code: $exit_code"
    exit $exit_code
} else {
    $exit_code = 1  # 存在しない場合は1を返す
    Write-Output "Exit Code: $exit_code"
    exit $exit_code
}

検出失敗版 ↓ 
・最初に $exit_code = 0 をセットしてない
・Write-Outputなし

# DISM.exe コマンドの出力を取得
$packagesOutput = DISM.exe /online /get-ProvisionedAppxPackages

# PackgeNameを指定
$targetPackageName = <PackgeName指定してね>

# PackgeNameが存在するかどうかを確認
if ($packagesOutput -match $targetPackageName) {
    exit 0  # 存在する場合は0を返す
} else {
    exit 1  # 存在しない場合は1を返す
}

learnは落ち着いて読めですわ~

私のド嵌り記事があなたの役に立ったのならうれしいです。 ( * ´・ω・)