none
导出用户组信息 RRS feed

  • 问题

  • 你好

    我有一个导出组信息需求,需求如下,请协助处理,谢谢

    导出组信息保护

    组名,用户名,别名,工号,邮件账号

    2021年8月23日 7:38

全部回复

  • 您好,

    如果您是需要导出这个组的成员信息的话,可以使用Get-DistributionGroupMember来完成。

    比如说:

    Get-DistributionGroupMember Admins | FT Name,Alias,PrimarySMTPAddress >C:\Admins.txt

    这样就会导出用户名,别名和邮件账号到这个文件里。

    我不是很明白您说的工号是什么,如果您是指自定义属性的话,可以在上边FT后添加“CustomAttribute1(2,3等)”。

    很抱歉我对脚本的内容也不太了解,所以只能根据Exchange提供的命令行来帮助您。十分感谢您的理解!

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年8月24日 6:26
  • 你好

    我想导出所有组信息,包含组名,用户名,别名,工号,邮件账号,工号为创建用户是给的一个数字代码,登录系统都是通过数字代码,另外导出数据可以分列显示吗

    2021年8月24日 9:22
  • 您好,

    您的需求应该是导出所有组的信息,包括组名,组内成员的用户名,别名,工号,邮件账号。

    这样的话我认为可以通过编写一个脚本来实现。首先将Get-DistributionGroup的结果赋给一个变量$Gp,然后对变量里的每个成员进行Get-DistributionGroupMember $GP 然后提取需要的信息。

    但是问题在于如何把组名加到最前边单独形成一列,然后就是工号是怎么提取的。

    您可以通过Get-Mailbox user | FL 来检查员工的工号么?它对应的属性是什么?

    我尝试写了一个命令行,您可以看看是否满足您的需求:

    $Group = Get-DistributionGroup

    $Group | Foreach {Get-DistributionGroupMember $_.name | FT Name,Alias,PrimarySMTPAddress > C:\$_.txt}

    这样可以将您需要的用户信息导出到文件夹名为“组名”的TXT文档下。然后您工号属性的话在您知道之后可以将其添加到Alias之后:Alias,XXX,Primary....

    效果大概如下:

    再次对您说声抱歉,我尝试了很多方法,经过了这两天的搜索和研究,也没有找到能够将组名加入到输出列表里边的命令行。只能使用以上的方法作为替代。

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年8月26日 7:11
  • 你好

    1. 查询那条命令报错

    [PS] C:\Windows\system32>Get-Mailbox fujun li | FL
    A positional parameter cannot be found that accepts argument 'li'.
        + CategoryInfo          : InvalidArgument: (:) [Get-Mailbox], ParameterBindingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Get-Mailbox
        + PSComputerName        : cbx01v.corp.intra

    2. 根据下面那个命令导出只有姓名,别名,邮箱名,工号我不知道是那个命令最主要没有组信息,而且没有分列显示都是在一起

    2021年8月26日 8:01
  • 您好,

    EMS和PowerShell的命令是不能直接加空格的。您可以加双引号,比如这样:

    Get-Mailbox “Fujun Li” | FL

    第二个的话,因为我也不知道您说的“工号”在命令行里是以什么属性显示出来的,所以没办法来查询。另外就是要在显示这些信息的基础上加入组信息的话,需要PowerShell命令行和脚本的相关知识,我对此也不是十分了解。

    另外请问您说的分列显示大概是怎么样的?您能否说明一下,我对此将继续进行研究。

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年8月26日 8:45
  •  你好

    1. 还是报错

    [PS] C:\Windows\system32>Get-Mailbox "juanjuan yao" | FL
    The operation couldn't be performed because object 'juanjuan yao' couldn't be found on 'C08.dnake.top'.
        + CategoryInfo          : NotSpecified: (:) [Get-Mailbox], ManagementObjectNotFoundException
        + FullyQualifiedErrorId : [Server=C1V,RequestId=84edbb78-53b0-4459-965f-81afc45ae5e7,TimeStamp=8/26/2021 9
       :17:45 AM] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] C2609DDE,Microsoft.Exchange.Management.Recip
      ientTasks.GetMailbox
        + PSComputerName        : c1v.corp.intra

    2. 需要导出的用户后面加上组,分列比如姓名,别名,邮件地址都是每一列每一列分开显示,不需要做数据提取就可以直接使用

    2021年8月26日 9:21
  • 您好,

    1. 这样的话您命令行里的 Juanjuan Yao应该是这个用户的显示名称。在命令行里我们指定某个身份对象是不能使用显示名称的。

        您可以查看Get-Mailbox命令行里的-Identity可用的值。

    2. 我仍然不是十分理解您的需求。请问是类似于一下这种么:

    GroupName: 123

    Name: 123

    Alias: 123

    工号:123

    邮件地址:123@asd.com

    如果不是的话您可以举例来更好的表达您的想法。

    另外正如我在之前提到的,该论坛是面向于Exchange一般性问题,包括服务器,客户端,邮件流等等。

    脚本方面的话我们只是有过了解,因此可能无法准确,迅速得根据您的需求写出脚本。我们会尽力去依据现有的或者其他能搜索到的脚本进行修改来满足您的需求:)

    再次感谢您的理解,祝您工作愉快!

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年8月27日 8:20
  •  你好

    1. 这个我没太明白你说的值我怎么来找

    2. 通过AD属性,大概有几个选项:sAMAccountName,pager,这两个值显示的是工号,我不知道你们叫什么,还有一个是EmployeeID,我这里说的工号就是上面写的工号:123


    • 已编辑 dnake668 2021年8月27日 9:02 修改内容
    2021年8月27日 9:01
  • 您好,

    1. 这个的话其实是因为我们使用Get-Mailbox -Identity xxx时,这个XXX只能是以下的名称类型:

    Name
    Alias
    Distinguished name (DN)
    Canonical DN
    Domain\Username
    Email address
    GUID
    LegacyExchangeDN
    SamAccountName
    User ID or user principal name (UPN)

    这其中就包括,名称(Name),别名(Alias),邮件地址等等。

    您可以使用Get-Mailbox | FT DisplayName,Name,Alias,EmailAddress 来查看显示名称所对应的名称,别名,邮件地址。

    2. 我检查了所有包括在Exchange里的属性,只找到了sAMAccountName这个属性,如果所有用户的工号都对应的是这个属性的话,那么我们可以是可以用这个属性得到工号的。

    还请您说明一下您需要的格式。我的确不是特别理解您说的一列一列分开显示,不需要提取就能使用的含义。或者您的意思是导出到CSV文件里?能用Excel来查看那种么?

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年8月31日 6:56
  • 你好

    1. 我们可以尝试下sAMAccountName这个属性导出,麻烦你提供下命名,我上次直接在Alias后加的这个参数,导出发现没有变化而且把邮箱地址项还冲掉了

    2. 我的需求就是导入文件包含这些信息:组名,用户名,别名,工号,邮件账号

    3. 我说的分列入下图

    2021年8月31日 8:54
  • 您好,

    经过我这几天的研究,仍然没找到一个能满足您要求的脚本。

    按照整个程序的进程来说,首先我们是通过Get-DistributionGroup来得到您环境中所有的通讯组以及启用邮件的安全组。

    然后通过Foreach对每个组执行Get-DistributionGroupMember,也就是找出组内的成员。这时我们使用Select来查找需要的属性。

    但是对于Get-DistributionGroupMember来说,“组名”,也就是Get-DistributionGroup里得到的值不能作为一个结果来直接Select到。所以需要拼接到这个结果中,而且需要把他提到第一列。

    这整个过程需要对PowerShell脚本有一定的了解才能做到。十分抱歉我也尝试过很多命令行,但都无法像您列出的那样将组名直接添加到结果里。

    作为一种替代方案,可以使用以下的脚本分别将结果导出到以组名命名的csv文件里,然后手动使用excel在第一列添加“组名”以及对应的名称,然后将多个csv文件的内容拷贝到一个csv文件里。但是这个方案只适合组比较少的情况。

    $Group = Get-DistributionGroup
    $Group | Foreach {Get-DistributionGroupMember $_.name | Select Name,Alias,sAMAccountName,PrimarySMTPAddress > C:\$_.csv}

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年9月6日 9:10
  • 你好

    你上面这个脚本跑下来内容也不是我最终需要的结果,我查看AD属性mailnickname的值是工号,我按照你上面说的加上参数导出并没有多出参数,并且还会减少之前的参数,不知道我是不是加的不对,而且根据你这个脚本跑下来也没有分列显示,还是在一列中显示

    脚本如下,请查看

    $Group = Get-DistributionGroup
    $Group | Foreach {Get-DistributionGroupMember $_.name | Select Name,Alias,mialNickname,sAMAccountName,PrimarySMTPAddress > C:\1\gr.csv}

    2021年9月7日 5:56
  • 您好,

    经过我的研究,您可以尝试一下改进后的命令行:(之前的不变)

    $Group | Foreach {Get-DistributionGroupMember $_.name | Select Name,Alias,sAMAccountName,PrimarySMTPAddress | Export-csv C:\$_.CSV -NotypeInformation}

    这样的话到处之后就直接是分隔后的csv文件了,可以直接在excel里看到是不同列的。

    至于您说的mailnickname,我使用Get-Mailbox查找不到这个属性。

    请问sAMAccountName这个属性显示的不是工号么?

    您可以先用Get-DistributionGroupMember GroupName | FT Name,sAMAccountName 来查看是不是正确的。

    请注意我们需要调用Get-DistributionGroupMember | FL 里有的属性来导出到CSV文件。

    Get-DistributionGroupmember GroupName | where name -eq User1 | fl > C:\1.TXT

    然后使用CTRL + F 来查找您的工号,看哪个属性是工号属性。

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.


    2021年9月9日 9:15
  • 您好,

    请问以上建议对您有帮助吗? 如果您对此问题有任何疑问或需要进一步的帮助,随时可以告诉我。 如果问题已解决,请将有用的答复标记为答案,以便其他有相同问题的人能够更快速的找到答案。

    十分感谢您的理解。

    此致,

    Lou


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年9月13日 1:42
  • 你好

    现在使用

    $Group = Get-DistributionGroup
    $Group | Foreach {Get-DistributionGroupMember $_.name | Select Name,Alias,sAMAccountName,PrimarySMTPAddress | Export-csv d:\123\user.CSV -NotypeInformation}

    这个脚本导出的信息更少了,导出只有名称,别名,邮箱地址,没有别的信息,而且只导出了60多个,我用户实际有3000多个的

    2021年10月14日 6:31