Пользователи в группы на основе Excel - PullRequest
0 голосов
/ 26 апреля 2019

Работа над небольшим проектом, который должен поместить ADusers в ADgroups на основе Excel-файла.

Я заблудился в * .Split-лабиринте, и я уверен, что есть простое решение, которое я не вижу сейчас.

USERNAME      : PROG-USER-01
USERGROUP-01  : X
USERGROUP-02  :
USERGROUP-03  : X
USERGROUP-04  :

SUITE-ADMINS  :

USERNAME      : PROG-USER-02
USERGROUP-01  :
USERGROUP-02  :
USERGROUP-03  :
USERGROUP-04  : X

SUITE-ADMINS  :

Код:

$ExcelPlaceUsers = @(Import-Excel -Path "C:\users_and_relations.xlsx" -WorksheetName 'USERGROUP')
$ePUsernames = $ExcelPlaceUsers.USERNAME

foreach ($ePuser in $ePUsernames){
    #$ePuser #USERNAMES
    $targetCell = $ExcelPlaceUsers.$($i)[$ePuser]

    if ($targetCell -eq 'x') {
                #Output
    }
}

1009 *

Требуемый вывод:

PROG-USER-01
USERGROUP-01
USERGROUP-03

PROG-USER-02
USERGROUP-04

1 Ответ

0 голосов
/ 26 апреля 2019

Мы можем зациклить объект, возвращенный Import-Excel (я использую следующий модуль: https://www.powershellgallery.com/packages/ImportExcel/5.4.0) Тот же код будет работать с CSV-файлом, используя команду Import-CSV. Это не потребует установки дополнительного модуля.

Измените Write-Output на все, что вы хотите сделать со значениями.

$ExcelPlaceUsers = Import-Excel .\test.xlsx -NoHeader

Foreach ($Username in $ExcelPlaceUsers) {
    if ($Username.P2 -and $Username.P2 -ne 'X') {
        Write-Output ' '
        Write-Output $Username.P2
    } elseif ($Username.P2 -eq 'X') {
        Write-Output $Username.P1
    }
}

Вывод будет:

PROG-USER-01
USERGROUP-01
USERGROUP-03

PROG-USER-02
USERGROUP-04
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...