UAM:UAM: Shell Apps 技術リファレンスガイド

注記

実行コンテキスト: すべてのスクリプトはローカルシステムアカウントとして実行されます。

検出スクリプト

検出スクリプトは、必要なアクションと実際のインストール状態に応じて1回から2回実行されます。次のいずれかの結果で終了します:

戻り値の型

  • $true: アプリはインストールされています(シングルバージョンモードのみ)。

  • False$false: アプリはインストールされていません(シングルバージョンモードのみ)。

  • string:検出されたバージョン名。

  • Null アプリはインストールされていません。

インストールスクリプト

これは、ターゲットアクションがインストールであり、検出スクリプトが $false、$null、またはターゲットでないバージョン名を返した場合にのみ実行されます。追加情報については、フローの例を参照してください。

戻り値の型:

  • void:void: インストールが正常に完了しました。最終的なコンプライアンス状態は、検出スクリプトの2回目の実行によって再評価されます。

注記

  • インストールスクリプトは、必要に応じて アップグレードするまたは ダウングレードとして動作するように実装される場合があります。これを達成するために、 $Context.TargetVersion および$Context.DetectedVersion Nerdio Manager

  • インストールスクリプトは、すべてのバージョンに独自のインストールのオーバーライドが設定されている場合、空のままにすることができます。

アンインストールスクリプト

これは、ターゲットアクションがアンインストールであり、検出スクリプトが$trueまたは文字列バージョン名を返す場合にのみ実行されます。追加情報については、フローの例を参照してください。

戻り値の型

  • void:void: アンインストールが正常に完了しました。最終的なコンプライアンス状態は、検出スクリプトの2回目の実行によって再評価されます。

$Contextオブジェクトの仕様

これは、すべてのスクリプトに対して、 Nerdio Manager

プロパティ
  • Log(message: string | string[]):後でポリシーの詳細ページで確認できるよう、任意のメッセージをログに記録するための関数です。例えば、$Context.Log('Hello world')。

  • GetAttachedBinary(version: string | null):添付ファイルをダウンロードし、一時フォルダー内の絶対パスを返します。詳細については、ファイル添付を参照してください。

  • TargetVersion: string | null:展開ポリシーのインストールアクションで設定されたバージョン名です。アンインストールアクションの場合はnullになります。

  • DetectedVersion: string | null:検出スクリプトで返されたバージョン名です。その他の戻り値の場合はnullになります。

  • バージョンShellAppVersion[]:すべてのシェルアプリのバージョン定義。 [ Nerdio Manager v6.6+]

ShellAppVersion Object Specs

プロパティ

  • 名前: 文字列:バージョン名。

ファイル添付

任意のシェルアプリのバージョンには任意のバイナリデータが添付される可能性があり、任意のスクリプトは$Context.GetAttachedBinary() を使ってこのバイナリデータを取得できます。

この関数を呼び出すと、次のことが行われます:

  • ファイルがまだダウンロードされていない場合は、ファイルをダウンロードします。

  • ダウンロードしたファイルを内部ストレージにキャッシュします。

  • ファイルを一時フォルダーにコピーします。

  • 一時フォルダー内のファイルの絶対パスを返します。

この関数は、特定のバージョンに添付されたファイルを提供するため、オプションの バージョン 名パラメーターを受け取ります。 Nerdio Managerその後、コンテキストに基づいてもっとも適切なファイルを一つ検索します。考えられる結果は4つです:

  • シェルアプリに単一のバージョンがある場合、そのファイルを選択します。

  • アクションがインストールの場合、ターゲットバージョンのファイルを選択します。

  • Detectスクリプトが適切なバージョン名を返した場合、そのファイルを選択します。

  • エラーが発生します。

マルチバージョンモードの重要なポイント

  • Detectスクリプトは、ホスト上で検出された場合は適切なバージョン名を返す必要があり、検出されない場合はnullを返します。これは、アプリが存在するかどうかを示す単純な真/偽のブール値を許可する単一バージョンモードとは異なります。

  • Detectスクリプトの返された結果は、アプリがインストールされているかどうかの最終的な真実の源です。そして、それはインストール/アンインストールのすべてのフォローアップ実行のドライバーです。

  • Nerdio Manager

  • 顧客は、現在インストールされているシェルアプリのバージョンを追跡するために必要なロジックを自由に記述できます(例:レジストリキー、ファイルなど)。

統合カタログページでの可用性

統一カタログにおけるシェルアプリの可用性は、対応するシェルアプリ管理の一般ステップにある公開チェックボックスによって制御されます。

バージョン設定UI

