使用powershell版本2查询广告

使用powershell版本2查询广告,powershell,Powershell,我们有由Windows7和Windows10组成的混合桌面操作系统。我有一个登录脚本,它从每次用户登录时运行的powershell脚本中收集各种信息。windows 7 powershell是唯一的版本2,这意味着我无法使用get aduser,因此我被要求使用与win7和win10兼容的其他方法从AD中查询此信息。我有一行代码没有使用get aduser并成功生成powershell 5(win10)上所有AD用户的列表,但是当我尝试在powershell 2上使用它时,会产生以下错误。 我的

我们有由Windows7和Windows10组成的混合桌面操作系统。我有一个登录脚本,它从每次用户登录时运行的powershell脚本中收集各种信息。windows 7 powershell是唯一的版本2,这意味着我无法使用get aduser,因此我被要求使用与win7和win10兼容的其他方法从AD中查询此信息。我有一行代码没有使用get aduser并成功生成powershell 5(win10)上所有AD用户的列表,但是当我尝试在powershell 2上使用它时,会产生以下错误。 我的问题是:

  • 要使脚本在powershell版本2上运行,我需要更改什么

  • 如何让它输出当前用户而不是AD中的所有用户

  • 谢谢你事先的帮助

    <position> : The following exception was thrown when trying to enumerate the collection: "Configuration system failed t
    o initialize".
    At line:1 char:1
    +  <<<< (New-Object DirectoryServices.DirectorySearcher "ObjectClass=user").FindAll() | Select-object -property path
        + CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemException
        + FullyQualifiedErrorId : ExceptionInGetEnumerator
    

    对于2,将查询更改为类似于
    (新对象DirectoryServices.DirectorySearcher“(&(ObjectClass=user)(SamAccountName=$env:USERNAME)))的内容。FindOne()|选择适用于powershell 5的对象-属性路径
    ,并返回登录用户的名称。如果我想要扩展属性1而不是用户名,我想我应该能够交换掉脚本中的用户名部分?不幸的是,它在powershell版本2上返回一个错误。我可以在这里发布错误吗?
    调用带有“0”参数的“FindOne”时出现异常:“发生了操作错误”。第1行字符:111+(新对象DirectoryServices.DirectorySearcher)(&(ObjectClass=user)(SamAccountName=$env:USERNAME))).FindOne@notjustme我也在powershell 2上测试了另一种类似的替代语法,错误似乎是相同的:
    ([AdiseArcher]”(&(objectClass=group)(!(member=*))))).FindAll()
    使用“0”参数调用“FindAll”异常:“发生了操作错误”。第1行字符:62+([AdiseArcher]”(&(objectClass=group)(!(member=*))”)。FindAll确保您使用了正确的
    “objectClass=user”
    引号,而不是
    “objectClass=user”
    (如果这不是问题,请在问题中更正)。排除Windows 7计算机的任何其他问题(或传输脚本时出现的任何问题,可能会解释不正确的双引号),您可以使用以下命令在Windows 10计算机上启动PowerShell 2版主机:
    PowerShell-version 2
    (New-Object DirectoryServices.DirectorySearcher “ObjectClass=user”).FindAll() | Select-object -property path