Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

PowerShellを使用したローカルユーザーとグループの管理

最近、Microsoftは、 Microsoft.PowerShell.LocalAccountsと呼ばれるWindowsローカルユーザーおよびグループを管理するための標準のPowerShellモジュールを追加しました。 。以前は、このモジュールを手動でダウンロードしてPowerShellにインポートする必要がありました。現在、LocalAccountsモジュールは、PowerShell5.1の一部としてWindowsServer2016およびWindows10でデフォルトで使用できます。以前のバージョンのWindowsで使用するには、Windows ManagementFramework5.1をインストールする必要があります。

LocalAccountsPowerShellモジュール

LocalAccountsモジュールには15個のコマンドレットがあります。モジュールコマンドレットの完全なリストは、次のように表示できます。

Get-Command -Module Microsoft.PowerShell.LocalAccounts

PowerShellを使用したローカルユーザーとグループの管理

  1. Add-LocalGroupMember –ユーザーをローカルグループに追加します。
  2. Disable-LocalUser –ローカルユーザーアカウントを無効にします。
  3. Enable-LocalUser –アカウントを有効化(ロック解除)します。
  4. Get-LocalGroup –ローカルグループに関する情報を取得します。
  5. Get-LocalGroupMember –ローカルグループのユーザーのリストを表示します。
  6. Get-LocalUser –ローカルユーザーに関する情報を表示します。
  7. New-LocalGroup –新しいローカルグループを作成します。
  8. New-LocalUser –ローカルユーザーを作成します。
  9. Remove-LocalGroup –ローカルグループを削除します;
  10. Remove-LocalGroupMember –ローカルグループからメンバーを削除します。
  11. Remove-LocalUser –ローカルユーザーを削除します;
  12. Rename-LocalGroup –ローカルグループの名前を変更します。
  13. Rename-LocalUser –ユーザーの名前を変更します;
  14. Set-LocalGroup –グループ設定を変更します。
  15. Set-LocalUser –ユーザー設定を変更します。

Windows10を実行しているコンピューターでLocalAccountsモジュールのPowerShellコマンドレットを使用してローカルユーザーまたはグループを管理するためのいくつかの一般的なタスクを考えてみましょう。

PowerShellを使用してWindowsローカルユーザーを管理する方法

Windowsの既存のローカルユーザーのリストを表示します:

Get-LocalUser

PowerShellを使用したローカルユーザーとグループの管理

ご覧のとおり、コンピューターには6つのローカルユーザーアカウントがあり、そのうち4つは無効になっています(Enabled =False)。

ローカルアカウントのすべてのプロパティを表示するには(ADドメインユーザーに関する情報を表示するために使用されるGet-ADUserコマンドレットと同様)、次のコマンドを実行します。

Get-LocalUser -Name root | Select-Object *

AccountExpires :
Description :
Enabled : True
FullName :
PasswordChangeableDate : 3/12/2019 10:14:29 PM
PasswordExpires :
UserMayChangePassword : True
PasswordRequired : False
PasswordLastSet : 3/11/2019 10:14:29 PM
LastLogon : 3/11/2019 4:18:17 PM
Name : root
SID : S-1-5-21-2605456602-2293283241-3832290805-1001
PrincipalSource : Local
ObjectClass : User

最後のパスワード変更日などの特定のユーザー属性を取得するには、次のコマンドを実行します。

Get-LocalUser -Name root | Select-Object PasswordLastSet

PowerShellを使用したローカルユーザーとグループの管理

New-LocalUserコマンドレットを使用して新しいローカルユーザーを作成しましょう。このコマンドレットを使用すると、次の種類のアカウントを作成できます。

  • Windowsローカルアカウント;
  • Microsoftアカウント;
  • AzureADアカウント。

New-LocalUserコマンドレットを使用してユーザーアカウントを作成する場合、Password引数としてプレーンテキストでユーザーパスワードを指定することはできません。パスワードをインタラクティブにリクエストし、事前に安全な文字列に変換する必要があります:

$UserPassword = Read-Host –AsSecureString

または、PoShコンソールで直接パスワードを指定します。

$UserPassword = ConvertTo-SecureString "H1PH0Ppa$$" -AsPlainText -Force
New-LocalUser John -Password $UserPassword -FullName "Johh Lennon" -Description "Local Account for Remote Access"

ADドメインにユーザーを作成するには、New-ADUserコマンドレットを使用します。

ユーザーのパスワードを変更するには、LocalUserコマンドレットを使用します(新しいパスワードはすでにSecureStringに変換されていると想定しています):

Set-LocalUser -Name john -Password $UserPassword –Verbose

PowerShellを使用したローカルユーザーとグループの管理

