Powershell 如何创建用户
我正试图使用此脚本创建大量用户,但它给了我一个错误:Powershell 如何创建用户,powershell,Powershell,我正试图使用此脚本创建大量用户,但它给了我一个错误: New-ADUser : Access is denied At C:\Users\admin\Desktop\2272_logon.ps1:30 char:2 + New-ADUser $_.Name -SamAccountName $_.SamAccountName -Path $PATH ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
New-ADUser : Access is denied
At C:\Users\admin\Desktop\2272_logon.ps1:30 char:2
+ New-ADUser $_.Name -SamAccountName $_.SamAccountName -Path $PATH ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (CN=Raymond_F_Gu...innesota,dc=edu:String) [New-ADUser
], UnauthorizedAccessException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.UnauthorizedAccessException,Microsoft.Activ
eDirectory.Management.Commands.NewADUser
有一个csv文件,我从中获取数据。这是它的代码。下面是csv文件中一些数据的示例
姓氏、姓氏、中间名、部门、街道地址、城市、州、邮政编码、吉文名、mi、姓氏、员工ID、OU、DC1、DC2、DC3、SamAccountName、length-max-20、姓名、用户名、用户名、显示名、电子邮件地址、新密码、说明、group01、Gsamid01、GroupCategory01、GroupScope01、GDisplayName01、GDDescription01、group02、Gsamid02、GroupCategory02、GroupScope02、,GDisplayName02,GDDescription02,Office,OfficePhone,HomePhone,MobilePhone,Fax,主页,标题,部门,部门,公司,员工编号,经理,HomeDirectory,HomeDrive,StreetAddress,POBox,PostalCode,Country,AccountNotDelegate,AllowVersionablePasswordEncryption,CannotChangePasswordAtlogon,Enabled,Organization,PasswordNeverExpires,PasswordNotRequired,SmartCardlogonRequired,Trusted ForDelegation,AccountExpirationDate,Set_expire,group03,Gsamid03,GroupCategory03,GroupScope03,GDisplayName03,GDisplayName03,group04,GDisplayName04,GDisplayName04,GDescription04,OldPassword,Add,Certificates,Clear,缩写,LogonWorkstations,OtherName,ProfilePath,Remove,Replace,脚本路径、ServicePrincipalNames、身份验证类型、凭据、分区、通过、服务器、确认、什么
格兹曼,雷蒙德,F,德尔塔,5000西国家大道,密尔沃基,威斯康星州,53295-4000,雷蒙德,F,格兹曼,301,泽农,梅特,明尼苏达州,埃杜,301泽农,8,雷蒙德,格兹曼,雷蒙德_Guzman@mait.minnesota.edu,雷蒙德F古兹曼,雷蒙德F_Guzman@mait.minnesota.edu,Si&mple+90,虚拟学生,人物,人物网络,安全,全球,人物,此组的成员可以访问共享、Delta、DeltaZenon、Security、Global、Delta,这是一个愚蠢的组名B162218.299.7000218.299.8000218.299.9000218.299.1000,http://brazil.minnesota.edu,低于平均水平的学生,愚蠢,IT,密歇根州立大学,501,preuss@mait.example.org,\chile\Zenonhome\Raymond_F_Guzman,h:,美国西国家大道5000号,邮编:53295-4000,FALSE,FALSE,FALSE,TRUE,Acme,FALSE,FALSE,FALSE,TRUE,5/5/2021 22:01,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用
威斯康星州密尔沃基西国家大道5000号格瓦兹达,兰伯特,C,三角洲,邮编:53295-4000,兰伯特,0,格瓦兹达,明尼苏达州梅特泽农302号,兰伯特,埃杜,302泽农,兰伯特__Gwiazda@mait.minnesota.edu,兰伯特0 Gwiazda,兰伯特__Gwiazda@mait.minnesota.edu,Si&mple+91,虚拟学生,人物,人物,安全,全球,人物,此组的成员可以访问共享、Delta、DeltaZenon、Security、Global、Delta,这是一个愚蠢的组名B163218.299.7000218.299.8000218.299.9000218.299.1000,http://brazil.minnesota.edu,低于平均水平的学生,愚蠢,IT,Mstate,502,preuss@mait.example.org,\chile\Zenonhome\Lambert__Gwiazda,h:,美国西国家大道5000号,邮编:53295-4000,FALSE,FALSE,FALSE,TRUE,Acme,FALSE,FALSE,FALSE,TRUE,5/5/2021 22:01,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用,未使用
佐治亚州密尔沃基西国家大道5000号,约翰东区,三角洲,邮编:53295-4000_Gyles@mait.minnesota.edu,约翰·E·盖尔斯,约翰·E_Gyles@mait.minnesota.edu,Si&mple+92,虚拟学生,人物,人物,安全,全球,人物,此组的成员可以访问共享,Delta,DeltaZenon,安全,全球,德尔塔,这是一个愚蠢的组名,B164218.299.7000218.299.8000218.299.9000218.299.1000,http://brazil.minnesota.edu,低于平均水平的学生,愚蠢,IT,密歇根州立大学,503,preuss@mait.example.org,\chile\Zenonhome\John_E_Gyles,h:,美国西国家大道5000号,53295-4000,假,假,假,真,Acme,假,假,假,假,假,假,真,2021年5月5日22:01,,unused,unusedZenon,Security,Global,unusedZenon,Security,Global,unused,More no name组,unused,unused,unused,unused,unused,unused,unused,unused,unused,unused,unused,unused
佐治亚州密尔沃基西国家大道5000号吉罗,詹姆士,吉罗,达尔塔,邮编:53295-4000,詹姆士,吉罗,304,泽农,梅特,明尼苏达州,埃杜,304Zenon,8,詹姆士,吉罗,詹姆士。Gyuro@mait.minnesota.edu,詹姆斯·F·久罗,詹姆斯·F。Gyuro@mait.minnesota.edu,Si&mple+93,虚拟学生,人物,人物,人物,安全,全球,人物,此组的成员可以访问共享,Delta,DeltaZenon,安全,全球,Delta,这是一个愚蠢的组名,B165218.299.7000218.299.8000218.299.9000218.299.299.1000,http://brazil.minnesota.edu,低于平均水平的学生,愚蠢,IT,麻省理工大学,504,preuss@mait.example.org,\chile\Zenonhome\James_F.Gyuro,h:,美国西国家大道5000号,53295-4000,假,假,假,真,Acme,假,假,假,假,假,假,真,2021年5月5日22:01,,unused,unusedZenon,Security,Global,unusedZenon,Security,Global,unused,More no name组,unused,unused,unused,unused,unused,unused,unused,unused,unused,unused,unused,unused
佐治亚州密尔沃基西国家大道5000号三角洲吉罗,詹姆斯,F,吉罗,305,明尼苏达州梅特市泽农,邮编:305Zenon,邮编:8,詹姆士,吉罗,邮编:53295-4000_Gyuro@mait.minnesota.edu,詹姆士F久罗,詹姆士F_Gyuro@mait.minnesota.edu,Si&mple+94,虚拟学生,人物,人物,人物,安全,全球,人物,此组的成员可以访问共享,Delta,DeltaZenon,安全,全球,Delta,这是一个愚蠢的组名,B166218.299.7000218.299.8000218.299.9000218.299.299.1000,http://brazil.minnesota.edu,低于平均水平的学生,愚蠢,IT,麻省理工大学,505,preuss@mait.example.org,\chile\Zenonhome\James_F_Gyuro,h:,美国西国家大道5000号,53295-4000,假,假,假,真,Acme,假,假,假,假,假,假,真,2021年5月5日22:01,未使用,联合国大学
Import-Module ActiveDirectory
Import-csv .\2272_logon_data.csv | ForEach-Object {
# This will set some variables
$PATH01 = "dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$PATH02 = "ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$ID01= "cn=" + $_.Name + ",ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$ID02= "cn=" + $_.Name02 + ",ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$GROUPDN01="cn=" + $_.Group01 + ",ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$GROUPDN02="cn=" + $_.Group02 + ",ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$GROUPDN03="cn=" + $_.Group03 + ",ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
$GROUPDN04="cn=" + $_.Group04 + ",ou=" + $_.OU + ",dc=" + $_.DC1 + ",dc=" + $_.DC2 + ",dc=" + $_.DC3
# This will create the new logons
New-ADUser $_.Name -SamAccountName $_.SamAccountName -Path $PATH02
# This modifies the new logons
Set-ADUser $ID01 -AccountExpirationDate $_.AccountExpirationDate
Set-ADuser $ID01 -AccountNotDelegated ([System.Convert]::ToBoolean($_.AccountNotDelegated))
Set-ADuser $ID01 -AllowReversiblePasswordEncryption ([System.Convert]::ToBoolean($_.AllowReversiblePasswordEncryption))
#Set-ADuser $ID01 -AuthType $_.AuthType
Set-ADuser $ID01 -CannotChangePassword ([System.Convert]::ToBoolean($_.CannotChangePassword))
#Set-ADuser $ID01 -Certificates $_.Certificates
Set-ADuser $ID01 -ChangePasswordAtLogon ([System.Convert]::ToBoolean($_.ChangePasswordAtLogon))
Set-ADuser $ID01 -City $_.City
#Set-ADuser $ID01 -Clear $_.Clear
Set-ADuser $ID01 -Company $_.Company
#Set-ADuser $ID01 -Confirm $_.Confirm
Set-ADuser $ID01 -Country $_.Country
#Set-ADuser $ID01 -Credential $_.Credential
Set-ADuser $ID01 -Department $_.Department
Set-ADuser $ID01 -Description $_.Description
Set-ADuser $ID01 -DisplayName $_.DisplayName
Set-ADuser $ID01 -Division $_.Division
Set-ADuser $ID01 -EmailAddress $_.EmailAddress
Set-ADuser $ID01 -EmployeeID $_.EmployeeID
Set-ADuser $ID01 -EmployeeNumber $_.EmployeeNumber
Set-ADuser $ID01 -Fax $_.Fax
Set-ADuser $ID01 -GivenName $_.GivenName
Set-ADuser $ID01 -HomeDirectory $_.HomeDirectory
Set-ADuser $ID01 -HomeDrive $_.HomeDrive
Set-ADuser $ID01 -HomePage $_.HomePage
Set-ADuser $ID01 -HomePhone $_.HomePhone
# Set-ADuser $ID01 -Initials $_.Initials
# Set-ADuser $ID01 -LogonWorkstations $_.LogonWorkstations
Set-ADuser $ID01 -Manager $_.Manager
Set-ADuser $ID01 -MobilePhone $_.MobilePhone
Set-ADuser $ID01 -Office $_.Office
Set-ADuser $ID01 -OfficePhone $_.OfficePhone
Set-ADuser $ID01 -Organization $_.Organization
# Set-ADuser $ID01 -OtherName $_.OtherName
# Set-ADuser $ID01 -Partition $_.Partition
# Set-ADuser $ID01 -PassThru $_.PassThru
Set-ADuser $ID01 -PasswordNeverExpires ([System.Convert]::ToBoolean($_.PasswordNeverExpires))
Set-ADuser $ID01 -PasswordNotRequired ([System.Convert]::ToBoolean($_.PasswordNotRequired))
#Set-ADuser $ID01 -POBox $_.POBox
Set-ADuser $ID01 -PostalCode $_.PostalCode
# Set-ADuser $ID01 -ProfilePath $_.ProfilePath
# Set-ADuser $ID01 -Remove $_.Remove
# Set-ADuser $ID01 -Replace $_.Replace
#Set-ADuser $ID01 -ScriptPath $_.ScriptPath
#Set-ADuser $ID01 -ServicePrincipalNames $_.ServicePrincipalNames
Set-ADuser $ID01 -SmartCardlogonRequired ([System.Convert]::ToBoolean($_.SmartCardlogonRequired))
Set-ADuser $ID01 -State $_.State
Set-ADuser $ID01 -StreetAddress $_.StreetAddress
Set-ADuser $ID01 -Surname $_.Surname
Set-ADuser $ID01 -Title $_.Title
#Set-ADuser $ID01 -TrustedForDelegation ([System.Convert]::ToBoolean($_.TrustedForDelegation))
Set-ADuser $ID01 -UserPrincipalName $_.UserPrincipalName
# Set-ADuser $ID01 -Whatif $_.Whatif
# This section creates the groups
New-ADGroup -Name $_.group01 -SamAccountName $_.Gsamid01 -GroupCategory $_.GroupCategory01 -GroupScope $_.GroupScope01 -DisplayName $_.GDisplayName01 -Path $PATH02 -Description $_.GDescription01
New-ADGroup -Name $_.group02 -SamAccountName $_.Gsamid02 -GroupCategory $_.GroupCategory02 -GroupScope $_.GroupScope02 -DisplayName $_.GDisplayName02 -Path $PATH02 -Description $_.GDescription02
#New-ADGroup -Name $group03 -SamAccountName $_.Gsamid01 -GroupCategory $_.GroupCategory01 -GroupScope $_.GroupScope01 -DisplayName $_.GDisplayName01 -Path $PATH02 -Description $_.GDescription01
#New-ADGroup -Name $group04 -SamAccountName $_.Gsamid01 -GroupCategory $_.GroupCategory01 -GroupScope $_.GroupScope01 -DisplayName $_.GDisplayName01 -Path $PATH02 -Description $_.GDescription01
# This section sets the group memberships
Add-ADGroupMember $GROUPDN01 -Members $ID01
Add-ADGroupMember $GROUPDN02 -Members $ID01
#Add-ADGroupMember $GROUPDN03 -Member $ID01
#Add-ADGroupMember $GROUPDN04 -Member $ID01
# This section sets the password and enables the account
Set-ADAccountPassword $ID01 -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $_.NewPassword -Force)
Set-ADuser $ID01 -Enabled ([System.Convert]::ToBoolean($_.Enabled))
}
# http://blog.danskingdom.com/allow-others-to-run-your-powershell-scripts-from-a-batch-file-they-will-love-you-for-it/
# If running in the console, wait for input before closing.
if ($Host.Name -eq "ConsoleHost")
{
Write-Host "Press any key to continue..."
$Host.UI.RawUI.FlushInputBuffer() # Make sure buffered input doesn't "press a key" and skip the ReadKey().
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
}