Como posso adicionar mulitple usuário ou valores a uma matriz

1

Eu quero criar um script powershell no qual eu queira adicionar vários valores a um Array (Add into Array).

por exemplo: eu tenho 10 usuários na minha empresa e quero criar sua conta AD (sem usar o arquivo csv), se eu usar "Read-Host" como abaixo. Posso fazer um loop "read-host" para mostrar 10 vezes e adicionar valores a uma matriz e listar como abaixo?

$FirstName = Read-Host "Enter the first name of the employee"
$LastName = Read-Host "Enter the last name of the employee"
[INT]$empid = Read-Host "Enter the employee number"
$group = Read-Host "Enter the group name"
$homedrive = Read-Host "Enter the home drive"

$NewHire = @{}
$NewHire.Name = $FirstName
$NewHire.Empid = $empid
$NewHire.LastName = $LastName
$NewHire.homedrive = $homedrive

$Objectname = New-Object PSobject -Property $NewHire

$objectname

A saída deste arquivo seria a seguinte,

Name  LastName Empid homedrive
----  -------- ----- ---------
phani ukkalam   3333 FDS      
    
por Phanindran 27.12.2011 / 05:36

4 respostas

2

Você pode adicionar um shell wscript para solicitar ao usuário a continuação ou não, e colocá-lo em um loop while.

A condição de loop aqui depende do usuário pressionar yes para adicionar mais usuários:

$wsh = new-object -comobject wscript.shell

do {
    $FirstName = Read-Host "Employee name"

    #and so on, and so on, end with this:

    $answer = $wsh.popup("Do you want to add more users?", 0,"More users?",4) 
    If ($answer -eq 6) { 
            $continue = $True 
        } else { 
            $continue = $False 
        } 
} while ($continue -eq $True) 
    
por 27.12.2011 / 09:37
1

Sim. Aqui está um exemplo.

$userCount = 10
$users = @()

1..$userCount | ForEach-Object {
    $FirstName = Read-Host "Enter the first name of the employee"
    $LastName = Read-Host "Enter the last name of the employee"
    [INT]$empid = Read-Host "Enter the employee number"
    $group = Read-Host "Enter the group name"
    $homedrive = Read-Host "Enter the home drive"

    $NewHire = @{}
    $NewHire.Name = $FirstName
    $NewHire.Empid = $empid
    $NewHire.LastName = $LastName
    $NewHire.homedrive = $homedrive

    $Objectname = New-Object PSobject -Property $NewHire

    $users += $Objectname
}

$users
    
por 27.12.2011 / 10:48
0

Experimente a função Read-HostArray no artigo abaixo, que fornece uma solução melhor para colar diretamente o valor da matriz em uma caixa de texto e passá-la para o script.

link

    
por 20.08.2015 / 18:52
0

Isso usa o cmdlet "Read-Host". Com este exemplo, você pode adicionar à frente do código, escolher o número de usuários em vez de ser codificado.

# This section asks for the number of users.  The string can be whatever you want.
$u = Read-Host -Prompt 'number of users'

# This section reads the string for the value that you entered previously
$userCount = $u
    
por 17.06.2018 / 18:57

Tags