我希望通过创建一个用户应该属于的组的列表来自动化用户组,基于3个需求,他们的分支,他们在该分支中的部门,以及他们的部门。部门是全国性的,而每个部门都依赖于分部,到目前为止,我有这个坏掉的烂摊子哈哈,
我使用开关和数组(代码未显示)分别处理分支和分区,但它们是互斥的,因此不能与需要基于分支进行更改的部门一起工作。我尝试嵌套这些开关,同时也附加到ArrayList中,但似乎失败了很多。我真的不知道下一步该怎么办。
最终目标将是组列表的输出,然后将用户添加到该列表中。任何指导都将不胜感激,谢谢。
$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 = @()
}发布于 2020-06-18 08:38:22
我认为您在顶部的$Divison中有一个拼写错误。它与switch语句中对$Division的调用不匹配。
还可以尝试在单独的行上输出$UserGroups,不带"“。
我得到了:
Bob ALL Groups Are System.Object[] CHCH ProServices Christchurch Staff SalesStaff作为输出,而不是按照自己的方式来做:
All Staff
Staff Wifi
CHCH ProServices
Christchurch Staff
SalesStaff当输出到它时不是字符串
https://stackoverflow.com/questions/62440130
复制相似问题