web-dev-qa-db-ja.com

perfmonがNT AUTHORITY \ SYSTEM資格情報を要求する

自分のパフォーマンスカウンターデータコレクターをセットアップしました。しばらく実行していたので、編集したいと思います。 [OK]をクリックすると、NT AUTHORITY\SYSTEMの資格情報を入力するように求められます。 WTH?明らかに、私はこれらを知らず、パスワードさえもないと思います! enter image description here

新しいデータコレクターセットを作成できますが、一部を編集しようとすると、いつでもこれを要求され、変更を保存できません。

編集:私はWindows 10 Enterpriseビルド1903を使用した仕事用のラップトップについて話しています。他の人と同じように使用しています-ローカル管理者グループのメンバーでもあるAzureADアカウントを持っています。同じ動作に気付いた私のホームPCはWindows 10 Proビルド1903です。そこで、Administratorsグループのメンバーであるローカルユーザーアカウントでログオンしています。

4
Vitas

だから私はそれが原因を知りませんが、解決策/回避策を見つけたようです:それらが資格情報を要求するたびに、ログインから値を削除して空の値を送信するだけでこれは機能します...

5
Vitas

NT AUTHORITY\SYSTEMにはパスワードがないので、空のパスワードがそのプロンプトの正しいエントリであることに注意します。

私は、あなたのドメインアカウントが、Performance Log UsersやPerformance Monitor Usersのローカルグループのメンバーではなくなったため、おそらく完全なローカル管理者ではないと結論付けることができます。

これらのグループは次のように定義されます。

  • パフォーマンスログユーザー
    このグループのメンバーは、Administratorsグループのメンバーでなくても、ローカルおよびリモートクライアントの両方で、コンピューター上のパフォーマンスカウンター、ログ、およびアラートを管理できます。

  • パフォーマンスモニターユーザー
    このグループのメンバーは、AdministratorsグループまたはPerformance Log Usersグループのメンバーでなくても、コンピューターのパフォーマンスカウンターをローカルおよびリモートクライアントから監視できます。

この同じ問題は、投稿 PerfMonによって生成されたファイルのアクセス許可の問題 で説明されています。

データコレクターセットにはコンピューターに関する機密情報が含まれている可能性があるため、それらにアクセスするには、通常、ユーザーが少なくともPerformance Log Usersグループのメンバーである必要があります。

そこでの解決策、実際の回避策は、データコレクターセットの実行が完了したときに起動するスケジュールされたタスクを作成し、ディレクトリ構造のACLを「Everyone Full Control」に再帰的に変更することでした。

ジョブのトリガーの作成に問題があり、カスタムトリガーを手動でXMLとして入力する必要がありました:

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">
        *[System[TimeCreated[timediff(@SystemTime) &lt;= 3600000]]]
         and
        *[System[(EventID='102')]]
         and
        *[EventData[Data and (Data='YOUR DATA COLLECTOR SET NAME')]] 
    </Select>
  </Query>
</QueryList>

トリガーがこのPowerShellスクリプトを起動しました:

$Path = "C:\PerfLogs\Admin\New Data Collector Set"
$ACL  = (Get-Item $Path).GetAccessControl("Access")
$ACE  = New-Object System.Security.AccessControl.FileSystemAccessRule("Everyone", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$ACL.AddAccessRule($ACE)
ForEach($_ In Get-ChildItem $Path -Recurse)
{
    Set-Acl -ACLObject $ACL $_.FullName
}

このソリューションは複雑なので、プロンプトが表示されたときに空のパスワードを入力し続ける方が簡単な場合があります。

1
harrymc