2017-05-03 21 views
-1

以下のコードに問題があります。 私は0010798Mという名前の.csvファイルを持っています.3つのファイルには、名前、姓、名前の3つのファイルがあります。Powershellスクリプトファイル.csvから3種類の異なるファイルへ

.csvファイルのouセクションには、Account、Sales、Managementという名前の3つの異なるousがあります。

私のコードは、このリンクで提供されています

#Import the PowerShell module containing AD cmdlets 
Import-Module ActiveDirectory 
write-host "Start Process" 
write-host "-------------------------------------" 
try { 
    #Read the CSV file 
    $csvPath = "C:\0010798M.csv" 
    $csvData = import-csv $csvPath 
    write-host "Reading the CSV file......" 
    #Loop through all items in the CSV items 

    ForEach ($user In $csvData) { 
     $saMAccountName = $user.sAMAccountName 
     #Check if the User exists 
     $ADuser = Get-ADUser -LDAPFilter "(sAMAccountName=$saMAccountName)" 
     If ($ADuser -eq $Null) { 
      #Create user using New-ADUser cmdlet 
      $userPrincipalName = $user.sAMAccountName + "@adatum.com" 
      New-ADUser -Name $user.displayName ` 
       -SamAccountName $sAMAccountName ` 
       -UserPrincipalName $userPrincipalName ` 
       -GivenName $user.givenname ` 
       -Surname $user.sn ` 
       -DisplayName $user.displayName ` 
       -AccountPassword (ConvertTo-SecureString "Pa`$`$w0rd" -AsPlainText -Force) ` 
       -PasswordNeverExpires $true ` 
       -ChangePasswordAtLogon $false ` 
       -Enabled $true 
      write-host "- " $user.sAMAccountName "| Account Created" -ForegroundColor green 
     } else { 
      write-host "- " $user.sAMAccountName "|Account Exists" -ForegroundColor yellow 
     } 
    } 
} catch { 
    write-host "Error: " $($_.CategoryInfo) -ForegroundColor red 
    write-host "Message: " $($_.Exception.Message) -ForegroundColor red 
} 
write-host "-----------------------------------------------------------------" 
write-host "End Process" 
+1

あなたが例えば

...新しいユーザーを作成するためにあなたのコマンドに-pathを追加し、あなたのCSVからのOUの名前を指定する必要があります試したことがどのように失敗したのですか?理想的には、試したことの[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を提供し、エラーメッセージやエラーメッセージなどの特定の情報を含めることが理想的です誤った出力。 SOはコード作成サービスではありません。最善の質問は、有益な情報を提供するものであり、回答者があなたの正解を工夫するためのガイドとなり得ることです。 [良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を参照してください。 –

+0

上記のコードを作成しましたが、Sales、Management、Accountsのいずれかにユーザーを割り当てる正確なコードはわかりません。 エラー:NotSpecified:(:) [Get-ADUser]、ADException メッセージ:検索フィルターを認識できません。 –

+0

Get-ADUser'はユーザーに何も割り当てません。単にActive Directoryからユーザー情報を取得します。受け取ったエラーは、あなたの 'LDAPFilter'に問題があることを示しています。あなたは仕事を呼び出すためにこれを修正する必要があります。 LDAPFilterが実際に使われていることはめったにありません。他の方法でフィルタリングするほうが簡単です(ほとんどの人にはそうです)。[Get-Help Get-ADUser'](https://technet.microsoft.com/en-us/library/ee617241.aspx)ここで役に立つでしょう。 –

答えて

0

https://pastebin.com/D0Naiccr、スクリプトを見ている、私はあなたがコマンドでOUを設定する場所が表示されません。あなたは何を持っている

New-ADUser -Name "GlenJohn" -Path "OU=Sales" 
+0

「Try/Catch」ブロック内に新しいユーザーを作成するのが簡単ですばやくできます。アカウントを作成してみて、エラーをトラップしてください。そうすれば、2の代わりに1回の呼び出しが行われますが、同じ結果が得られます。 (私はテストしていない、ここで大声で考えている) –

関連する問題