powershell - 로컬 사용자 및 해당 그룹 나열
모든 로컬 사용자 및 관련 그룹(사용자, 파워 사용자, 관리자 등)과 함께 보고서를 작성하고 싶습니다.
나는 다음과 같은 방법으로 사용자를 얻습니다.
$adsi = [ADSI]"WinNT://."
$adsi.psbase.children | where {$_.psbase.schemaClassName -match "user"} | select @{n="Name";e={$_.name}}
어떻게 그들의 그룹을 회수해야 할지 모르겠어요잘 부탁드립니다.
Google 사용자의 경우 사용자 목록을 가져오는 또 다른 방법은 다음과 같습니다.
Get-WmiObject -Class Win32_UserAccount
출처: http://buckeyejeeps.com/blog/ ?p=764
$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 @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -join ';'}}
}
2010년의 우수한 답변에 대한 대안으로 업데이트:
이제 사용할 수 있습니다.Get-LocalGroupMember
,Get-LocalGroup
,Get-LocalUser
모듈에서 사용자 및 그룹을 가져오고 매핑하는 등의 작업을 수행할 수 있습니다. PowerShell 5.1 이상에서 사용할 수 있습니다.
예:
PS C:\WINDOWS\system32> Get-LocalGroupMember -name users
ObjectClass Name PrincipalSource
----------- ---- ---------------
User DESKTOP-R05QDNL\someUser1 Local
User DESKTOP-R05QDNL\someUser2 MicrosoftAccount
Group NT AUTHORITY\INTERACTIVE Unknown
당신은 그것과 결합할 수 있습니다.Get-LocalUser
별칭을 대신 사용할 수도 있습니다.대부분의 새 cmdlet에 대한 별칭이 있습니다.
일부에서 의문을 제기하는 경우(이것에 대해 질문하지 않은 것으로 알고 있음) 사용자를 추가하는 것은 예를 들어 다음과 같이 수행할 수 있습니다.
$description = "Netshare user"
$userName = "Test User"
$user = "test.user"
$pwd = "pwd123"
New-LocalUser $user -Password (ConvertTo-SecureString $pwd -AsPlainText -Force) -FullName $userName -Description $description
이를 통해 로컬 사용자 및 사용자가 속한 그룹이 포함된 배열을 가져올 수 있습니다.
Get-LocalUser |
ForEach-Object {
$user = $_
return [PSCustomObject]@{
"User" = $user.Name
"Groups" = Get-LocalGroup | Where-Object { $user.SID -in ($_ | Get-LocalGroupMember | Select-Object -ExpandProperty "SID") } | Select-Object -ExpandProperty "Name"
}
}
로컬 그룹 및 해당 멤버와 함께 배열을 가져오는 방법
Get-LocalGroup |
ForEach-Object {
$group = $_
return [PSCustomObject]@{
"Group" = $group.Name
"Members" = $group | Get-LocalGroupMember | Select-Object -ExpandProperty "Name"
}
}
mjswensen의 답변을 확장하면 필터가 없는 명령은 몇 분이 걸릴 수 있지만 필터링된 명령은 거의 즉각적입니다.
PowerShell - 로컬 사용자 계정 나열
패스트웨이
Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'" | select name, fullname
슬로웨이
Get-WmiObject -Class Win32_UserAccount |? {$_.localaccount -eq $true} | select name, fullname
이것을 사용해 보십시오:),
Get-LocalGroup | %{ $groups = "$(Get-LocalGroupMember -Group $_.Name | %{ $_.Name } | Out-String)"; Write-Output "$($_.Name)>`r`n$($groups)`r`n" }
언급URL : https://stackoverflow.com/questions/4548476/powershell-list-local-users-and-their-groups
'code' 카테고리의 다른 글
ER_PARSE_ERROR: SQL 구문에 오류가 있습니다. 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서에서 확인하십시오. (0) | 2023.09.05 |
---|---|
MariaDB 111 "연결 거부됨" (0) | 2023.09.05 |
Json 데이터 유형이 mariadb에서 작동하지 않습니다. (0) | 2023.09.05 |
Excel 2007으로 Office Automation을 하려고 하지만 Excel 2003을 계속 사용합니다. (0) | 2023.09.05 |
appendChild에서 추가한 원하지 않는(빈) xmlns 특성 제거 (0) | 2023.09.05 |