Skip to content

Instantly share code, notes, and snippets.

@sheepla
Last active October 13, 2023 09:38
Show Gist options
  • Save sheepla/76b57fa9217844209008e9b123233aa3 to your computer and use it in GitHub Desktop.
Save sheepla/76b57fa9217844209008e9b123233aa3 to your computer and use it in GitHub Desktop.
Manage local users with Windows PowerShell

ローカルユーザーの管理

通常、GUIでローカルユーザーを管理するには、管理コンソールの「ローカルユーザーとグループ」(lusrmgr.msc)を開きます。

Win+X -> G (コンピューターの管理) -> 「ローカル ユーザーとグループ」

PowerShellの場合、名前に LocalUser と付いたコマンドレットを使えば ローカルユーザーを簡単に管理することができます。

ローカルユーザーの一覧や詳細情報の取得

Get-LocalUserでユーザーの一覧を取得します。

> Get-LocalUser

Name               Enabled Description
----               ------- -----------
sheepla            True    
Administrator      False   コンピューター/ドメインの管理用 (ビルトイン アカウント)
DefaultAccount     False   システムで管理されるユーザー アカウントです。
Guest              False   コンピューター/ドメインへのゲスト アクセス用 (ビルトイン アカウント)
WDAGUtilityAccount False   Windows Defender Application Guard シナリオでシステムによって管理および使用され…

プロパティを全て選択すると、SID(セキュリティ識別子)、パスワードの変更情報、有効期限などの詳細情報を確認できます。

> Get-LocalUser guest | select *

AccountExpires         :
Description            : コンピューター/ドメインへのゲスト アクセス用 (ビルトイン アカウント)
Enabled                : False
FullName               :
PasswordChangeableDate :
PasswordExpires        :
UserMayChangePassword  : False
PasswordRequired       : False
PasswordLastSet        :
LastLogon              :
Name                   : Guest
SID                    : S-1-5-21-4271572908-2597252306-2002241790-501
PrincipalSource        : Local
ObjectClass            : ユーザー

既存のnet userコマンドを使っても構いません。

> net user

\\MYCOMPUTER のユーザー アカウント

-------------------------------------------------------------------------------
admin                    Administrator            DefaultAccount
Guest                    WDAGUtilityAccount
コマンドは正常に終了しました。

> net user guest

ユーザー名                           Guest
フル ネーム
コメント                             コンピューター/ドメインへのゲスト アクセス用 (ビルトイン アカウント)
ユーザーのコメント
国/地域番号                          000 (システム既定)
アカウント有効                       No
アカウントの期限                     無期限

最終パスワード変更日時               12/25/2022 8:03:04 PM
パスワード有効期間                   無期限
パスワード次回変更可能日時           12/25/2022 8:03:04 PM
パスワードあり                       No
ユーザーによるパスワード変更可能     No

ログオン可能なワークステーション     すべて
ログオン スクリプト
ユーザー プロファイル
ホーム ディレクトリ
最終ログオン日時                     なし

ログオン可能時間                     すべて

所属しているローカル グループ        *Guests
所属しているグローバル グループ      *なし
コマンドは正常に終了しました。

ローカルユーザーの作成

新規で「sub」という名前のユーザーを作成し、パスワード有効期限を無期限に設定してみます。 -Descriptionパラメータに文字列を指定すれば説明文を追加できます。 実行するとパスワードの入力を促すプロンプトが表示されるので、続けてパスワードを入力します。

> New-LocalUser -Name sub -Description "サブとして使うローカルユーザーです。" -FullName "サブユーザー" -PasswordNeverExpires:$true

cmdlet New-LocalUser at command pipeline position 1
Supply values for the following parameters:
Password: ************

Name Enabled Description
---- ------- -----------
sub  True    サブユーザー

既存のnet user /add <ユーザー名> *コマンドを使うこともできます。 パスワードを平文で直接指定するには * の代わりにパスワードを記述して実行します。

net user /add user1 *

ユーザーのパスワードを入力してください:
確認のためにパスワードを再入力してください:
コマンドは正常に終了しました。

: パスワードの有効期限の設定を忘れていると、 運用中のシステムに障害が発生するなどの思わぬトラブルの原因となります。 有効期限は必ず確認しておきましょう。

既存のユーザーの設定変更

既存のユーザーの設定を変更します。 先ほど作成したユーザーのパスワードを変更不可にしてみます。

Set-LocalUser sub -UserMayChangePassword:$false

グループの管理(管理者権限の付与)

Windowsには、Unix系のOSと同様に複数のユーザーを加入させて共通した役割として管理できる「グループ」の概念があります。 Get-LocalGroupでグループの一覧を確認してみると、デフォルトでも多くのグループが用意されています。

> Get-LocalGroup

Name                                Description
----                                -----------
Access Control Assistance Operators このグループのメンバーは、このコンピューター上のリソースの認証属性およびアクセス...
Administrators                      コンピューター/ドメインに完全なアクセス権があります。
Backup Operators                    Backup Operators は、バックアップの作成またはファイルを復元するときには、セキュ...
Cryptographic Operators             メンバーは、暗号化操作の実行を許可されています。
Device Owners                       このグループのメンバーは、システム全体の設定を変更できます。
...略...

特定のユーザーに管理者権限を付与してみましょう。 Administratorsグループに対象のユーザーを追加するだけです。 Add-LocalGroupMemberを使って「sub」ユーザーに管理者権限を付与してみます。

Add-LocalGroupMember -Group Administrators -Member sub

なお、-Memberパラメータは配列を受け付けているので 特定のグループに複数のユーザーを一度に加入させることもできます。

Add-LocalGroupMember -Group Administrators -Member @("user1", "user2", "user3")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment