PowerShell を使用してローカル ユーザーとグループを一覧表示する

Marion Paul Kenneth Mendoza 2023年6月20日
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-LocalGroupMemberGet-LocalGroupGet-LocalUser、およびその他の Get-Local* コマンドを使用して、ローカル ユーザーを取得およびマップできるようになりました。 グループ。

これらの新しいコマンドを使用すると、スクリプトをより簡潔に記述できます。

コード例:

Get-LocalGroupMember -name users

出力:

ObjectClass Name                             PrincipalSource
----------- ----                             ---------------
User        DESKTOP-7GI1260\kentm            MicrosoftAccount
Group       NT AUTHORITY\Authenticated Users Unknown
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell User