PowerShell을 사용하여 로컬 사용자 및 그룹 나열

Marion Paul Kenneth Mendoza 2023년6월20일
PowerShell을 사용하여 로컬 사용자 및 그룹 나열

이 문서에서는 PowerShell을 사용하여 머신의 로컬 사용자 및 그룹을 쿼리하는 방법에 대해 설명합니다.

PowerShell을 사용하여 로컬 사용자 및 그룹 나열

네트워크 문제로 인해 도메인 연결이 끊긴 경우 대부분의 경우 인증 서버에 연결할 수 없고 사용할 수 없기 때문에 도메인 자격 증명이 작동하지 않습니다. 따라서 최상의 표준으로 로컬 자격 증명을 편리하게 사용할 수 있어야 하며 관리자로서 이러한 자격 증명은 로컬 관리자 그룹의 일부입니다.

특히 이러한 명령을 사용하여 여러 시스템을 대량으로 처리할 수 있기 때문에 PowerShell 스크립팅을 사용하여 관리자 자격 증명이 있는지 확인할 수 있습니다. 다음 섹션에서는 PowerShell을 사용하여 로컬 사용자 및 그룹을 쿼리하는 여러 가지 방법에 대해 설명합니다.

ADSI로 사용자의 로컬 그룹 구성원 자격 얻기

Microsoft에 따르면 ADSI(Active Directory Service Interface)는 디렉터리 서비스에 액세스하는 데 사용되는 내장 COM 인터페이스입니다. 예를 들어 ADSI 라이브러리에는 현재 사용자의 그룹 구성원을 쿼리하기 위해 Windows PowerShell에서 실행할 수 있는 [ADSI] 클래스가 있습니다.

예제 코드:

$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | Where {$_.SchemaClassName -eq 'user'} | Foreach-Object {
    $groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
    $_ | Select-Object @{Name='UserName';Expression={$_.Name}},@{Name='Group';Expression={$groups -join ';'}}
}

출력:

UserName           Groups
--------           ------
Administrator      Administrators
DefaultAccount     System Managed Accounts Group
Guest              Guests
user                 Users

WMI로 사용자의 로컬 그룹 구성원 자격 얻기

WMI는 Windows 기반 컴퓨터를 사용하여 네트워크에서 하드웨어 및 소프트웨어 관리를 간소화하기 위한 지침 모음이며 Microsoft의 최신 운영 체제에 사전 설치되어 있습니다. 공급업체는 Windows 10 이전의 OS에서 WMIC(WMI 명령줄)로 알려진 WMI용 명령줄 인터페이스(CLI)를 제공했습니다.

WMIC는 이전 Windows 버전의 기존 셸 및 유틸리티 명령과 호환됩니다.

예제 코드:

Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'"

출력:

AccountType : 512
Caption     : DESKTOP-7GI1260\Administrator
Domain      : DESKTOP-7GI1260
SID         : S-1-5-21-3848050931-464278446-3624840-500
FullName    :
Name        : Administrator

AccountType : 512
Caption     : DESKTOP-7GI1260\user
Domain      : DESKTOP-7GI1260
SID         : S-1-5-21-3848050931-464278446-3624840-1003
FullName    :
Name        : user

-Filter 매개변수는 로컬에서 생성된 계정만 필터링하기 위해 사용됩니다. 따라서 도메인 설정 시 기본 계정 생성을 통해 형성되지 않습니다.

Get-Local 명령으로 사용자의 로컬 그룹 멤버쉽 얻기

PowerShell 5.1은 이제 Microsoft.PowerShell.LocalAccounts 모듈에서 Get-LocalGroupMember, Get-LocalGroup, Get-LocalUser 및 기타 Get-Local* 명령을 사용하여 로컬 사용자를 가져오고 매핑할 수 있습니다. 여러 떼.

이 새 명령을 사용하면 스크립트를 작성할 때 더 간결해집니다.

예제 코드:

Get-LocalGroupMember -name users

출력:

ObjectClass Name                             PrincipalSource
----------- ----                             ---------------
User        DESKTOP-7GI1260\kentm            MicrosoftAccount
Group       NT AUTHORITY\Authenticated Users Unknown
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell User