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