gpt4 book ai didi

powershell - 问题使脚本在Powershell中接受带空格和破折号的组名

转载 作者:行者123 更新时间:2023-12-03 01:26:23 28 4
gpt4 key购买 nike

因此,我在Powershell中编写了一些用于导入/导出AD用户的代码,但遇到了一个非常烦人的问题。我正在尝试从AD中的通讯组中获取所有成员,但是Powershell(如我所写的)似乎不接受组名“System Users-Department”。
如果我运行Get-ADGroup 'System Users' ...就可以了
如果我运行Get-ADGroup 'System-Users' ...就可以了
如果我运行Get-AdGroup 'System Users - Department',它将不起作用,并返回“找不到具有身份的对象”异常错误。
最简单的方法就是更改组的名称,但是我不能,因为它用在其他许多我无法控制的配置中。因此,我需要找到一种让Powershell读取并接受该组名的方法。
有任何想法吗?

最佳答案

Get-ADGroup 期望以下4种不同类型的身份:

  • 专有名称
  • 一个GUID(objectGUID)
  • 安全标识符(objectSid)
  • 安全帐户经理帐户名(sAMAccountName)

  • 由于 System Users - Department包含空格,因此只能将其解释为专有名称,但是可以使用相对名称,因此它可能不是唯一的,以这种方式使用它很危险。我建议改用 sAMAccountName。在您的组中查找并使用它来标识您的组。使用特殊字符会减少麻烦,这会导致另一种可能的解释:
    组的 displayName可能包含unicode字符。您确定在组的显示名称中使用哪个“减号”字符吗?一行中有4个不同的字符,以查看其区别:----( read more)。在查找 displayName时,您必须确切地知道使用了哪些符号来创建名称。否则,您将无法在字符串比较中将其匹配。为了确保打印正确性,您的 displayName将包含一个n-破折号,因为它被空格包围。例如,如果它是从Word复制而来的,则可能会这样做,但是仅通过按键盘上的“减号”就不会得到此符号。这也可能是您遇到问题的原因。

    关于powershell - 问题使脚本在Powershell中接受带空格和破折号的组名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62624763/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com