Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 按部门创建帐户_Powershell_Csv_Active Directory_Powershell 3.0 - Fatal编程技术网

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

我正试图通过他们在PowerShell中的部门来批量创建帐户。我目前正在使用
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(并且带有一个值数组)。如果没有,请用您当前拥有的实际代码更新您的问题。