Проблема с принятым ответом заключается в том, что имя учетной записи должно быть разрешено на локальной машине, на которой выполняется код.
Если вы читаете ACL на удаленном компьютере, вы, вероятно, не сможете разрешить доменные SID / локальные SID на удаленном компьютере. Следующее использует WMI и принимает параметр удаленного компьютера и SID, который вы хотите разрешить удаленному компьютеру.
/// <summary>
/// Returns the Account name for the specified SID
// using WMI against the specified remote machine
/// </summary>
private string RemoteSID2AccountName(String MachineName, String SIDString)
{
ManagementScope oScope = new ManagementScope(@"\\" + MachineName +
@"\root\cimv2");
ManagementPath oPath = new ManagementPath("Win32_SID.SID='" + SIDString + "'");
ManagementObject oObject = new ManagementObject(oScope, oPath, null);
return oObject["AccountName"].ToString();
}