Skip to content

Commit 0ca054b

Browse files
committed
Update Show-UserSID
multiple users support
1 parent 19437b8 commit 0ca054b

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

ps-win-groups-users/Show-UserSID.ps1

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,46 @@ Function Show-UserSID {
1111
1212
.EXAMPLE
1313
"your_user" | Show-UserSID
14-
Show-UserSID -UserName "your_user" -OutputFormat List
14+
Show-UserSID -UserName "user1", "user2" -OutputFormat List
1515
1616
.NOTES
17-
v0.0.3
17+
v0.0.4
1818
#>
1919
[CmdletBinding()]
2020
param (
21-
[Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, HelpMessage = "Specify the user name")]
21+
[Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, HelpMessage = "Specify the user names")]
2222
[ValidateNotNullOrEmpty()]
2323
[Alias("u")]
24-
[string]$UserName,
24+
[string[]]$UserName,
2525

26-
[Parameter(Mandatory = $false, Position = 1, HelpMessage = "Specify the output format. Options: 'Table' (default), 'List', 'JSON'")]
26+
[Parameter(Position = 1, HelpMessage = "Specify the output format. Options: 'Table' (default), 'List', 'JSON'")]
2727
[ValidateSet("Table", "List", "JSON")]
2828
[string]$OutputFormat = "Table"
2929
)
3030
PROCESS {
31-
try {
32-
$NTAccount = New-Object System.Security.Principal.NTAccount($UserName)
33-
$UserSID = $NTAccount.Translate([System.Security.Principal.SecurityIdentifier]).Value
34-
$Result = [PSCustomObject]@{
35-
UserName = $UserName
36-
SID = $UserSID
37-
}
38-
switch ($OutputFormat) {
39-
"List" {
40-
Write-Output $Result.PSObject.Properties | ForEach-Object { "$($_.Name): $($_.Value)" }
41-
}
42-
"JSON" {
43-
$Result | ConvertTo-Json
31+
foreach ($User in $UserName) {
32+
try {
33+
$NTAccount = New-Object System.Security.Principal.NTAccount($User)
34+
$UserSID = $NTAccount.Translate([System.Security.Principal.SecurityIdentifier]).Value
35+
$Result = [PSCustomObject]@{
36+
UserName = $User
37+
SID = $UserSID
4438
}
45-
default {
46-
Write-Output $Result | Format-Table -AutoSize
39+
switch ($OutputFormat) {
40+
"List" {
41+
Write-Output $Result.PSObject.Properties | ForEach-Object { "$($_.Name): $($_.Value)" }
42+
}
43+
"JSON" {
44+
$Result | ConvertTo-Json
45+
}
46+
default {
47+
Write-Output $Result | Format-Table -AutoSize
48+
}
4749
}
4850
}
49-
}
50-
catch {
51-
Write-Error -Message "Failed to get SID for user '$UserName'. $_"
52-
return $null
51+
catch {
52+
Write-Error -Message "Failed to get SID for user '$User'. $_"
53+
}
5354
}
5455
}
5556
}

0 commit comments

Comments
 (0)