로컬 관리자에게 도메인 그룹을 자동으로 추가하려고 시도하는 동안 워크스테이션 설치 스크립트에서 다음 catch22를 발견했습니다.
내가 겪고 있는 문제는 다음과 같습니다.
- 로컬 관리자를 사용하는 경우 로컬 그룹에 사용자를 추가할 수 있는 권한이 있지만 도메인에 연결하려면 도메인 자격 증명을 제공해야 합니다.
- 도메인 사용자를 사용하면 AD에 연결할 수 있지만 이 작업을 수행하는 사용자는 아직 로컬 관리자가 아니므로 아직 로컬 그룹을 수정할 수 없습니다.
나는 GMP 환경에 있으므로 규칙과 규정은 정말! 다른 가능한 경로를 제한하는 엄격함.
- 역할이 분할되어 도메인 관리자에 액세스할 수 없습니다.
- 그룹 정책에서 그룹을 푸시할 수 있는 OU 변경은 허용되지 않습니다.
- 원격 스크립트와 함께 PowerShell을 사용하는 것은 허용되지 않습니다.
compmgmt.msc를 사용할 때 수동으로 해결하고 요청 시 필요한 자격 증명을 제공하는 것은 상당히 쉽습니다. 하지만 수동 단계를 추가하지 않고 전체 설치를 최대한 자동화하고 싶습니다.
몇 가지 세부정보:
- 워크스테이션의 OS는 Windows 10입니다.
- 내가 사용하는 스크립트는 PowerShell입니다
- 스크립트가 높은 권한을 가진 로컬 관리자 계정으로 실행 중입니다.
- 워크스테이션이 이미 도메인에 가입되어 있습니다.
- 워크스테이션을 도메인에 가입시키는 데 사용된 계정이 도메인 관리자가 아닙니다.
- 내 도메인 계정에 대한 관리자 권한을 가지려면 우리 부서의 그룹을 로컬 관리자 그룹에 추가해야 합니다.
로컬 관리자 그룹에 그룹을 추가하는 데 사용하는 코드는 다음과 같습니다.
$de = [ADSI]"WinNT://$Env:ComputerName/Administrators,group" $de.psbase.Invoke("Add",([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path)
이 코드는 도메인 계정으로 실행할 때 매력처럼 작동합니다.그리고로컬 관리자입니다.
이것은 새로운 워크스테이션을 설치하는 데 사용되므로 도메인 계정으로 실행할 수 있습니다.또는로컬 관리자.
전자의 경우 $de.psbase.Invoke("Add",
부분이 실패합니다.
후자의 경우 ([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path
실패합니다.
start-process
다른 보안 컨텍스트를 얻기 위해 옵션 과 함께 cmdlet을 사용해 보았지만 –verb runas
위와 같은 문제가 발생했습니다.
내가 할 수 있는 방법이 없을까?
- 도메인 사용자의 보안 컨텍스트에서만 해결하고
([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path
이를 로컬 관리자의 보안 컨텍스트에서 실행 중인 나머지 스크립트에 전달합니다(commgmt.msc가 수행하는 방식과 유사함).
또는
- 도메인에 연결할 필요 없이 하드코딩된 데이터에서 [ADSI] 개체 구축
또는
- 내가 생각하지 못한 또 다른 눈부시게 분명한 것
답변1
파일을 통해 도메인 그룹을 로컬 그룹에 추가할 수 있으므로 unattend.xml
스크립팅이 필요하지 않습니다.
SIM(시스템 이미지 관리자)을 통해 Unattend.xml 편집
SIM을 연 후 unattend.xml
창의 왼쪽 하단에서 에 대한 노드를 찾으세요 Microsoft-Windows-Shell-Setup
.(메모:이미지 아키텍처에 해당하는 노드(예: 64비트 플랫폼의 경우 amd64)를 사용해야 합니다.Shell-Setup 노드를 확장한 다음 UserAccounts
, DomainAccounts
및 을 확장합니다 DomainAccountList
. 노드 를 마우스 오른쪽 버튼으로 클릭 DomainAccount
하고 7(oobeSystem)을 전달하는 설정을 추가하도록 선택합니다.
SIM 창 중앙에서 새로 추가된 노드를 구성해야 합니다. 노드 의 값 DomainAccountList
에 도메인 이름을 입력합니다 Domain
.
DomainAccount
노드 에서 Group
값은 수정하려는 로컬 그룹의 이름으로 설정되어야 합니다. 이 경우관리자. 값 Name
은 로컬 그룹에 추가하려는 도메인 그룹의 이름으로 설정되어야 합니다.
Unattend.xml 수동 편집(권장하지 않음)
unattend.xml
즐겨 사용하는 텍스트 편집기에서 파일을 수동으로 편집할 수도 있습니다 . <settings>
해당 노드를 찾으세요 .oobe시스템통과하다. 아래 노드 를 복사하여 노드 뒤의 노드 DomainAccounts
에 배치할 수 있습니다 . 노드 에 지정된 도메인 이름과 함께 노드 의 및 노드를 수정해야 합니다 .unattend.xml
AdministratorPassword
Group
Name
DomainAccount
Domain
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" ... >
<UserAccounts>
<AdministratorPassword>
<Value>mylocaladminpassword</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
<DomainAccounts>
<DomainAccountList wcm:action="add">
<DomainAccount wcm:action="add">
<Group>Administrators</Group>
<Name>Name-Of-Domain-Group-To-Add</Name>
</DomainAccount>
<Domain>DOMAIN_NAME_HERE</Domain>
</DomainAccountList>
</DomainAccounts>