Skip to content

Commit 19437b8

Browse files
committed
Update Show-UserSID
output format feature added
1 parent e7e9a47 commit 19437b8

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

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

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,42 @@ Function Show-UserSID {
1010
Specifies the user name for which to retrieve the SID.
1111
1212
.EXAMPLE
13-
Show-UserSID -UserName "your_user"
13+
"your_user" | Show-UserSID
14+
Show-UserSID -UserName "your_user" -OutputFormat List
1415
1516
.NOTES
16-
v0.0.2
17+
v0.0.3
1718
#>
1819
[CmdletBinding()]
1920
param (
20-
[Parameter(Mandatory, Position = 0, ValueFromPipeline = $true, HelpMessage = "Specify the user name")]
21+
[Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true, HelpMessage = "Specify the user name")]
2122
[ValidateNotNullOrEmpty()]
2223
[Alias("u")]
23-
[string]$UserName
24+
[string]$UserName,
25+
26+
[Parameter(Mandatory = $false, Position = 1, HelpMessage = "Specify the output format. Options: 'Table' (default), 'List', 'JSON'")]
27+
[ValidateSet("Table", "List", "JSON")]
28+
[string]$OutputFormat = "Table"
2429
)
25-
process {
30+
PROCESS {
2631
try {
2732
$NTAccount = New-Object System.Security.Principal.NTAccount($UserName)
2833
$UserSID = $NTAccount.Translate([System.Security.Principal.SecurityIdentifier]).Value
2934
$Result = [PSCustomObject]@{
3035
UserName = $UserName
3136
SID = $UserSID
3237
}
33-
Write-Output -InputObject $Result
38+
switch ($OutputFormat) {
39+
"List" {
40+
Write-Output $Result.PSObject.Properties | ForEach-Object { "$($_.Name): $($_.Value)" }
41+
}
42+
"JSON" {
43+
$Result | ConvertTo-Json
44+
}
45+
default {
46+
Write-Output $Result | Format-Table -AutoSize
47+
}
48+
}
3449
}
3550
catch {
3651
Write-Error -Message "Failed to get SID for user '$UserName'. $_"

0 commit comments

Comments
 (0)