Это моя первая попытка передать параметры в new-aduser. Сообщение об ошибке не очень полезно.
Они должны быть в особом порядке? Я проверял список снова и снова
PS C:\Windows\system32> $params
new-aduser $Params -WhatIf
new-aduser $Params
Name : DidItwork
City : SomeCity
Department : My Department
Description : This is my description
EmailAddress : copy.me@mycompany.com
Fax : 480-555-1216
GivenName : Copy
HomePhone : 480-555-1213
Initials : CM
MobilePhone : 480-555-1215
Office : This my office
OfficePhone : 480-555-1212
POBox : PO BOX
PostalCode : 90210
State : SomeState
streetAddress : 1234 Elm St
Surname : Me
Title : My Job Title
ChangePasswordAtLogon : True
path : OU=Whatever,DC=,DC=mycompany,DC=com
server : MYSERVER
What if: Performing the operation "New" on target "CN=@{Name\=DidItwork\; City\=SomeCity\; Department\=My Department\; Description\=This is my description\; Emai
lAddress\=copy.me@mycompany.com\; Fax\=480-555-1216\; GivenName\=Copy\; HomePhone\=480-555-1213\; Initials\=CM\; MobilePhone\=480-555-1215\; Office\=This my offic
e\; OfficePhone\=480-555-1212\; POBox\=PO BOX\; PostalCode\=90210\; State\=SomeState\; streetAddress\=1234 Elm St\; Surname\=Me\; Title\=My Job Title\; ChangePas
swordAtLogon\=True\; path\=OU\=Whatever\,DC\=mycompany\,DC\=com\; server\=MYSERVER},CN=Users,DC=,DC=mycompany,DC=com".
new-aduser : The parameter is incorrect
At line:3 char:1
+ new-aduser $Params
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (CN=@{Name\=DidI...mycompany,DC=com:String) [New-ADUser], ADInvalidOperationException
+ FullyQualifiedErrorId : ActiveDirectoryServer:87,Microsoft.ActiveDirectory.Management.Commands.NewADUser
PS C:\Windows\system32>
Вот весь сценарий. Я в основном копирую существующую учетную запись в ту же OU с некоторыми измененными атрибутами стандарты именования В настоящее время это OU только с одной тестовой учетной записью. Прогон Prod будет работать с около 900 учетными записями в 50 различных подразделениях
CLS
# ===============================================================================
$ADServer = myserver"
$SearchOU = "OU=Whatever,DC=mycompany,DC=com"
#================================================================================
$toProcess = get-aduser -filter {enabled -eq $true} -searchbase $SearchOU -Property * -server $ADServer | Sort Samaccountname | Select -First 10
$toProcess | ForEach-Object {
$DN = ($_.DistinguishedName -split "OU=",2)[1]
#$_ = "CN=" + $last +"."+ $first + ",OU=" + $DN
$_OU = "OU=" + $DN
$Params = [PSCustomObject]@{
Name = diditwork
City = $_.city
Department = $_.Department
Description = $_.Description
EmailAddress = $_.EmailAddress
facsimileTelephoneNumber = $_.facsimileTelephoneNumber
Fax = $_.Fax
GivenName = $_.GivenName
HomeDirectory = $_.HomeDirectory
HomePhone = $_.HomePhone
Initials = $_.Initials
Manager = $_.Manager
MobilePhone = $_.MobilePhone
Office = $_.Office
OfficePhone = $_.OfficePhone
POBox = $_.POBox
PostalCode = $_.PostalCode
SamAccountName = $_.SamAccountName
State = $_.State
streetAddress = $_.streetAddress
Surname = $_.Surname
Title = $_.Title
Path = $_ou
}
$Params.PSObject.Properties | ForEach-Object {if ($_.value -eq $null) { $Params.PSObject.properties.remove($_.name) }}
Write-host "==================================OLD ACCOUNT========================================================="
$_
Write-host "==================================NEW ACCOUNT========================================================="
$Params
Write-host "======================================================================================================"
new-aduser @Params -WhatIf
Write-host "======================================================================================================"
new-aduser @Params
Write-host "======================================================================================================"
#$CopyFromUser = Get-ADUser $OldAcc.SamAccountName -prop MemberOf -server $ADServer
#$CopyToUser = Get-ADUser $Params.SamAccountName -prop MemberOf -server $ADServer
#$CopyFromUser.MemberOf | Where{$CopyToUser.MemberOf -notcontains $_} | Add-ADGroupMember -Member $CopyToUser -server $ADServer
}