カスタムと実行処理
このセクションの内容
カスタム処理
カスタム処理は、PowerShell、Visual Basic、Java Script を使用して作成することができ、他の Environment Manager 処理から使用できない処理を実行できます。このスクリプトは XML 構成で保持され、実行時にディスクにコピーされてから、完了時に削除されます。
従来は、必要な処理の遅延を指定するために、カスタム処理が頻繁に作成されていました。Environment Manager の2020.3リリースでは、[遅延] タブが [処理] ダイアログに追加され、カスタム処理が必要なくなりました。
無効なスクリプトの処理は失敗を返し、子処理は実行されません。
成功した処理と失敗した処理に個別の監査イベントが作成されます。これらは、[管理] リボンの [監査] ボタンで表示できます。
![閉じた](../../Skins/Default/Stylesheets/Images/transparent.gif)
' ==========================================================
' プロセス (EMCoreService.exe) が実行中かどうかを確認する
' =========================================================
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\"& strComputer & "\root\cimv2")
Set objShell = CreateObject("Wscript.Shell")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'EMCoreService.exe'")
If colProcesses.Count =0 Then
Wscript.Echo "EMCoreService.exe が実行中のインスタンスはありません"
Wscript.Quit 0
Else
Wscript.Echo "EMCoreService.exe が実行中です"
Wscript.Quit 1
End If
成功した処理と失敗した処理の個別の監査イベントが作成されます。これらは、[管理] リボンの [監査] ボタンで表示できます。
必要なスクリプトの種類を選択します (PowerShell、Visual Basic、Java Script)。スクリプトはダイアログに直接入力します。スクリプトは、コピーと貼り付けを使用して追加し、インポート ボタンを使用してインポートできます。
処理の動作に影響する次の設定を適用できます。
-
タイムアウト - スクリプトの完了のタイムアウトを設定します。設定された時間に達すると、処理が失敗します。設定できる最大値は60秒です。設定できる最大値はありませんが、値0は無限を意味します。カスタム処理で設定されたタイムアウトは、既定のノード設定を上書きします。
カスタム処理とカスタム条件の特定のタイムアウト値を設定することをお勧めします。タイムアウト値を0(無限) に設定すると、スクリプトが失敗して完了しなかった場合に、ログオンまたはログオフがハングする可能性があります。
- スクリプトのインタラクティブな実行を防止する - このオプションは既定で選択されています。スクリプトは、ユーザ操作が必要なポップアップを表示せずに実行されます。
- 環境変数を構成に適用する - このオプションをオンにすると、スクリプトで設定された環境変数がレジストリにも設定され、スクリプト外で EM クライアントを使用できます。
- 挿入 - スクリプトに追加するセッション変数を選択します。このリストには、次のビルトイン変数が含まれます。
- SessionID - 現在のセッション ID
- UserSID - ユーザのセキュリティ ID
- UserTemp - ユーザの一時ディレクトリの場所
利用可能なネットワーク、ネットワーク接続およびネットワーク切断トリガでは、その他のビルトイン セッション変数をスクリプトに追加し、接続属性を決定できます。
Exit コード
すべてのカスタムスクリプトは exit コードコードを指定する必要があります。これは、返されるときに、Environment Manager エージェントによって使用され、スクリプトが成功したか失敗したかどうかを決定します。exit コードがないスクリプトの場合、成功 (0値) がエージェントによって想定されます。
各スクリプト タイプは特定の exit 文を使用する必要があります。
- VBScript:WScript.Quit [value]
- JScript - WScript.Quit([value])
- PowerShell:exit ([value])
[value] はスクリプトの exit コードで置換します。0は成功、1は失敗です。例:WScript.Quit 0, WScript.Quit(0), exit (0)
PowerShell スクリプト
Windows PowerShell スクリプトはさまざまな実行ポリシーを使用します。これは、スクリプトの実行を防止したり、信頼できる発行元が署名したスクリプトの実行のみを許可したりすることができます。Environment Manager は実行ポリシーを上書きし、制限をバイパスして、PowerShell スクリプトの実行を可能にします。
すべての PowerShell 実行ポリシーを上書きするグループ ポリシーでも、ユーザとコンピュータの実行ポリシーを設定できます。スクリプトを許可しないユーザ ポリシー、または署名されているユーザ ポリシーは、System で実行した場合、PowerShell カスタム処理の実行に影響しません。ただし、現在のユーザで実行する場合は、ユーザ ポリシーによって、スクリプトが許可されず、カスタム処理が失敗します。スクリプトを許可しないコンピュータ ポリシー、または署名されているコンピュータ ポリシーは、PowerShell カスタム処理の実行を許可しません。
このため、PowerShell を使用するカスタム処理を正常に実行するには、ユーザとコンピュータに対してこれらのスクリプトを実行できるように、グループ ポリシーを設定する必要があります。
Environment Manager は PowerShell 1.0、2.0、3.0に対応します。
実行処理
これらの処理は、トリガーされると、アプリケーションまたはプロセスを実行します。[ファイル名] フィールドから、アプリケーションを参照します。アプリケーションが選択されると、作業ディレクトリが自動的に追加されます。プログラムに渡す追加のパラメータを追加できます。
異なるユーザ認証資格情報を使用してプロセスを実行できるようにするには、[名前を指定して実行] タブを選択し、必要に応じてユーザを選択します。
[ウィンドウを作成しない (コンソールベースのアプリケーション)] チェックボックスがオンの場合、アプリケーションまたはプロセスに関連付けられたコマンド ウィンドウはユーザに表示されません。
プログラム ファイルなど、完了するためにユーザの操作が必要なファイルでは、順番に実行するように設定されたノードで、ログオン時に実行処理を含めないでください。含めてしまうと、ログオン スクリプトがスクリプトの実行が完了するまで待機するため、ログオン処理が無限に停止します。たとえば、実行処理が notepad.exe を起動する場合、ログオン スクリプトは、ログオン処理を続ける前に、メモ帳が終了するまで待機します。
[プロセスが終了するまでこの処理の子を実行しない] オプションがロックされていない場合は、ユーザのインタラクションがオフのため、このシナリオは有効ではありません。