Powershell 如何从命令行拆分内容
我的问题是如何在powershell中拆分命令行提示的内容 我想在我的服务器上找到所有OU的路径,以便以后使用它们Powershell 如何从命令行拆分内容,powershell,split,Powershell,Split,我的问题是如何在powershell中拆分命令行提示的内容 我想在我的服务器上找到所有OU的路径,以便以后使用它们 get-aduser -Filter * | Select DistinguishedName | findstr "OU=" OUTPUT CN=Username1,OU=firma1,DC=bc,DC=local CN=Username2,OU=firma2,DC=ad,DC=local and I want only OU=firma1,DC=bc,DC=local O
get-aduser -Filter * | Select DistinguishedName | findstr "OU="
OUTPUT
CN=Username1,OU=firma1,DC=bc,DC=local
CN=Username2,OU=firma2,DC=ad,DC=local
and I want only
OU=firma1,DC=bc,DC=local
OU=firma2,DC=ad,DC=local
这应该起作用:
Get-ADUser -Filter * |
Where-Object { $_.DistinguishedName.IndexOf('OU=') -gt 0 } |
ForEach-Object { $_.DistinguishedName.Substring($_.DistinguishedName.IndexOf('OU=')) }
此代码过滤掉任何不在OU中的对象,其中包括Users
内置容器中的对象,如CN=Administrator、CN=Users、DC=bc、DC=local
。您还可以使用ForEach对象中的if
语句处理这些用户,这应该可以:
Get-ADUser -Filter * |
Where-Object { $_.DistinguishedName.IndexOf('OU=') -gt 0 } |
ForEach-Object { $_.DistinguishedName.Substring($_.DistinguishedName.IndexOf('OU=')) }
此代码过滤掉任何不在OU中的对象,其中包括Users
内置容器中的对象,如CN=Administrator、CN=Users、DC=bc、DC=local
。您还可以使用ForEach对象中的if
语句处理这些用户
直接使用.NET怎么样
这将区分名称
在逗号处分成两部分(即第一个逗号之前的所有内容和之后的所有内容),并仅返回第二部分(数组索引[1]
)
我可能会在其末尾添加一个排序对象
和一个选择对象-唯一
值得一读:,也许这就是你真正想要的
此方法与PowerShell本机-split
运算符类似:
$DNs = Get-ADUser -Properties DistinguishedName | Select -ExpandProperty DistinguishedName
$DNs -split ',',2 | where { $_.StartsWith("OU=") }
直接使用.NET怎么样
这将区分名称
在逗号处分成两部分(即第一个逗号之前的所有内容和之后的所有内容),并仅返回第二部分(数组索引[1]
)
我可能会在其末尾添加一个排序对象
和一个选择对象-唯一
值得一读:,也许这就是你真正想要的
此方法与PowerShell本机-split
运算符类似:
$DNs = Get-ADUser -Properties DistinguishedName | Select -ExpandProperty DistinguishedName
$DNs -split ',',2 | where { $_.StartsWith("OU=") }
我来这里是为了提到获得组织单元。当被问及在不需要任何其他操作的情况下,这将很好地解决问题时,我在这里提到了getadorganizationalUnit
。正如我所问的那样,这将在不需要任何其他操作的情况下很好地工作