2016-09-09 3 views
0

나는 컴퓨터 한 뭉치를 설치하고있다, 이것을 위해 나는 powershell를 사용하고있다.
관리자 계정을 설정하려면 net 명령을 사용했지만 덴마크어 OS가있는 PC와 영어가있는 명령이 약간 다릅니다.그물 사용자 다국어 언어를 사용하여

덴마크어 버전 :
net localgroup Administratorer username /add

영어 버전 :
net localgroup Administrators username /add

이 내가 스크립트의 두 가지 버전이 필요 의미합니다. 다른 방법을 택할 수 있습니까? 아마도 일부 ID를 사용하여 관리자 그룹을 식별 할 수 있습니까? 대신 administator

답변

2

의 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

감사 net localgroup를 호출 할 때 그때부터

$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 사용할 수 있습니다, 작업 :) 대답에 대한 – Bok

1

한 가지 해결책은 Powershell을 통해 .NET 프레임 워크를 활용하여 관리자 그룹의 지역화 된 이름을 검색하는 것입니다. 관리자 그룹의 SID를 하드 코드하는 것보다 나은 것으로 나타났습니다.

net localgroup $adminsname /add <user> 
+0

감사 보인다 :) 내가하는 oneliner 더 솔루션 마티아스을 선택하고 있지만, 어쨌든 고마워요! – Bok

관련 문제