2016-09-09 45 views
0

我設置了一堆計算機,爲此我使用的是PowerShell。
要設置管理員帳戶,我使用了net命令,但是因爲我使用丹麥語操作系統獲得了一些PC,而使用英語的命令略有不同。使用網絡用戶多語言語言

丹麥語版本:
net localgroup Administratorer username /add

英文版:
net localgroup Administrators username /add

這意味着我需要的腳本的兩個版本。是否有可能採取另一種方式?也許使用一些ID來標識管理員組?就像寫3334來代替administator

回答

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 
+0

感謝時,既可以使用$adminsName,似乎工作:) – Bok

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] 

從此,你可以調用net localgroup

net localgroup $adminsname /add <user> 
+0

感謝您的回答:)我選擇馬蒂亞斯一個更oneliner的解決方案,但無論如何謝謝你! – Bok