2016-09-09 24 views
0

私はコンピュータの束を設定しています。これは私がpowershellを使用しています。
管理者アカウントを設定するには、netコマンドを使用しましたが、デンマーク語OSのあるPCと英語の英語のコマンドが少し異なります。ネットユーザーの多言語を使用して

デンマーク語版:
net localgroup Administratorer username /add

英語版:
net localgroup Administrators username /add

これは、私は、スクリプトの2つのバージョンを必要とすることを意味します。別のものを取ることは可能ですか?おそらくいくつかのIDを使用して管理者グループを特定していますか?代わりにadministator

答えて

2

のビルトインAdministratorsグループに3334を書き込むことのように実際にインストール言語に応じて、異なる名前を持っていますが、グループのセキュリティ識別子は常に同じである可能性があります

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を使用するか、:)私はonelinerより解決のためにマティアスを選択しています答え:)のため – Bok

1

.NET Framework(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

おかげで動作しているようですが、とにかくありがとう! – Bok