微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建 PowerShell 脚本模板以方便组管理

如何解决创建 PowerShell 脚本模板以方便组管理

首先感谢其他用户的帮助,让我学到了很多。

我有一个问题,我的公司有很多用户模板(很多不同的组设置取决于操作)。因此,我想让我的大学更轻松地将用户分配给运营。

我想了一个解决方案,我的大学将用户和组输入到 CSV 文件中,然后脚本通过 CSV 行,检测操作,然后转到操作 TXT 文件获取组信息,然后添加用户
这些文件是: UserAndOperation.csv 包括 2 列,第一列是用户,第二列是操作 然后添加 TXT 文件,在其中为每一行添加组(我也只想制作一个操作 csv,第一列是操作名称,第二列是必须添加的组,并用“,”分隔但这吓坏了我的眼睛:D))

这是我创建的弗兰肯斯坦代码

Import-Csv ".\UserAndOperation.csv" | ForEach-Object {get-aduser $_.User | if($_.Operation = "Operation1"){
        $Groups = Get-Content .\operation1.txt
        foreach($group in $groups)
        {Add-ADPrincipalGroupMembership -Identity $_.User -MemberOf $Group}
    }
elseif ($_.Operaiton = "Operation2"){
        $Groups = Get-Content .\operation2.txt
        foreach($group in $groups)
        {Add-ADPrincipalGroupMembership -Identity $_.User -MemberOf $Group}
    }

And goes for each operation
}

它给出了一个错误,它不能识别 if 和 elseif 语句。

我不知道如何继续,有人能帮我解决吗?

谢谢和最好的问候。

解决方法

您不能将结果传送到 if 语句中。 例如

get-aduser $_.User | if($_.Operation

您还有一个拼写错误:

$_.Operaiton

我建议通过尝试每行放置一个语句来稍微清理代码,以免混淆自己,输出调试语句等.

,

already been pointed out 一样,您不能将诸如 if 之类的任意控制流语句推入管道语句的中间。

除此之外,您预期的 if/else 方法将意味着大量重复代码,使脚本更难维护。

您可以使用哈希表 (@{}) 将操作名称“映射”到相关文件名,这样您只需编写循环来添加组成员一次 :

# map the Operation column value to the relevant file path
$operations = @{
  'Operation1' = 'path\to\operation1.txt'
  'Operation2' = 'path\to\operation2.txt'
  'Operation3' = 'path\to\operation3.txt'
}

Import-Csv ".\UserAndOperation.csv" | ForEach-Object {
  $User = Get-ADUser $_.User
  $Groups = Get-Content $operations[$_.Operation]
  foreach($Group in $Groups){
    Add-ADPrincipalGroupMembership -Identity $User -MemberOf $Group
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?