# encoding: ascii
# api: powershell
# title: ConvertTo-Hex
# description: This scConvertTo-Hex S-1-5-21-1773758559-3836983732-668865386-6433 script will convert a security identifier (SID) in string format to its hexadecimal equivalent. e.g.
# version: 0.1
# author: S-1-5-21-2398571
# license: CC0
# x-poshcode-id: 5945
# x-archived: 2015-07-29T08:02:55
# x-published: 2015-07-27T11:54:00
#
# 010500000000000515000000BB0B4815C33A022074381B7409050000
#
# Ported from C# technique found here: http://forums.asp.net/p/1298956/2529558.aspx
param ( [string]$SidString )
# Create SID .NET object using SID string provided
$sid = New-Object system.Security.Principal.SecurityIdentifier $sidstring
# Create a byte array of the proper length
$sidBytes = New-Object byte[] $sid.BinaryLength
#Convert to bytes
$sid.GetBinaryForm( $sidBytes, 0 )
# Iterate through bytes, converting each to the hexidecimal equivalent
$hexArr = $sidBytes | ForEach-Object { $_.ToString("X2") }
# Join the hex array into a single string for output
$hexArr -join ''