2017-09-19 63 views
0

兩週前,我已經爲我的廣告中的批量用戶製作了腳本。 我的服務器桌面上有一個.ps1文件和一個.csv文件。Powershell acces否認批量用戶AD

通常,我可以右鍵單擊.ps1文件並選擇「使用Powershell運行」,並且一切正常。

這一次我得到了這個。我真的不知道這個問題可能是什麼:

enter image description here

我的.ps1文件看起來像:

Import-Module ActiveDirectory 
Import-Csv "C:\Users\laurent\Desktop\NewUsers.csv" | ForEach-Object { 
$userPrincinpal = $_."samAccountName" + "@cvoww.lokaal" 
$weergavenaam = $_."Firstname" + " " + $_."Lastname" 
New-ADUser -Name $weergavenaam ` 
-Path $_."ParentOU" ` 
-SamAccountName $_."samAccountName" ` 
-UserPrincipalName $userPrincinpal ` 
-GivenName $_."Firstname" ` 
-SurName $_."Lastname" ` 
-DisplayName $weergavenaam ` 
-AccountPassword (ConvertTo-SecureString $_."password" -AsPlainText -Force) ` 
-ChangePasswordAtLogon $true ` 
-Description $_."description" ` 
-Enabled $true; 
} 
Pause 

我的CSV文件看起來像:

Firstname,Lastname,samAccountName,description,ParentOU,password 
Julles,Coutelle,Julles.Coutelle,"Valerie M, Diverse cursussen","OU=Cursisten1718,DC=cvoww,DC=lokaal",cursist 
Walter,Croquey,Walter.Croquey,"Valerie M, Diverse cursussen","OU=Cursisten1718,DC=cvoww,DC=lokaal",cursist 

有什麼事情是問題嗎? 感謝您的幫助! 洛朗

+0

沒有你的權限更改? – ArcSet

+2

你是否試過以管理員身份運行它? – ArcSet

+0

您使用的是哪個版本的PowerShell? – TheIncorrigible1

回答

0

只是修改,以確保它運行如您所願:

#Requires -RunAsAdministrator 
#Requires -Version 3 

Import-Module ActiveDirectory 

Import-Csv 'C:\Users\laurent\Desktop\NewUsers.csv' | 
    ForEach-Object { 
    $weergavenaam = "$($_.Firstname) $($_.Lastname)" 

    $Params = @{ 
     Name = $weergavenaam 
     Path = $_.ParentOU 
     UserPrincipalName = "$($_.samAccountName)@cvoww.lokaal" 
     SamAccountName = $_.samAccountName 
     GivenName = $_.Firstname 
     SurName = $_.Lastname 
     DisplayName = $weergavenaam 
     AccountPassword = (ConvertTo-SecureString $_.password -AsPlainText -Force) 
     ChangePasswordAtLogon = $True 
     Description = $_.description 
     Enabled = $True 
    } 
    New-ADUser @Params 
    } 

PAUSE 
+0

嗨! 謝謝你的回答。但它沒有解決問題。問題是我無法以管理員身份運行它。奇怪,因爲這在過去不是問題。 我不知道很多PowerShell。你的解決方案有什麼不同?謝謝! –

+0

@LaurentVeys使用splatting,它可以減少編寫腳本時發生錯誤的機會,因爲您的參數在散列表中定義並且易於更改和定義。另外,它使用'#requires'語句,所以腳本本身將不會運行,除非您以管理員身份運行(如預期的那樣),並且會給出一條錯誤消息,說明這一點。 – TheIncorrigible1

+0

非常感謝! –