2016-11-28 167 views
1

我想創建一個腳本來在Active Directory中通過它創建一個用戶。我已經創建了一個單線程,它可以正確創建用戶。但知道我希望腳本創建具有不同輸入的用戶。通過Powershellscript在Active Directory中創建一個用戶

我創建了代碼,但不知何故,它不工作,任何人都可以詳細說明我做錯了什麼?

$name=$args[0] 
$givenname=$args[1] 
$surname=$args[2] 
$userlogin=$args[3] 
$loginold=$args[4] 
$description=$args[5] 
$phone=$args[6] 
$mail=$args[7] 
$password=$args[8] 
$passwordexpire=$args[9] 
$locked=$args[10] 
$oupath=$args[11] 

echo $name 
echo $givenname 
echo $surname 
echo $userlogin 
echo $loginold 
echo $description 
echo $phone 
echo $mail 
echo $password 
echo $passwordexpire 
echo $locked 
echo $oupath 

New-ADUser -Name $name -GivenName $givenname -Surname $surname -UserPrincipalName $userlogin -SamAccountName $loginold -description $description -OfficePhone $phone -EmailAddress $mail -AccountPassword (Read-Host -AsSecureString "AccountPassword") $password -PasswordNeverExpires $passwordexpire -Enabled $locked -path $oupath 

pause 

錯誤消息:

New-ADUser : Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. 
At C:\POwershell\Create_ad_user.ps1:27 char:18 
+ New-ADUser -Name $name -GivenName $givenname -Surname $surname -UserPrincipalNam ... 
+     ~~~~~ 
    + CategoryInfo   : InvalidData: (:) [New-ADUser], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.NewADUser 

Press Enter to continue...: 
PS C:\Users\Administrator\Desktop> 
+0

呢'回聲$ name'輸出什麼?另外,'-AccountPassword'看起來不正確。 – 4c74356b41

+2

你能告訴我們你是如何從命令行調用腳本的嗎?還請看看[PowerShell參數](https://technet.microsoft.com/en-us/library/jj554301.aspx)他們使事情比使用'$ args'更容易 –

回答

2

貌似帳戶密碼不正確,你是促使它(Read-Host -AsSecureString "AccountPassword")然後在$password提供它直接之後。

當你有大量的參數傳遞splatting往往是一個好主意,因爲它使一切更容易閱讀,像這樣:

$Params = @{ 
    Name = $args[0] 
    Givenname = $args[1] 
    Surname = $args[2] 
    UserPrincipalName = $args[3] 
    SamAccountName = $args[4] 
    Description = $args[5] 
    OfficePhone = $args[6] 
    EmailAddress = $args[7] 
    AccountPassword = ConvertTo-SecureString -AsPlainText $args[8] -Force 
    PasswordNeverExpires = $args[9] 
    Enabled = $args[10] 
    Path = $args[11] 
} 

Write-Output $Params 

New-ADUser @Params 
+0

謝謝你的答案,和很抱歉,耽擱很大。 嘗試您的代碼時,出現以下錯誤: 'ConvertTo-SecureString:無法將參數綁定到參數'String',因爲它爲null。 在C:\的powershell \ create_ad_user_eingabe_test1.ps1:10字符:59 +帳戶密碼=的ConvertTo-SecureString的-AsPlainText的$ args [8] -Force + ~~~~~~~~' 看起來像是與密碼對我來說又是錯誤的。 – user7140648

+0

調用腳本時使用了什麼命令? –

相關問題