gpt4 book ai didi

powershell - 如何使用 Powershell 显示用户的 OU

转载 作者:行者123 更新时间:2023-12-03 08:38:49 26 4
gpt4 key购买 nike

我正在尝试编写一个脚本来分别显示用户特定的属性、名称、邮件地址、OU。输出符合预期,但是我找不到任何解决方案来仅提取和显示用户的 OU 详细信息。当我选择“DistinguishedName”时,响应如下模式:{CN = X, OU = Y, DC = Z},我只想显示 OU。 iv'e 试图找到一种分割 DN 字符串的方法,但到目前为止还没有什么乐趣。

提前致谢

Set-ExecutionPolicy Unrestricted 
$filepath = "C:\Users\Administrator\Desktop\ADusers.Csv"
$searchDomain = "DC = GSDOM, DC=internal"
$adminCredential = Get-Credential
$adSrv = 'GSDC'
$session = New-PSSession -ComputerName "$adSrv" -Credential ($adminCredential)
Invoke-Command $session -Scriptblock { Import-Module ActiveDirectory }
Import-PSSession -Session $session -module ActiveDirectory
Get-ADUser -Filter * -Properties * | Select-Object "Name", "EmailAddress", "distinguishedName"

最佳答案

一种有效的方法是从 DistinguishedName 派生 OU:

Get-ADUser -Filter * -Properties Mail |
Select Name,Mail,DistinguishedName,@{n='OU';e={$_.DistinguishedName -replace '^.*?,(?=[A-Z]{2}=)'}}

这利用了计算属性,可以在 Select-Object 找到这些属性。 .

-replace 使用不区分大小写的正则表达式进行匹配。由于我们没有包含替换字符串,因此匹配的文本只是被删除。 -creplace 是区分大小写的版本。请参阅Regex用于正则表达式分割。

使用 -Properties * 并不明智,因为这可能会从远程服务器返回大量数据。由于您还使用 -Filter * ,这意味着您将返回所有用户的所有属性。它非常慢并且资源有限。

关于powershell - 如何使用 Powershell 显示用户的 OU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63194761/

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