gpt4 book ai didi

powershell - 如何使用 PowerShell 为 AD 组中的每个人检索电子邮件别名和 CN

转载 作者:行者123 更新时间:2023-12-04 01:28:50 25 4
gpt4 key购买 nike

我将 PowerShell 与 Quest AD cmdlet 结合使用。

我可以使用 Get-QADGroupMember cmdlet 获取给定组中每个人的列表。到目前为止一切顺利,但我也想获得他们的电子邮件别名。当前返回的所有内容如下:

Name      Type  DN
---- ---- --
Jane Doe User CN=Jane Doe,OU=Employee,DC=companyname,DC=com
Job Blow User CN=Joe Blow,OU=Employee,DC=companyname,DC=com

我尝试将 get-qaduser 与 -includeallproperties 标志一起使用,但我仍然只返回上述字段,我不知道如何获取文档所说的缓存在计算机上的返回数据。

如有任何帮助,我们将不胜感激。

更新

我最终使用了类似于下面的“select”:

$everyone = Get-QADGroupMember "All employees" | select firstname, lastname, email

这将我需要的所有内容都放入了哈希表数组中。在这一点上,通过使用如下代码遍历每个人,可以很容易地做任何需要做的事情:

for ($i=0; $i -le $everyone .length-1; $i++)
{
write-host $everyone[$i].email
}

我花了很长时间才找到“.”从哈希表中提取特定值的符号。我进行了文本解析,这很有效,但我知道这不是正确的方法,最终找到了关于点符号的文档。我希望在此处记录下来可以为其他人节省一些时间!

最佳答案

您确定它真的不会返回该信息吗?您是否尝试过将命令通过管道传输到 Get-MemberFormat-List -Force *? PowerShell 可以配置为仅显示项目的一些属性,而不是此处可能的所有属性。

您可以使用 Select-Object 选择属性,或者如果您知道它们在那里,则只需使用 select 即可,即使默认情况下 PowerShell 不显示它们:

Some-Command | select Name, Type, DN, SomeOtherProperty

例如,您也可以通过 Get-ChildItem 看到这一点:

PS Home:\> gci *.ps1


Directory: C:\Users\Joey


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2011-04-27 18:50 169 format.ps1
-a--- 2011-04-26 18:36 1064 Untitled1.ps1
-a--- 2011-04-27 18:41 69 x.ps1
-a--- 2011-04-23 19:58 91 y.ps1

正常调用只产生四个属性:ModeLastWriteTimeLengthName。然而,还有更多,如 Get-Member 所示。

PS Home:\> gci *.ps1|gm -MemberType Property


TypeName: System.IO.FileInfo

Name MemberType Definition
---- ---------- ----------
Attributes Property System.IO.FileAttributes Attributes {get;set;}
CreationTime Property System.DateTime CreationTime {get;set;}
CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set;}
Directory Property System.IO.DirectoryInfo Directory {get;}
DirectoryName Property System.String DirectoryName {get;}
Exists Property System.Boolean Exists {get;}
Extension Property System.String Extension {get;}
FullName Property System.String FullName {get;}
IsReadOnly Property System.Boolean IsReadOnly {get;set;}
LastAccessTime Property System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime Property System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set;}
Length Property System.Int64 Length {get;}
Name Property System.String Name {get;}

关于powershell - 如何使用 PowerShell 为 AD 组中的每个人检索电子邮件别名和 CN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861816/

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