Вложенный Switching Powershell для формирования групп пользователей - PullRequest
0 голосов
/ 18 июня 2020

Я хочу автоматизировать группы пользователей, создав список групп, частью которых должен быть пользователь, на основе 3 требований: их ветка, их отдел в этой ветке и их подразделение. Подразделения являются национальными, в то время как каждый департамент зависит от филиала, пока у меня есть эта сломанная система, хаха,

Я работал отдельно с ветвью и подразделением, просто используя переключатель и массив (КОД НЕ ПОКАЗАН), но они были взаимно Эксклюзив, поэтому не будет работать с отделами, которым необходимо изменить в зависимости от ветки, моя попытка вложить эти переключатели, а также добавить в ArrayList, похоже, потерпела неудачу. не совсем уверен, куда отсюда go.

конечной целью будет вывод списка групп, в который затем будет добавлен пользователь. любые рекомендации будут оценены, спасибо.

$csvFile = 'C:\Path'  # Enter a path to your import CSV file


Import-Csv -Path $csvFile | ForEach-Object {

    $User = $_.firstname
    $Branch = $_.Branch
    $Divison = $_.Division
    $Department = $_.Department
    $AllStaff = @(
        "All Staff"
        "Staff Wifi"
    )



    [System.Collections.ArrayList]$UserGroups = @()

    $UserGroups.add($AllStaff)

    Switch ($Branch) {
        "Christchurch" {

            Switch ($Department) {
                "ProServices" {
                    $UserGroups.Add("CHCH ProServices")

                }
                "Sales" {
                    $UserGroups.Add("Christchurch Sales")

                }
            }
            $UserGroups.Add("Christchurch Staff")
        }


        "Auckland" {
            Switch ($Department) {
                "ProServices" {
                    $UserGroups.Add("AKL ProServices")

                }
                "Sales" {
                    $UserGroups.Add("Auckland Sales")

                }
            }

            $UserGroups.Add("Auckland Staff")
        }

        "Wellington" {
            Switch ($Department) {
                "ProServices" {
                    $UserGroups.Add("Wellington ProServices")

                }

            }
            $UserGroups.Add("Wellington Staff")
        }

        "Dunedin" {
            Switch ($Department) {
                "ProServices" {
                    $UserGroups.Add("DUN ProServices")

                }
                "Sales" {
                    $UserGroups.Add("Dunedin Sales")

                }
            }
            $UserGroups.Add("Dunedin Staff")
        }
        Default {
        }
    }

    switch ($Division) {
        'Sales' {
            $UserGroups.Add("SalesStaff")
        }
        'internal Sales Support' {
            $UserGroups.Add("Internal Sales Support")
        }
        'Service' {
            $UserGroups.Add("Service Staff")
        }
        Default {
        }
    }
    write-host "$user ALL Groups Are $UserGroups"
    $UserGroups = @()
}

1 Ответ

1 голос
/ 18 июня 2020

Я думаю, у вас есть орфографическая ошибка в $ Divison вверху. Он не соответствует вызову $ Division в операторе switch.

Также попробуйте вывести $ UserGroups в отдельной строке без "".

Я получил:

Bob ALL Groups Are System.Object[] CHCH ProServices Christchurch Staff SalesStaff

В качестве вывода, когда вы делаете это по-своему, а не:

All Staff
Staff Wifi
CHCH ProServices
Christchurch Staff
SalesStaff

При выводе в него не как строку

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