8

$_.commandline プロパティに特定の単語が含まれる 3 台のターミナル サーバーでプロセスを見つけようとしています。私のドメイン管理者アカウントでは、問題なく動作しました。しかし、このスクリプトをドメイン ユーザーが使用できるようにしたいのですが、ドメイン ユーザーがこのスクリプトを実行するとエラーが発生します。

ドメイン ユーザーがドメイン管理者と同じようにこのスクリプトを実行できるようにするにはどうすればよいですか? 前もって感謝します!

エラー:

Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESS DENIED))
At N:\FindWhoIsUsing\FindWhoIsUsing.ps1:7 char:18
get-wmiobject <<<<  win32_process -computername $server -EnableAllPrivileges|
CategoryInfo          : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Powershell コード:

Write-host "Who is using this profile?"
$profile = Read-host "specify profile name" 
$servers = @("server-01","server-02","server-03")
Foreach($server in $servers)
{
    Write-host $server
    get-wmiobject win32_process -computername $server -EnableAllPrivileges|
    where{$_.name -like "*Processname*" -and
    $_.CommandLine -like "*$profile*"}|
    select @{n="Server";e={$server}},@{n="User";e={$_.getowner().user}},@{n="ProcessID";e= {$_.ProcessID}},{$_.CommandLine}|fl
}
Write-host "DONE Searching!"
4

2 に答える 2

16

手順は次のとおりです。

  1. 「wmimgmt.msc」を起動します
  2. [WMIコントロール(ローカル)]を右クリックし、[プロパティ]を選択します
  3. [セキュリティ]タブに移動し、[セキュリティ]、[詳細設定]、[追加]の順に選択します
  4. WMIへのアクセスを許可するユーザー名またはグループを選択し、[OK]をクリックします
  5. 必要な権限を付与します。最初にすべての権限を付与してアクセスが許可されていることを確認し、必要に応じて後で権限を削除することをお勧めします。
  6. [適用先]オプションが[この名前空間とサブ名前空間]に設定されていることを確認します
  7. すべてのプロンプトを保存して終了します
  8. ユーザーまたはグループをローカルの「DistributedCOMUsers」グループに追加します。注:「AuthenticatedUsers」グループと「Everyone」グループはここに追加できないため、代わりに「DomainUsers」グループを使用できます。
于 2013-02-19T09:03:42.677 に答える
0

私の場合、ドメイン サーバーからワークグループ サーバーに接続していて、レジストリ キーを設定する必要がありました。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy=1
于 2020-06-18T14:26:12.323 に答える