사용자 계정을 복사하기 위해 직장에서 PowerShell 스크립트를 만들고 있습니다. 스크립트는 내 테스트 서버 2016 VM에서 완벽하게 작동합니다. 또한 동료 Windows 10 PC의 작업 환경에서도 작동하지만 로컬 컴퓨터에서는 실행할 수 없습니다. 다음 오류를 반환합니다.
New-ADUser : 개체 이름에 잘못된 구문 이 있습니다. 155 char : 1 + New-ADUser -Name $ New_DisplayName @params + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : 지정되지 않음 : (CN = cnelson test ... ctions, DC = local : String) [New-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer : 8335, Microsoft.ActiveDirectory.Management.Commands.NewADUser Add-ADGroupMember : 'DC =, DC = local' 에서 ID가 'cnelsontest1'인 개체를 찾을 수 없습니다 . 줄 : 159 char : 29 + Add-ADGroupMember -Members $ Username.Text + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ + CategoryInfo : ObjectNotFound : (cnelsontest1 : ADPrincipal) [Add-ADGroupMember], ADIdentityNotFoundException + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter, Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
$params = @{'SamAccountName' = $Username.Text;
'Instance' = $AD_Account_To_Copy;
'DisplayName' = $New_DisplayName;
'GivenName' = $FirstName.Text;
'Path' = $New_Path;
'SurName' = $LastName.Text;
'ChangePasswordAtLogon' = $true;
'Enabled' = $true;
'UserPrincipalName' = $Username.Text;
'AccountPassword' = $New_Pass;
'EmailAddress' = $Username.Text + '@azcorrections.gov';
'HomePage' = $HomePage.HomePage;
'Description' = $NewDescription.Description;
'Office' = $NewOffice.Office;
'StreetAddress' = $NewStreet.StreetAddress;
'City' = $NewCity.City;
'State' = $NewState.State;
'PostalCode' = $NewPostalCode.PostalCode;
'Title' = $NewTitle.Title;
'Department' = $NewDepartment.Department;
'Company' = $NewCompany.Company;
'ScriptPath' = $NewScript.ScriptPath;
'OfficePhone' = $PhoneNumber.text;
}
New-ADUser -Name $New_DisplayName @params
PSVersion 5.1.150을 실행하고 있습니다.
내가 무엇을 놓치고 있으며 왜이 오류가 발생하는지에 대한 아이디어가 있습니까? 나는 그것이 무엇을 의미하는지, 왜 그것이 하나의 동료 컴퓨터에서 작동하지만 내 컴퓨터에서는 작동하지 않는지 전혀 모릅니다.
편집 :$params
오류 시점의 값 :
이름 값 ---- ----- AccountPassword System.Security.SecureString 설명 Chris Nelson 테스트 계정 UserPrincipalName cnelsontest1 HomePage http : // ... DisplayName cnelson test1 SamAccountName cnelsontest1 ScriptPath EmailAddress [email protected] Office 테스트 GivenName cnelson 제목 SYSTEMS / LAN ADMR 회사 사무실 전화 555-1234 StreetAddress Sesame Street PostalCode 54321 SurName test1 State Department IT ChangePasswordAtLogon True Path cnelson, OU = IT_TECHSRVS, OU = Information Technology, OU = ADMIN, OU = CENT_OFF, DC = example, DC = com City Enabled True Instance CN = test \, cnelson, OU = IT_TECHSRVS, OU = 정보 기술 , OU = ADMIN, OU = CENT_OFF, DC = example, DC = com
다음 $New_Path
과 같이 계산 합니다.
$New_Path = (Get-ADUser ($UsernameCopy.Text)).DistinguishedName -replace '^.*?,', ''
의 값에서 일반 이름 부분을 제거하는 방법 $AD_Account_To_Copy
은 결함이 있습니다. -replace '^.*?,', ''
문자열의 첫 번째 쉼표까지 모든 것을 제거합니다. 일반 이름 자체에 쉼표 (예 : in CN=test\, cnelson,OU=...
)가 포함되어 있으면 대체 항목이 제거되지 않습니다 cnelson,
. 긍정적 인 예측 어설 션으로 정규식을 수정하여 첫 번째 이전의 모든 항목 OU=
이 제거되도록합니다.
$New_Path = $AD_Account_To_Copy -replace '^.*?,\s*(?=ou=)', ''
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다