最近,我看到一个应用程序无法在本地化版本的 Windows Server 2012 R2(法语、德语)上使用内置组/本地策略进行某些检查/操作。在本地化的 Windows 版本中,组名和策略名被翻译成本地化语言。这让我想到一个问题:Microsoft 提供了哪些选项来操作/处理这些对象而不依赖于本地化名称?显然有某种方法可以做到这一点,否则本地化版本应该会有很多问题。
有人能告诉我有什么方法可以不考虑本地化名称来处理这些组吗?(RID?一些 API 函数?)
查看我在本地化版本的 Windows 中看到的特定问题,似乎使用带有变音符号的字母的语言可能会出现一些问题。
答案1
Windows 使用 SID 来保护安全对象。内置对象有预定义的 SID =http://support.microsoft.com/kb/243330/en-us因此您可以在检查本地化版本时使用它们。
您也可以使用以下方法>https://msdn.microsoft.com/cs-cz/library/system.security.principal.windowsbuiltinrole(v=vs.110).aspx PS中的示例:
$currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
(New-Object Security.Principal.WindowsPrincipal $currentUser).IsInRole(`
[Security.Principal.WindowsBuiltinRole]::Administrator)
关于政策名称=您能否分享一个您实际尝试做的事情的例子?