次の方法で共有

Windowsタスクの「イベント時」トリガーにてでTargetUserNameとSubjectUserNameが同一のものという条件を追加することは可能でしょうか

20927774 110 評価のポイント
2024-07-26T06:45:19.3033333+00:00

Windowsタスクで「タスクの開始」条件に「イベント時」を指定して、特定のイベントが発生したときにタスクを実行させたいと考えています。

特定のイベントを設定する際に、「カスタム」を選択することで、XML Path形式でより詳細にイベントをフィルタリングできるのですが、TargetUserNameとSubjectUserNameが同じ値のログを抽出するような条件の記載は可能でしょうか。

以下のように設定してみたのですが、クエリーエラーとなってしまいます。


<QueryList>

<Query Id="0" Path="Security">

<Select Path="Security">*[EventData[Data[@Name="TargetUserName"] = [@Name="SubjectUserName"]]]</Select>

</Query>

</QueryList>


絞り込み条件は、固定値以外はできないのでしょうか。

以下、MSのサイトでXPath1.0の制限事項の部分を読んでみたのですが、上記内容が制限事項に当たるのかどうか判断できず、質問させていただきます。

https://learn.microsoft.com/ja-jp/windows/win32/wes/consuming-events

よろしくお願いいたします。

ビジネス向け Windows | IT プロフェッショナル用 Windows クライアント | ユーザー エクスペリエンス | その他
0 件のコメント コメントはありません
{count} 件の投票

1 件の回答

並べ替え方法: 最も役に立つ
  1. 20927774 110 評価のポイント
    2024-08-01T05:01:57.7+00:00

    表記の解決策が見つからなかったため、「イベント時」というトリガー条件をやめて、任意のイベントIDを検知するスクリプトをシステム起動時に稼働させ、そのスクリプト内で、EventLog内のMessageにある該当文字列を力技で抜き出して比較することにしました。

    SubjectUserName

    $SubjectAcountLine=($Message.Split("rn") | Select-String "アカウント名")[0]

    if($SubjectAcountLine){ $SubjectAcount=$SubjectAcountLine.ToString().Split(":")[1].Trim() }

    TargetUserName

    $TargettAcountLine=($Message.Split("rn") | Select-String "アカウント名")[1]

    if($TargettAcountLine){ $TargettAcount=$TargettAcountLine.ToString().Split(":")[1].Trim() }

    if( $SubjectAcount -ne $TargettAcount ){

    ...

    }

    ありがとうございました。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。