function Bindings(){ return [System.Reflection.BindingFlags]::CreateInstance -bor [System.Reflection.BindingFlags]::GetField -bor [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::NonPublic; } function GetFieldValue([object]$o, [string]$fieldName){ $bindings = Bindings; return $o.GetType().GetField($fieldName, $bindings).GetValue($o); } function ConvertTo-UnsecureString([System.Security.SecureString]$string){ $intptr = [System.IntPtr]::Zero; $unmanagedString = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($string); $unsecureString = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($unmanagedString); [System.Runtime.InteropServices.Marshal]::ZeroFreeGlobalAllocUnicode($unmanagedString); return $unsecureString; } Get-SPManagedAccount | % { "$($_.UserName): $(ConvertTo-UnsecureString (GetFieldValue $_ 'm_Password').SecureStringValue)" }