如何在 Windows 中创建一个 For 循环并在 For-Each 运算符周围插入单引号
How Can I Make A ForLoop in Windows and Insert with Single Quotes Around the For-Each Operator
所以我有一个奇怪的任务,我正在尝试清理我的 AD 成员资格,我需要为该任务编写一个 for 循环。我们有分配给一个组的组,我们正试图从组中删除这些组,因为不支持嵌套组。我有一个目前有效的 for 循环:
主要命令:
Get-ADGroup -Filter * | Select-Object -Property Name
以上命令为我提供了所有域组的列表。
我想获取此列表并遍历它以显示组成员身份。
使用 ForEach-Object 语句:
Get-ADGroup -Filter * | Select-Object -Property Name | ForEach-Object { Get-ADGroupMember -Identity $_}
这不起作用,因为我无法使用单引号将 group_name
字符串 return 编辑到 $_
中。相反,我需要 return 围绕 $_
运算符的单引号,以便它 return 是 'group_name'
中的 group_name
。
如何在 group_name
周围为 return 加上单引号?
声明的问题:
Get-ADGroup -Filter * | Select-Object -Property Name | ForEach-Object { Get-ADGroupMember -Identity $_ }
是否$_
指的是一个对象属性是Name
而Get-ADGroupMember
不知道如何处理所述对象,如果相反,您指的是对象的 属性 值 它应该可以正常工作:
... | ForEach-Object { Get-ADGroupMember -Identity $_.Name }
重要的是要注意,在这种情况下,根本不需要 Select-Object
,它只会减慢您的脚本速度,此外,如果您想找到 所有具有嵌套的组group as member 您可以使用过滤 cmdlet,例如 Where-Object
:
Get-ADGroup -Filter * | Where-Object {
(Get-ADGroupMember $_.DistinguishedName).where({ $_.ObjectClass -eq 'group' }, 'First')
}
所以我有一个奇怪的任务,我正在尝试清理我的 AD 成员资格,我需要为该任务编写一个 for 循环。我们有分配给一个组的组,我们正试图从组中删除这些组,因为不支持嵌套组。我有一个目前有效的 for 循环:
主要命令:
Get-ADGroup -Filter * | Select-Object -Property Name
以上命令为我提供了所有域组的列表。 我想获取此列表并遍历它以显示组成员身份。
使用 ForEach-Object 语句:
Get-ADGroup -Filter * | Select-Object -Property Name | ForEach-Object { Get-ADGroupMember -Identity $_}
这不起作用,因为我无法使用单引号将 group_name
字符串 return 编辑到 $_
中。相反,我需要 return 围绕 $_
运算符的单引号,以便它 return 是 'group_name'
中的 group_name
。
如何在 group_name
周围为 return 加上单引号?
声明的问题:
Get-ADGroup -Filter * | Select-Object -Property Name | ForEach-Object { Get-ADGroupMember -Identity $_ }
是否$_
指的是一个对象属性是Name
而Get-ADGroupMember
不知道如何处理所述对象,如果相反,您指的是对象的 属性 值 它应该可以正常工作:
... | ForEach-Object { Get-ADGroupMember -Identity $_.Name }
重要的是要注意,在这种情况下,根本不需要 Select-Object
,它只会减慢您的脚本速度,此外,如果您想找到 所有具有嵌套的组group as member 您可以使用过滤 cmdlet,例如 Where-Object
:
Get-ADGroup -Filter * | Where-Object {
(Get-ADGroupMember $_.DistinguishedName).where({ $_.ObjectClass -eq 'group' }, 'First')
}