2017-12-15 5 views
0

複数のユーザーを追加しようとしていますが、異なるユーザー名で複数回スクリプトを作成しています。このコード行を繰り返して、複数のユーザー名を別の方法で追加することは可能ですか? csvファイルをインポートするのではなく、より効果的で簡単です。複数のユーザーをcsvインポートなしで追加する

New-ADUser -Name "Test Eksamen" -GivenName "Test" -Surname Eksamen -SamAccountName Olf -UserPrincipalName [email protected] -path "OU=powershell, DC=test, DC=local" 
+0

をユーザーを作成することができます例えば。 array/arraylistに入れて、それを反復してその位置に項目を置くだけでなく、 "every"のプログラミング言語でも可能です:) – xxxvodnikxxx

+1

csvを使いたいのはなぜですか?あなたがやっている仕事を完了してください。 –

+0

ベローin reply post :) @JamesC。 – xxxvodnikxxx

答えて

2

私は十分な評判がないので、私はコメントできません。 CSVインポートで何が問題なのか、「簡単な方法」とはどういう意味か分かりません。私の意見では、csvをインポートするのが最も便利な方法です。

名前と姓の配列を使用できます。もう一度

$names = @("Neil","Albert", "Nikola") 
    $surnames = @("Degrasse", "Einstein", "Tesla") 

foreach ($user in (0.. ($names.Length -1))){ 
    $user_name = $names[$user] 
    $user_surname = $surnames[$user] 
    New-ADUser -Name "$user_name $user_surname" -GivenName $user_name -Surname $user_surname -SamAccountName "$user_name.$user_surname" -UserPrincipalName "[email protected]" -Path "OU=powershell, DC=test, DC=local" 
    } 

私はそれはあなたが探していたものではありません場合、私はちょうどので、評判の不足のコメントすることはできませんごめんなさい。

0

私がこのコメントで触れたように、あなたはいくつかの配列やarraylistに何でも、蛇の目のようなものを加えることができます。

Btw私はcsvがおそらく最も快適な方法だと思います。

Notice-私は、単一のPSスクリプトでいくつかのオブジェクトを作成する方法を知らないので、私は

#your record New-ADUser -Name "Test Eksamen" -GivenName "Test" -Surname Eksamen -SamAccountName Olf -UserPrincipalName [email protected] -path "OU=powershell, DC=test, DC=local" 


#custom object definition-example of 1 member 
$member= New-Object System.Object 
$member | Add-Member -type NoteProperty -name cName -value "Test Eksamen" 
$member | Add-Member -type NoteProperty -name cGivenName -value "Test" 
$member | Add-Member -type NoteProperty -name cSurname -value "Eksamen" 
$member | Add-Member -type NoteProperty -name cSamAccountName -value "Olf" 
$member | Add-Member -type NoteProperty -name cUserPrincipalName -value "[email protected]" 
$member | Add-Member -type NoteProperty -name cpath -value "OU=powershell, DC=test, DC=local" 

#add into some list 
$memberList = New-Object System.Collections.ArrayList 
$memberList.Add($member) 

#iteration and adding each 
    foreach($actMember in $memberList){ 
    New-ADUser -Name $actMember.cName -GivenName $actMember.cGivenName -Surname $actMember.cName -SamAccountName $actMember.cSurname -UserPrincipalName $actMember.cUserPrincipalName -path $actMember.cpath 
    } 

その他の方法は、例えばすることができ、カスタムプロパティを持つ標準オブジェクトを使用していました。 @Teslaグレートからの例のように、個別に各データを格納するための第二の溶液がある

$names = @("Neil","Albert", "Nikola") 
#should be exactly the same 
#$names = "Neil","Albert", "Nikola" 
$givenNames= @("Degrasse", "Einstein", "Tesla") 
#..... other params 

#and iterate 
For ($i=0; $i -le ($names.Length -1); $i++) { 
    New-ADUser -Name $names[i] -GivenName $givenNames[i] ... etc 
} 

には、データの整合性がないので、あなたは非常に単純例えば、いくつかの値を交換することができます(私は少し厄介としましょう、またはこれらの変数間の)いくつか欠けている、などを行いますが、最初のものは真剣に長いコード

0

でも、あなたは、ランダムにそれらを追加することができますuser1.2..3などとして

$names=1..1000 
$x="user" 
Foreach($name in $names){ 
$nm=$x + "$name" 
$Password = (ConvertTo-SecureString -AsPlainText '[email protected][email protected]' -Force) 
New-ADUser -GivenName $x -Surname $name -Name $nm -Enabled $true -AccountPassword $password -SamAccountName $nm -WhatIf 
} 
関連する問題