昨日の「Hey, Scripting Guy」!*1を読んでいて知ったのだが、最新のPowershell*2ではローカルユーザーを管理できる。
実行環境
Microsoft Windows 10 Pro (10.0.14393) Major Minor Build Revision ----- ----- ----- -------- 5 1 14393 576
実際のコマンド
まずはどんなコマンドがあるか、手元の環境で確認してみる。
PS D:\SandBox> # とりあえずコマンドを引く PS D:\SandBox> Get-Command Get-LocalUser CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Get-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts PS D:\SandBox> # 同じSourceに似たようなコマンドがないか調べる PS D:\SandBox> get-command -Module Microsoft.PowerShell.LocalAccounts CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Add-LocalGroupMember 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Disable-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Enable-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Get-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Get-LocalGroupMember 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Get-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet New-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet New-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Remove-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Remove-LocalGroupMember 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Remove-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Rename-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Rename-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Set-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Set-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts
続けていくつか使ってみる。
PS D:\SandBox> #ローカルユーザーの一覧から最初3つを取得 PS D:\SandBox> (Get-LocalUser)[1..3] Name Enabled Description ---- ------- ----------- DefaultAccount False システムで管理されるユーザー アカウントです。 Guest False コンピューター/ドメインへのゲスト アクセス用 (ビルトイン アカウント) HomeGroupUser$ True コンピューターへのホームグループ アクセス用のビルトイン アカウント PS D:\SandBox> #ローカルグループの一覧から最初3つを取得 PS D:\SandBox> (Get-LocalGroup)[1..3] Name Description ---- ----------- WinRMRemoteWMIUsers__ Members of this group can access WMI resources over management protocols (such a... __vmware__ VMware User Group Access Control Assistance Operators このグループのメンバーは、このコンピューター上のリソースの認証属性およびアクセス... PS D:\SandBox> #Administratorsグループのメンバーを取得 PS D:\SandBox> Get-LocalGroupMember Administrators ObjectClass Name PrincipalSource ----------- ---- --------------- ユーザー examplePC\Administrator Local
もっと詳しい使い方は公式のリファレンスを読めばよい。 Microsoft.PowerShell.LocalAccounts
参考
PowerTip: Get a list of local Users in Windows 10 / Windows Server 2016 – Hey, Scripting Guy! Blog ⇒元ネタ
Tech TIPS:Windowsのnet userコマンドでユーザーアカウントを管理する - @IT ⇒該当コマンドレットが利用できない場合、昔ながらのnet user コマンドを使う。
余談
bashならどうするの?というメモ
ユーザーの情報を取得したいだけならgetentコマンドを利用する。/etc/groupだけではわからないようなLDAP連携の値も持ってこれる。
- linux でグループに所属するユーザーを調べて一覧をする。 - それマグで!
- Linuxコマンド【getent】 - ユーザーやグループの一覧を表示 - Linux入門 - Webkaru
- Man page of GETENT
変更を加えたいなら
- user(add|del|mod)
- group(add|del|mod)