「パスワードは期限切れになりません」フラグを設定するには、次のコマンドを実行します。

Set-LocalUser -Name john –PasswordNeverExpires $False

ご覧のとおり、ADユーザーオブジェクトのプロパティを管理する場合のように、UserAccountControlの値を変換する必要はありません。

ご存知のとおり、Microsoftアカウントを使用してWindows10にログインできます。 Microsoftアカウントへの新しいユーザーログインを作成する必要がある場合は、このコマンドを実行します。 (アカウントのパスワードはMicrosoftに保存されているため、指定する必要はありません。)

New-LocalUser -Name "MicrosoftAccount\woshub@outlook.com" -Description "This is a Microsoft account"

Azure ADアカウントに関連するローカルアカウントを作成するには(たとえば、Office 365を使用している場合)、次のコマンドを実行します。

New-LocalUser -Name "AzureAD\admin@woshub.com" -Description " This is an Azure AD account"

ローカルユーザーを削除するには:

Remove-LocalUser -Name john -Verbose

PowerShellを使用してWindowsローカルグループを管理する方法

次に、コンピューター上のローカルグループのリストを表示します。

Get-LocalGroup

PowerShellを使用したローカルユーザーとグループの管理

新しいグループを作成します:

New-LocalGroup -Name RemoteSupport -Description 'Remote Support Group'

いくつかのローカルアカウントとローカル管理者のグループを新しいグループに追加します:

Add-LocalGroupMember -Group 'RemoteSupport' -Member ('john','root','Administrators') -Verbose

ヒント。 ADドメイングループにユーザーを作成、削除、または追加する方法については、PowerShellを使用したActiveDirectoryグループの管理の記事を参照してください。

コンピューターがADドメインに参加している場合は、ドメインアカウントとグループをローカルグループに追加できます。これを行うには、DomainName \jonhlまたはDomainName\’domain admins’の形式で指定します。

PowerShellを使用したローカルユーザーとグループの管理

次のパイプラインを使用して、ユーザーをグループに追加することもできます(ローカル管理者グループにユーザーを追加します):

Get-Localuser -Name john | Add-LocalGroupMember -Group 'Administrators'

ローカルグループのユーザーのリストを表示します:

Get-LocalGroupMember -Group 'RemoteSupport'

ご覧のとおり、ローカルアカウント(PrincipalSource – Local)のみを使用しています。ただし、ドメインアカウント(ドメイン)、Microsoftアカウント(MicrosoftAccount)、またはAzureアカウント(AzureAD)も使用できます。

PowerShellを使用したローカルユーザーとグループの管理

グループのリストを表示するには、特定のユーザーがメンバーになっているため、コンピューター上のすべてのローカルグループを確認する必要があります。

foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member john –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}

グループからユーザーを削除するには、次のコマンドを実行します。

Remove-LocalGroupMember -Group 'RemoteSupport' –Member john

リモートコンピューター上のローカルユーザーを管理するには、WinRMを使用してコンピューターに接続し、Invoke-CommandまたはEnter-PSSessionコマンドレットを使用します。

たとえば、リモートコンピュータのローカルグループにアカウントのリストを作成する必要があります。

$winrm_ssn = new-pssession -computer Lon-Srv01,Lon-Srv02,Lon-Srv03
invoke-command -scriptblock {Get-LocalGroupMember -Group 'RemoteSupport'} -session $winrm_ssn -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"


  1. WindowsPowerShellを使用してローカルユーザーとグループを管理する方法

    Windows PowerShellは、ローカルユーザーとグループの管理にも使用できます。 。これは、Windows10がマルチユーザーオペレーティングシステムであるという原則を裏付けています。ローカルユーザーとグループを管理するための他のGUIベースのユーティリティがあります。ただし、一部のシステム管理者は、コマンドラインユーティリティを使用してこれらのユーザーとグループを管理したい場合があります。これについては、このガイドで詳しく説明します。 WindowsPowerShellを使用してローカルユーザーとグループを管理する このガイドについては、2つのパートで説明します。それらは次

  2. Windows 10 および Windows 11 で Visual Studio Code を使用して PowerShell スクリプトを作成する方法

    Windows 10 と Windows 11 で PowerShell スクリプトを作成できることをご存知ですか? Windows に PowerShell をインストールしたので、PC で PowerShell を使用して何ができるか知りたいと思うかもしれません。このガイドでは、Visual Studio Code を使用して簡単なスクリプト ファイルを作成し、そのスクリプト ファイルを Windows 10 の PowerShell で実行する方法について説明しますおよび Windows 11. まず、基本的な PowerShell スクリプトを作成する方法を学ぶ必要があります。それを