使用网络用户多语言

时间:2016-09-09 08:16:37

标签: powershell multilingual

我正在设置一堆计算机,为此我使用的是powershell 为了设置管理员帐户,我使用了net命令,但是当我得到一些带有丹麦语操作系统的PC和一些带有英语的命令时,命令略有不同。

丹麦语版本:
net localgroup Administratorer username /add

英文版:
net localgroup Administrators username /add

这意味着我需要两个版本的脚本。是否有可能采取另一种方法?也许使用一些ID来识别管理员组?比如写3334而不是管理员

2 个答案:

答案 0 :(得分:2)

内置的Administrators组可能确实具有不同的名称,具体取决于安装语言,但组的安全标识符始终相同:

S-1-5-32-544

要查找本地名称,请使用WMI:

$AdminGroupName = (Get-WmiObject -Class Win32_Group -Filter 'LocalAccount = True AND SID = "S-1-5-32-544"').Name

现在你可以做到:

net localgroup $AdminGroupName username /add

答案 1 :(得分:1)

一种解决方案可能是利用.NET框架(通过Powershell)来检索管理员组的本地化名称。我发现它比硬编码管理员组的SID更好,即使它永远不会改变。

$adminGroupSid = [System.Security.Principal.SecurityIdentifier]::new([System.Security.Principal.WellKnownSidType]::BuiltinAdministratorsSid,$null)
$adminGroupName = $adminGroupSid.Translate([System.Security.Principal.NTAccount]).ToString()
$adminsName = ($adminGroupName -split "\\")[1]

从那时起,您可以在调用$adminsName

时使用net localgroup
net localgroup $adminsname /add <user>