2

私はSOでこのスニペットを見つけました:

ログオンIDからユーザーSIDを取得する(Windows XP以降)

Function GetSIDfromAcctName()
{
$myacct = Get-WmiObject Win32_UserAccount -filter "Name = '$env:USERNAME " 
write-host Name: $myacct.name
Write-Host SID : $myacct.sid
}

しかし、すべてが表示されるわけではありません。

たとえば、「ntservice\dhcp」のsidが必要です。どうすればそれを取得できますか?PowerShellを手動で実行すると

Get-WmiObject Win32_UserAccont

すべてのユーザーを取得しますが、「通常の」ユーザーは3人だけです。「特別な」ntサービスユーザーはいません。

手伝ってくれてありがとう。

4

2 に答える 2

3

ビルトイン アカウントを取得するには、別の WMI クラスが必要です: Win32_Account.

gwmi -class win32_account -Filter 'name="LOCAL SERVICE"'
于 2012-08-03T06:50:51.413 に答える
1

サービスが開始されたアカウントの名前を知りたい場合は、次を使用できます。

gwmi Win32_service -Filter "name='dhcp'" | % {return $_.startname}

その結果、 Windows NT インストールのデフォルト"NT Authority\LocalService"の SID 値で説明されているように、よく知られている SID になります。Windows オペレーティング システムの既知のセキュリティ識別子で、さらに多くの SID を見つけることができます。


編集済み: 次のスクリーン ショットでわかるように、dhcp クライアントは次のように開始されたセッションで実行されています。"NT Authority\LocalService"

ここに画像の説明を入力

于 2012-08-02T20:17:55.960 に答える