ここでは、各シェルアプリ管理のバージョンウィザードステップで見られるバージョン管理UIの詳細をいくつか示します。

  • 名前 名前: x.x.x.x形式で保存されているバージョン名です。これは、関連するインストールポリシーに対して正の値を返すために、検出スクリプトから返されるバージョンと同一でなければなりません。

  • 解凍 (無効):解凍(無効): このオプションは新しいシェルアプリにはお勧めしません。なぜなら、このオプションは単一バージョンモードでのみサポートされており、将来的にはその動作が変更される可能性があるからです。

    注記

    注意: このオプションは、SCCM PowerShell アプリケーションのインポートサポートのために特に導入されました。選択した場合、zipファイルは一時フォルダーに抽出され、コンテキストがそのフォルダーに設定されます。したがって、アーカイブ内のファイルを直接使用できます。同じ動作は、次のチェーンを使用することで達成できます: $Context.GetAttachedBinary() -> Expand-Archive -> Set-Location

  • ファイルファイル :現在のバージョンに特定のファイルを添付し、インストールスクリプトから$Context.GetAttachedBinary()を介して呼び出すことができます。

  • 上書きインストールインストールをオーバーライド: これは、現在のバージョンをインストールする際にグローバル インストールスクリプトをオーバーライドする機能を提供します。これは、一部の単純なバージョン管理シナリオに便利かもしれません。

パラメータ化

Nerdio Manager設定 > Nerdio 環境 > セキュア変数 タイルに設定されたセキュア変数の値を安全に注入してパラメータ化できます。詳細については、「 Scripted Actions のグローバル Secure Variables」を参照してください。

この機能を利用するには、スクリプトの先頭に次の定型コードを挿入し、変数の値をスクリプトパラメータとして動的に注入してください。

ヒント

[CmdletBinding()]

param (

[Parameter(Mandatory)]

[string] $SecureVar_MyCustomVar1,

[Parameter(Mandatory)]

[string] $SecureVar_MyCustomVar2

)

注記

  • セキュア変数はIntuneデバイスではサポートされていないため、展開エラーが発生します。

  • パラメータ名はSecureVar_で始める必要があります。残りの名前は既存のセキュア変数にマッピングする必要があります(大文字と小文字を区別します)。例えば: セキュア変数がAdminPasswordの場合、スクリプトパラメータはSecureVar_AdminPasswordとして定義する必要があります。

  • セキュア変数は、管理者によってシェルアプリのスクリプトパラメータでの使用が明示的に許可される必要があります。セキュア変数の設定でシェルアプリ内での使用を許可するオプションを選択してください。

  • Nerdio Manager

フローの例

シングルバージョンモード

標準のシングルバージョンインストールの場合、検出スクリプトが最初に実行され、インストールが必要かどうかを判断します。検出ルールがfalseを返す場合(アプリが存在しないことを意味します)、インストールスクリプトが実行されます。その後、検出ルールが再度実行されます。再度falseを返す場合、インストールは失敗として報告されます。trueを返す場合は、成功として報告されます。

表3

構成されたバージョン

構成されたアクション

検出#1が返した値

実行されたスクリプト

検出#2が返した値

最終ステータス

1.0

インストール

$false

インストール

$true

成功

1.0

インストール

$false

インストール

$false

失敗

1.0

インストール

$true

-

成功

1.0

アンインストール

$true

アンインストール

$false

成功

1.0

アンインストール

$true

アンインストール

$true

失敗

1.0

アンインストール

$false

-

成功


マルチバージョンモード

マルチバージョンインストールの場合、検出スクリプトが最初に実行され、インストールが必要かどうかを判断します。バージョン検出ルールが定義されたターゲットバージョンと一致しない値を返す場合、インストールスクリプトが実行されます。その後、検出ルールが再度実行されます。それでも定義されたターゲットバージョンを返さない場合、インストールは失敗として報告されます。定義されたターゲットバージョンを返す場合は、成功として報告されます。

表4

構成されたバージョン

構成されたアクション

検出#1が返した値

実行されたスクリプト

検出#2が返した値

最終ステータス

1.0, 2.0

インストール

$null

インストール

1.0

成功

1.0, 2.0

インストール

$null

インストール

$null

失敗

1.0, 2.0

インストール

1234.0

-

-

失敗

1.0, 2.0

インストール

1.0

-

-

失敗

1.0, 2.0

インストール

1.0

インストール

2.0

成功

1.0, 2.0

インストール

2.0

インストール

1.0

成功

1.0, 2.0

アンインストール

1.0

アンインストール

$null

成功

1.0, 2.0

アンインストール

1.0

アンインストール

1.0

失敗

1.0, 2.0

アンインストール

1234.0

-

-

失敗


トラブルシューティング

発生したエラーのスタックトレースは、展開ポリシーの詳細ページで確認できます。さらに、特定のホストのホストアプリケーション管理タスクでアプリ管理ログをリクエストボタンを選択することで、すべての展開ログを抽出できます。

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください

コメント (0件のコメント)

記事コメントは受け付けていません。