PowerShell を使用してローカル ユーザーとグループを一覧表示する
この記事では、PowerShell を使用してマシンのローカル ユーザーとグループにクエリを実行する方法について説明します。
PowerShell を使用してローカル ユーザーとグループを一覧表示する
ネットワークの問題が原因でドメインが切断された場合、ほとんどの場合、認証サーバーに到達できず、利用できないため、ドメインの資格情報が機能しません。 したがって、最善の基準として、ローカル資格情報を手元に用意しておく必要があります。管理者として、これらの資格情報はローカル管理者グループの一部です。
PowerShell スクリプトを使用して、管理者の資格情報があるかどうかを確認できます。特に、これらのコマンドを使用して複数のマシンを一括処理することもできるためです。 次のセクションでは、PowerShell を使用してローカル ユーザーとグループにクエリを実行するいくつかの方法について説明します。
ADSI を使用してユーザーのローカル グループ メンバーシップを取得する
Microsoft によると、Active Directory サービス インターフェイス (ADSI) は、ディレクトリ サービスへのアクセスに使用される組み込みの COM インターフェイスです。 たとえば、ADSI ライブラリ内には、Windows PowerShell で実行して現在のユーザーのグループ メンバーシップを照会できる [ADSI]
クラスがあります。
コード例:
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | Where {$_.SchemaClassName -eq 'user'} | Foreach-Object {
$groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
$_ | Select-Object @{Name='UserName';Expression={$_.Name}},@{Name='Group';Expression={$groups -join ';'}}
}
出力:
UserName Groups
-------- ------
Administrator Administrators
DefaultAccount System Managed Accounts Group
Guest Guests
user Users
WMI を使用してユーザーのローカル グループ メンバーシップを取得する
WMI は、Windows ベースのコンピューターを使用してネットワーク全体でハードウェアおよびソフトウェアの管理を合理化するためのガイドラインの集まりであり、Microsoft の最新のオペレーティング システムにプレインストールされています。 ベンダーは、Windows 10 より前の OS で WMI コマンド ライン (WMIC) と呼ばれる WMI 用のコマンド ライン インターフェイス (CLI) を提供しました。
WMIC は、これらの以前のバージョンの Windows の既存のシェルおよびユーティリティ コマンドと互換性があります。
コード例:
Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'"
出力:
AccountType : 512
Caption : DESKTOP-7GI1260\Administrator
Domain : DESKTOP-7GI1260
SID : S-1-5-21-3848050931-464278446-3624840-500
FullName :
Name : Administrator
AccountType : 512
Caption : DESKTOP-7GI1260\user
Domain : DESKTOP-7GI1260
SID : S-1-5-21-3848050931-464278446-3624840-1003
FullName :
Name : user
-Filter
パラメーターは、ローカルで作成されたアカウントのみをフィルター処理するために配置されています。 したがって、ドメインが確立されている場合、デフォルトのアカウント作成によって形成されません。
Get-Local
コマンドを使用してユーザーのローカル グループ メンバーシップを取得する
PowerShell 5.1 では、Microsoft.PowerShell.LocalAccounts
モジュールで Get-LocalGroupMember
、Get-LocalGroup
、Get-LocalUser
、およびその他の Get-Local*
コマンドを使用して、ローカル ユーザーを取得およびマップできるようになりました。 グループ。
これらの新しいコマンドを使用すると、スクリプトをより簡潔に記述できます。
コード例:
Get-LocalGroupMember -name users
出力:
ObjectClass Name PrincipalSource
----------- ---- ---------------
User DESKTOP-7GI1260\kentm MicrosoftAccount
Group NT AUTHORITY\Authenticated Users Unknown
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn