执行脚本的计算机位于一个域中,我将其称为内部域。被测试的用户位于另一个(外部)域中。
我编写了一个脚本来检查用户是否存在于两个域中。以下是脚本中的一段代码,它不会引起问题。
$domain = ‘domain.com’;
$user = ‘username’;
$objuser = New-Object System.Security.Principal.NTAccount($domain, $user);
$objUser.Translate([System.Security.Principal.SecurityIdentifier]) > $nil;
在我尝试执行第三行之前,出现了以下问题:
$objuser = New-Object System.Security.Principal.NTAccount('[email protected]');
我现在遇到的问题是某些来自外部域的用户在 Windows 中无法正确显示。
一个很好的例子是文件属性安全选项卡。用户显示为
领域\[电子邮件保护]而不仅仅是域名\用户名
这会导致各种奇怪的事情,例如想要访问该文件夹的用户失去对它的权限。
有没有办法恢复正常行为?遗憾的是,重新启动机器不是一种选择。
答案1
答案2
我找到了解决方案。据我所知,我需要告诉服务器再次获取 SID,而不是使用 cashe。
使用 Microsoft 提供的此支持链接可立即解决问题,无需重新启动,并且剩余一个具有错误用户名的用户也可自行修复。
http://support.microsoft.com/kb/946358
问题解决后,再次启用它可能是安全的。