用户根据Excel分组

时间:2019-04-26 06:57:47

标签: excel powershell

正在研究一个小项目,该项目应该根据Excel文件将ADuser放置在ADgroup中。

在* .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
    }
}

想要的输出:

PROG-USER-01
USERGROUP-01
USERGROUP-03

PROG-USER-02
USERGROUP-04

1 个答案:

答案 0 :(得分:0)

我们可以遍历Import-Excel返回的对象(我正在使用以下模块:https://www.powershellgallery.com/packages/ImportExcel/5.4.0) 使用命令Import-CSV,相同的代码将与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