Недавно я увидел, что приложение не может выполнять определенные проверки / манипуляции со встроенными группами / локальными политиками в локализованной версии Windows Server 2012 R2 (французский, немецкий). В локализованных версиях Windows названия групп и политик переведены на язык локализации. Это привело меня к вопросу: какие варианты предлагает Microsoft для управления этими объектами / адресации, не полагаясь на локализованные имена? Очевидно, что есть способ сделать это, иначе с локализованными версиями должно возникнуть множество проблем.
Может ли кто-нибудь сказать мне, что доступно для обращения к этим группам независимо от локализованного имени? (RID? Некоторые функции API?)
Глядя на конкретную проблему, которую я видел с локализованными версиями Windows, кажется, что могут быть некоторые проблемы с языками, в которых используются буквы с диакритическими символами.
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)
Что касается имен политик = не могли бы вы поделиться примером того, что вы на самом деле пытаетесь сделать?