Computer >> 컴퓨터 >  >> 체계 >> Windows Server

PowerShell로 로컬 사용자 및 그룹 관리

최근 Microsoft는 Microsoft.PowerShell.LocalAccounts라는 Windows 로컬 사용자 및 그룹을 관리하기 위해 표준 PowerShell 모듈을 추가했습니다. . 이전에는 이 모듈을 수동으로 다운로드하여 PowerShell로 가져와야 했습니다. 이제 LocalAccounts 모듈은 PowerShell 5.1의 일부로 Windows Server 2016 및 Windows 10에서 기본적으로 사용할 수 있습니다. 이전 Windows 버전에서 사용하려면 Windows Management Framework 5.1을 설치해야 합니다.

LocalAccounts PowerShell 모듈

LocalAccounts 모듈에는 15개의 cmdlet이 있습니다. 다음과 같이 모듈 cmdlet의 전체 목록을 표시할 수 있습니다.

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 – 사용자 설정을 수정합니다.

Windows 10을 실행하는 컴퓨터에서 LocalAccounts 모듈의 PowerShell cmdlet을 사용하여 로컬 사용자 또는 그룹을 관리하는 몇 가지 일반적인 작업을 살펴보겠습니다.

PowerShell을 사용하여 Windows 로컬 사용자를 관리하는 방법

Windows의 기존 로컬 사용자 목록 표시:

Get-LocalUser

PowerShell로 로컬 사용자 및 그룹 관리

보시다시피 컴퓨터에는 6개의 로컬 사용자 계정이 있으며 그 중 4개는 비활성화되어 있습니다(Enabled=False).

로컬 계정의 모든 속성을 표시하려면(AD 도메인 사용자에 대한 정보를 표시하는 데 사용되는 Get-ADUser cmdlet과 유사) 다음 명령을 실행합니다.

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 cmdlet을 사용하여 새 로컬 사용자를 만들어 보겠습니다. 이 cmdlet을 사용하면 다음 유형의 계정을 만들 수 있습니다.

  • Windows 로컬 계정
  • Microsoft 계정,
  • Azure AD 계정.

New-LocalUser cmdlet을 사용하여 사용자 계정을 만들 때 일반 텍스트의 사용자 암호를 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 cmdlet을 사용합니다.

사용자의 암호를 변경하려면 LocalUser cmdlet을 사용하십시오(새 암호를 이미 SecureString으로 변환했다고 가정).

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

PowerShell로 로컬 사용자 및 그룹 관리

"암호가 만료되지 않음" 플래그를 설정하려면 다음 명령을 실행하십시오.

Set-LocalUser -Name john –PasswordNeverExpires $False

보시다시피 AD 사용자 개체 속성을 관리할 때와 같이 UserAccountControl 값을 변환할 필요가 없습니다.

기억하시겠지만 Microsoft 계정을 사용하여 Windows 10에 로그인할 수 있습니다. 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을 사용하여 Active Directory 그룹 관리 문서에서 찾을 수 있습니다.

컴퓨터가 AD 도메인에 가입되어 있으면 도메인 계정과 그룹을 로컬 그룹에 추가할 수 있습니다. 이를 수행하려면 DomainName\jonhl 또는 DomainName\'domain admins' 형식으로 지정합니다.

PowerShell로 로컬 사용자 및 그룹 관리

다음 파이프라인을 사용하여 그룹에 사용자를 추가할 수도 있습니다(로컬 관리자 그룹에 사용자를 추가합니다).

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

로컬 그룹의 사용자 목록 표시:

Get-LocalGroupMember -Group 'RemoteSupport'

보시다시피 로컬 계정(PrincipalSource – Local)만 사용하고 있습니다. 단, 도메인 계정(domain), 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 cmdlet을 사용합니다.

예를 들어 원격 컴퓨터의 로컬 그룹에 계정 목록을 만들어야 합니다.

$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"