Q: Trying to get permissions from printer, view as username not sid I have a script to get permissions from printers on my printer server, but the output is returning SIDs, is there something that I can pipe in to get the user names as the output? I'll be doing this for multiple printers at a time so running each SID through a script to convert them is overly time consuming. Below is my script. 
(Get-Printer 'brem-pt-8106H' -Full).PermissionSDDL


A: Assumption: user exists in the domain
#Requires -Version 5
$SID = [System.Security.Principal.SecurityIdentifier]::new(
    (Get-Printer 'brem-pt-8106H' -Full).PermissionSDDL
)
$User = ($SID.Translate([System.Security.Principal.NTAccount])).Value


Cleaned up as a function you can pipe to:
Function Get-UsernameFromSddl
{
    [CmdletBinding()]
    [OutputType([String])]
    Param(
        [Parameter(Mandatory,ValueFromPipeline,Position=0)]
        [String]$Sddl
    )

    $Sid = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' -ArgumentList $Sddl
    $User = $Sid.Translate([System.Security.Principal.NTAccount])

    Return $User.Value
}

