Нет причин, по которым вам следует создавать переменные для всех свойств в файле CSV. Вместо этого используйте их напрямую, чтобы создать хеш-таблицу, которую можно использовать для разбивки параметров командлета New-ADUser
, как показано ниже.
Import-Module ActiveDirectory
# the X.500 path of the Organizational Unit like:
$ouPath = "OU=Finance,DC=ucertify,DC=com"
# test if the OU already exists
if (!(Get-ADOrganizationalUnit -Identity $ouPath)) {
New-ADOrganizationalUnit -Name "Finance" -Path $ouPath
}
Import-Csv C:\Users\Administrator\Downloads\financePersonnel.csv | Foreach-Object {
# create a hashtable with all the properties from the CSV
# format: ParameterName = Value
$userProps = @{
'Name' = ('{0} {1}' -f $_.First_Name, $_.Last_Name).Trim()
'SamAccountName' = $_.SamAccount
'GivenName' = $_.First_Name
'Surname' = $_.Last_Name
'PostalCode' = $_.PostalCode
'MobilePhone' = $_.MobilePhone
'OfficePhone' = $_.OfficePhone
'City' = $_.City
'Country' = $_.Country
'Enabled' = $true
# I'm guessing you want the user created in the new OU
# If you leave this out, the Path parameter defaults to the Users container.
'Path' = $ouPath
}
# now splat these properties to the New-ADUser cmdlet
New-ADUser @userProps
}
Найдите командлет New-ADUser , чтобы увидеть больше свойств, которые вы можете установить.