0

我正在尝试查找按业务划分的 XP 计算机帐户。我们有几个不同的业务,分布在多个域中。

我有一组不同的 txt 文件 (BusinessX.txt),每个企业都有一个文件,其中列出了企业计算机帐户的存储位置。每个列表可以在多个域和/或根级域中具有多个不同的 OU。例如...

Business1.txt 包含...

Business1.ad.com/Desktop/BusinessUnitA
Business1.ad.com/Desktop/BusinessUnitB
Project1.ad.com/Desktop
Project2.ad.com

我有我的搜索工作来定位单个域的 XP 计算机帐户。当我尝试扩展搜索以根据我的列表在域之间动态更改时,我没有成功。我正在考虑在我的 ForEach-Object 循环中放置一个“if”语句来验证域并将其切换为connect-QADService -Service 'Business1.ad.com'. 尽管某些域有 150,000 个计算机帐户要检查,但这似乎会增加大量开销。

根据我的 txt 文件列表动态切换域的策略有什么建议吗?

这是我的脚本。

get-content $Business1.txt |
ForEach-Object {get-qadcomputer -SearchRoot $_ -OSName '*XP**' -DontUseDefaultIncludedProperties -IncludedProperties OSName, CanonicalName, PwdLastSet, LastLogon, LastLogonTimeStamp} |
Select OSName, canonicalName, PwdLastSet, LastLogon, LastLogonTimeStamp |
Export-Csv “C:\XP_Computers_Business1_$((Get-Date).ToString('yyyy-MMM-dd_hh-mm-ss')).csv“ -NoTypeInformation 
4

1 回答 1

0

如果您首先阅读所有文本文件(也许将文件名添加为对象属性,以便您知道它来自哪里),那么在每个域上唯一排序然后让脚本按域搜索域应该不会太难。这样,您只需为每个域进行一次连接。

从我的头顶(完全未经测试的代码)我会做类似的事情:

    $files = get-childitem "C:\SomeFolder"
    #Construct an array to hold objects
    $OUSearchList = @()
    foreach ($file in $files)
    {
        $content = get-content $file
        #Get-content returns an array of lines - iterate
        foreach ($line in $content)
        {
            #Construct custom object
            $myobj = "" | Select OUPath, Filename, Domain
            $myobj.OUPath = $line
            $myobj.FileName = $File.Name
            $myobj.Domain = $myobj.OUpath.Split("/")[0]
            $ouSearchList += $myobj
        }

    }

    #Get the unique domains
    $Domains = $OUSearchList | select Domain -Unique

    #List through all the search paths, domain by domain
    foreach ($domain in $domains)
    {
        $DomainOUSearchPaths = $OUSearchList | where {$_.Domain -eq $domain}
        foreach ($search in $DomainOUSearchPaths)
        {
            $searchpath = $search.OUPath
            $searchFileName = $search.filename
            #put search logic in here

        }

    }
于 2014-04-01T06:20:13.083 回答