Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вопрос по перебору ForEach (http://forum.oszone.net/showthread.php?t=325793)

sacredboy 10-04-2017 15:39 2728011

Вопрос по перебору ForEach
 
Есть такой скрипт,
Код:

$csvfile = 'C:\Scripts\newadusers.csv'
$OU = 'ou=Romashka Users,dc=romashka,dc=loc'

$users = Import-CSV $csvfile
 
Foreach ($i in $users)
{
    $DisplayName = $i.FirstName + " " + $i.LastName
    $SecurePass = ConvertTo-SecureString $i.DefaultPassword -AsPlainText -Force
    New-ADUser -Name $DisplayName -GivenName $i.FirstName -Surname $i.LastName -DisplayName $DisplayName `
    -SamAccountName $i.SamAccountName -UserPrincipalName $i.UserPrincipalName `
    -Department $i.Department -Path $OU -AccountPassword $SecurePass -Enabled $true `
    -ChangePasswordAtLogon $true
}

который обращется к csv файлу,
Код:

FirstName,LastName,Department,SamAccountName,UserPrincipalName,DefaultPassword
Ivan,Ivanov,Romashka,IIvanov,IIvanov@romashka.loc,P@ssw0rd
Petr,Petrov,Romashka,PPetrov,PPetrov@romashka.loc,P@ssw0rd
Mikhail,Mikhailov,Romashka,MMikhailov,MMikhailov@romashka.loc,P@ssw0rd

Объясните пожалуйста откуда скрипт берет значение переменной $i?

Kazun 10-04-2017 15:56 2728022

Прочитать справку:
https://msdn.microsoft.com/ru-ru/pow.../about_foreach или на русском https://technet.microsoft.com/ru-ru/.../hh847816.aspx

Цитата:

Синтаксис
Ниже показан синтаксис оператора ForEach.
foreach ($<item> in $<collection>){<statement list>}

В скрипте создается массив $users, который затем инициализируется из файла csv. При первом выполнении оператора Foreach переменная $i устанавливается равной первому элементу в массиве $users:
  • FirstName : Ivan
  • LastName : Ivanov
  • Department : Romashka
  • SamAccountName : IIvanov
  • UserPrincipalName : IIvanov@romashka.loc
  • DefaultPassword : P@ssw0rd
). Затем создается объект пользователя в AD. При следующей итерации цикла переменной $i присваивается значение:
  • FirstName : Petr
  • LastName : Petrov
  • Department : Romashka
  • SamAccountName : PPetrov
  • UserPrincipalName : PPetrov@romashka.loc
  • DefaultPassword : P@ssw0rd
и т. д. После того как цикл Foreach создаст объект пользователя в AD:
  • FirstName : Mikhail
  • LastName : Mikhailov
  • Department : Romashka
  • SamAccountName : MMikhailov
  • UserPrincipalName : MMikhailov@romashka.loc
  • DefaultPassword : P@ssw0rd
, Windows PowerShell выходит из цикла.


Время: 13:31.

Время: 13:31.
© OSzone.net 2001-