PowerShell でローカル ユーザーとグループを追加・削除・変更する方法
Aug 26, 2025
PowerShell でローカル ユーザーとグループを管理する作業は、Microsoft.PowerShell.LocalAccounts モジュールによって効率化されています。このモジュールは、アカウントやグループの作成、変更、無効化、削除を行う cmdlet を提供します。管理者は、ユーザーをグループに追加する、パスワードをリセットする、メンバーシップを確認するなどの作業を自動化できます。さらに、Microsoft および Azure AD-にリンクされたアカウントも管理できます。PowerShell セッションによるリモート管理も管理をさらに簡素化しますが、変更の監査はセキュリティとコンプライアンスのために不可欠です。
管理者が PowerShell でローカル ユーザーやグループをより簡単に管理できるようにするため、Microsoft は Microsoft.PowerShell.LocalAccounts という名前の cmdlet コレクションを提供しています。以前は、これを PowerShell に明示的にダウンロードして取り込む必要があり、さらに Windows Management Framework 5.1 もインストールしなければなりませんでした。Windows Server 2016 および Windows 10 の各 OS では、この cmdlet コレクションは標準モジュールとして含まれています。
に 15 個の cmdlet があります。LocalAccounts モジュールの全一覧は、次のコマンドを実行して確認できます:
Get-Command -Module Microsoft.PowerShell.LocalAccounts
- Add-LocalGroupMember — ローカル グループにユーザーを追加
- Disable-LocalUser — ローカル ユーザー アカウントを無効化
- Enable-LocalUser — ローカル ユーザー アカウントを有効化
- Get-LocalGroup — ローカル グループの設定を表示
- Get-LocalGroupMember — すべてのローカル グループ メンバーの一覧を表示
- Get-LocalUser — ローカル ユーザー アカウントの設定を表示
- New-LocalGroup — 新しいローカル グループを作成
- New-LocalUser — 新しいローカル ユーザー アカウントを作成
- Remove-LocalGroup — ローカル グループを削除
- Remove-LocalGroupMember — ローカル グループからメンバーを削除
- Remove-LocalUser — ローカル ユーザー アカウントを削除
- Rename-LocalGroup — ローカル グループの名前を変更
- Rename-LocalUser — ローカル ユーザー アカウントの名前を変更
- Set-LocalGroup — ローカル グループの設定を変更
- Set-LocalUser — ローカル ユーザーのアカウント設定を変更します
PowerShell でローカル ユーザー アカウントを管理する
これらのコマンドを使って、Windows 10 コンピューター上でローカル ユーザーを管理するための一般的な作業を行う方法を見ていきましょう。
PowerShell でユーザーとそのプロパティを一覧表示する
まず、このマシン上にあるすべてのローカル ユーザー アカウントの一覧を取得します。Get-LocalUser の cmdlet を使用します:
Get-LocalUser
ご覧のとおり、ローカル ユーザー アカウントが 2 つあり、そのうち 1 つは無効になっています(「Enabled」列で「False」と表示されているもの)。
ローカル ユーザー アカウントのすべてのプロパティとその値を出力したい場合は、次のパラメーターを指定して Get-LocalUser コマンドレットを使用する必要があります:
Get-LocalUser -Name ‘guest’ | Select-Object *
特定のローカル ユーザー アカウント属性の値を取得するには、Select-Object パラメーターの後にその名前を入力します。この例では、ユーザー名が「administrator」のアカウントについて PasswordLastSet 属性の値を知りたいので、次のようにします:
Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSet
PowerShell でローカル ユーザーを作成する
次の New-LocalUser コマンドレットを使って新しいユーザーを作成しましょう。このコマンドレットでは、次の種類のユーザー アカウントを作成できます:
- Windows ローカル ユーザー アカウント
- Microsoft アカウント
- Azure Active Directory アカウント
ローカル ユーザー アカウントを作成するとき、パスワードをプレーン テキストとして入力しないでください。必ず ?AsSecureString または ?ConvertTo-SecureString パラメーターを使って、それを安全な文字列に変換してください。新しいローカル ユーザー アカウントを作成するためのコマンドは次のとおりです:
$UserPassword = Read-Host –AsSecureString
New-LocalUser "Netwrix" -Password $UserPassword -FullName "Netwrix" -Description "CompleteVisibility"
Windows 10 環境では、ユーザーは Microsoft アカウントで認可できるため、Microsoft アカウントの資格情報にバインドされた新しいローカル ユーザー アカウントを作成できます。これを行うには次のスクリプトを使用してください(パスワードは Microsoft クラウドに保存されるため、入力する必要はありません):
New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"
Azure AD にバインドされるローカル アカウントを作成するには、次のコマンドを使用します:
New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Description "Azure AD Account"
PowerShellでローカル ユーザーのパスワードまたはパスワード属性を変更する
ローカル ユーザー アカウントのパスワードを変更するには、Set-LocalUser コマンドレットを使用する必要があります。ローカル管理者のパスワードを変更しましょう:
$UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verbose
PowerShellでローカル ユーザーに Password never expires を設定するには、次のスクリプトを実行する必要があります:
Set-LocalUser -Name Netwrix –PasswordNeverExpires $False
PowerShellでローカル ユーザー アカウントを削除する
ローカル ユーザー アカウントを削除するには、Remove-LocalUser コマンドレットを使用する必要があります。:
Remove-LocalUser -Name Netwrix -Verbose
PowerShell でローカル グループを管理する
では、ローカル ユーザーからローカル グループに注目してみましょう。
PowerShell でローカル グループを確認する
まず、Windows Server 上にあるすべてのグループの一覧を取得しましょう:
Get-LocalGroup
PowerShellでローカルグループを追加する
それでは、新しいグループを作成しましょう:
New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'
PowerShellでローカルグループにユーザーを追加する
ユーザー(またはグループ)をローカル グループに追加するには、Add-LocalGroupMember コマンドレットを使う必要があります。たとえば、ローカルの Administrators グループにユーザーを追加したいが、1人ずつ追加したくないとします。この場合は、ローカルの Administrators にグループを追加します。つまり、「Netwrix Users」グループを追加します:
Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verbose
コンピューターまたはサーバーがドメインの一部である場合は、それらのユーザーに対してサーバー上で特別なローカル権限を付与するために、ドメイン アカウントやグループをローカル グループに追加することもできます。追加する際は、「DomainNameUser」(ユーザーの場合)または「DomainNameDomain Group」(グループの場合)の形式を使用してください。
PowerShell で特定のグループのメンバーシップを表示する
それでは、特定のローカル グループのすべてのメンバーを一覧表示します。
Get-LocalGroupMember -Group 'Netwrix Users'
ご覧のとおり、このコマンドは「Netwrix Users」グループのメンバーであるすべてのローカル アカウントとグループを表示します。ここではローカル アカウントとグループのみが一覧表示されていますが、このコマンドはドメイン ユーザーやグループ、ならびにすべての Microsoft および Azure AD アカウントも表示します。
PowerShell でユーザーが所属しているすべてのグループを表示する
特定のユーザーがメンバーになっているすべてのグループを一覧表示するには、次のスクリプトを実行します。
foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}
PowerShell でローカル グループを削除する
グループからローカル ユーザー アカウントを削除するには、Remove-LocalGroupMember cmdlet を使用する必要があります:
Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'
PowerShell でリモートからローカル ユーザーとグループを管理する
ローカル ユーザー アカウントとグループをリモートで管理したい場合は、Invoke-Command と Enter-PSSession の cmdlet を使用して、WinRM 経由でリモート ワークステーションに接続する必要があります。たとえば、複数のコンピューターでローカル Admin グループのメンバーシップをリモートで出力したい場合は、次のスクリプトを実行する必要があります:
$search = new-pssession -computer pcname1,pcname2,pcname3
invoke-command -scriptblock {Get-LocalGroupMember -Group 'Administrators'} -session $search -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"
ご覧のとおり、PowerShell でローカル グループやユーザーを管理するのはかなり簡単です。しかし、セキュリティ、コンプライアンス、および事業継続性を確保するためには、これらすべての変更を監査することが不可欠です。ネイティブ監査の設定方法については、Windows Server Auditing Quick Reference Guide を参照してください。
共有する
もっと詳しく
著者について
Jeff Melnick
システムエンジニアリング ディレクター
Jeff は Netwrix における Global Solutions Engineering の元ディレクターです。彼は長年にわたり Netwrix のブログ執筆者であり、講演者、プレゼンターとしても活躍しています。Netwrix のブログでは、Jeff がシステム管理の体験を大きく改善できるライフハックや、役立つヒント、ちょっとしたコツを共有しています。