Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 获取ADUser跨林搜索延迟_Powershell_Active Directory - Fatal编程技术网

Powershell 获取ADUser跨林搜索延迟

Powershell 获取ADUser跨林搜索延迟,powershell,active-directory,Powershell,Active Directory,使用PowerShell,我正在尝试使用Get ADUser和filter以及givenname和姓氏或employeeid等名称属性之一对ADUser进行跨林搜索,并使用Measure命令可以看出,当未指定GC端口时,跨林搜索会更快。我的理解是,GC是为更快地获取结果而设计的 请参考下面我的测量命令测试结果 查询: 为什么在给定的示例中GC的结果较慢?这是因为跨森林搜索吗 Get ADUser的filter参数在某些属性上的工作速度是否比其他属性快,比如AD属性的优先顺序 在某些情况下,跨森

使用PowerShell,我正在尝试使用
Get ADUser
filter
以及
givenname
姓氏
employeeid
等名称属性之一对ADUser进行跨林搜索,并使用
Measure命令
可以看出,当未指定GC端口时,跨林搜索会更快。我的理解是,GC是为更快地获取结果而设计的

请参考下面我的
测量命令
测试结果

查询:

  • 为什么在给定的示例中GC的结果较慢?这是因为跨森林搜索吗
  • Get ADUser
    filter
    参数在某些属性上的工作速度是否比其他属性快,比如AD属性的优先顺序
  • 在某些情况下,跨森林连续搜索是否可能更快?(具有缓存功能)
  • 非常感谢您提供任何信息或参考

    我的理解是,GC是为更快地获取结果而设计的

    GC旨在从整个AD林中查找结果,而无需单独查询每个域。如果林中只有一个域,那么实际上没有任何理由使用GC,也有理由不使用它(因为并非所有属性都复制到GC,如
    employeeID

  • 为什么在给定的示例中GC的结果较慢?这是因为跨森林搜索吗
  • 有很多原因可以让它变慢。您执行查询时,它可能正忙着。我可以根据不同的请求点击不同的服务器(这就是Mathias的建议发挥作用的地方)。如果您的AD林中有多个域,那么GC只是一个更大的数据库

    如果它从GC返回的结果比从DC返回的结果多,那么肯定会这样做(因为
    Get ADUser
    如何返回结果)。但您的搜索似乎只应该返回一个结果

  • Get ADUser
    filter
    参数在某些属性上的工作速度是否比其他属性快,比如AD属性的优先顺序
  • 这并不是特定于
    获取ADUser
    ,而是广告的工作方式。一些属性被索引,使得查询更快(就像任何数据库一样)。有些属性不是。名字和姓氏都有索引,
    employeeID
    extensionAttribute11
    没有索引(这意味着必须查看每个用户帐户才能找到匹配项)。如果使用
    -ResultSetSize
    参数并将其设置为
    1
    ,可能会节省一点时间。通过这种方式,广告知道它只需要找到一个结果,并且会停止关注它找到的结果。不过,这可能没有任何明显的效果

  • 在某些情况下,跨森林连续搜索是否可能更快?(具有缓存功能)
  • 对。我自己也看过。后续相同的查询将快得多。同样,对于任何数据库来说,这样的行为都是很正常的

    如果您担心性能,我会坚持使用DirectorySearcher,就像您在其他问题中所做的那样。你对发生的事情有更多的控制权

    我的理解是,GC是为更快地获取结果而设计的

    GC旨在从整个AD林中查找结果,而无需单独查询每个域。如果林中只有一个域,那么实际上没有任何理由使用GC,也有理由不使用它(因为并非所有属性都复制到GC,如
    employeeID

  • 为什么在给定的示例中GC的结果较慢?这是因为跨森林搜索吗
  • 有很多原因可以让它变慢。您执行查询时,它可能正忙着。我可以根据不同的请求点击不同的服务器(这就是Mathias的建议发挥作用的地方)。如果您的AD林中有多个域,那么GC只是一个更大的数据库

    如果它从GC返回的结果比从DC返回的结果多,那么肯定会这样做(因为
    Get ADUser
    如何返回结果)。但您的搜索似乎只应该返回一个结果

  • Get ADUser
    filter
    参数在某些属性上的工作速度是否比其他属性快,比如AD属性的优先顺序
  • 这并不是特定于
    获取ADUser
    ,而是广告的工作方式。一些属性被索引,使得查询更快(就像任何数据库一样)。有些属性不是。名字和姓氏都有索引,
    employeeID
    extensionAttribute11
    没有索引(这意味着必须查看每个用户帐户才能找到匹配项)。如果使用
    -ResultSetSize
    参数并将其设置为
    1
    ,可能会节省一点时间。通过这种方式,广告知道它只需要找到一个结果,并且会停止关注它找到的结果。不过,这可能没有任何明显的效果

  • 在某些情况下,跨森林连续搜索是否可能更快?(具有缓存功能)
  • 对。我自己也看过。后续相同的查询将快得多。同样,对于任何数据库来说,这样的行为都是很正常的


    如果您担心性能,我会坚持使用DirectorySearcher,就像您在其他问题中所做的那样。您可以更好地控制正在发生的事情。

    要使结果具有可比性,您至少需要确保查询相同的域控制器。执行
    $server=Get ADDomainController-Service GlobalCatalog-Discover
    ,然后使用
    -server“$server
    :3268”和重复测量