Powershell 按部门创建帐户
我正试图通过他们在PowerShell中的部门来批量创建帐户。我目前正在使用Powershell 按部门创建帐户,powershell,csv,active-directory,powershell-3.0,Powershell,Csv,Active Directory,Powershell 3.0,我正试图通过他们在PowerShell中的部门来批量创建帐户。我目前正在使用if..elseif..else脚本,它对我来说根本不起作用。在部门代码中,if..elseif将由两个不同的if语句分隔,这取决于帐户是否以“x”或“y”开头,由于帐户设置不同,它们需要分开。某些部门代码也将以0开头。我通过将命令放在引号中简化了脚本 $Users = Import-Csv -Delimiter "," -Path "C:\Createuser.csv" Import-Module ActiveDir
if..elseif..else
脚本,它对我来说根本不起作用。在部门代码中,if..elseif
将由两个不同的if
语句分隔,这取决于帐户是否以“x”或“y”开头,由于帐户设置不同,它们需要分开。某些部门代码也将以0开头。我通过将命令放在引号中简化了脚本
$Users = Import-Csv -Delimiter "," -Path "C:\Createuser.csv"
Import-Module ActiveDirectory
foreach ($User in $Users) {
$Displayname = $User.LastName + ", " + $User.Firstname
$ContractorDisplayname = $User.LastName + ", " + $User.Firstname + " (Contractor)"
$UserFirstname = $User.FirstName
$UserLastname = $User.LastName
$ContractorLastName = $User.LastName + ".Contractor"
$Department = $User.Department
$Description = $User.Description
$OU = $User.OU
$SAM = $User.SAM
$Password = $User.Password
$Manager = $User.Manager
$ManagerName = Get-ADUser -Identity $Manager -Properties samaccountname
if ($Department -in '005','367','RR1','411') {
if ($SAM -like 'x*') {".\GoldenContractorADscript.ps1"}
if ($SAM -like 'y*') {".\GoldenADscript.ps1"}
} elseif ($Department -in 'S11','222','054') {
".\StratasADscript.ps1"
} else {
if ($SAM -like 'x*') {".\StandardContractorADscript.ps1"}
if ($SAM -like 'y*') {".\StandardEmployeeADscript.ps1"}
}
}
您可能打算将
-in
/-notin
与RHS上的数组一起使用,例如$Department-in'005',367',RR1',411'
@mklement0我更改了它,它正在接近工作状态。它现在默认为“\StandardContractorADscript.ps1”命令,其中包含-notin。所以它看起来是这样的:Elseif($Department-notin'6HU','367','RR1','411','S11','222','054'){.\StandardContractorADscript.ps1}Else{.\StandardEmployeeADscript.ps1}。$Department
的实际值是多少?@AnsgarWiechers我编辑了代码$Department=$User.Department,但我有600多个部门,因此值会有所不同。这有帮助吗?我可以看到您定义了$Department=$User.Department
。这不是问题所在。您的问题中更新的代码是否是您当前运行的代码?因为您仍然在使用-eq
,而您应该在中使用-in(并且带有一个值数组)。如果没有,请用您当前拥有的实际代码更新您的问题。