拉取域列表和用户列表,按-like givenname和-eq姓氏搜索,输出到csv(如果存在)和启用状态

时间:2016-09-02 14:46:37

标签: powershell csv dns

我有点像一个新手,自我教导自己的角色扮演IAM角色。我被要求进行终止测试,创建一个powershell脚本来检查用户列表是否存在于提供的域列表中,并输出包含其给定名称,姓氏,服务器,存在,已启用和的用户的csv。帐户ID。这是我到目前为止所拥有的。当每个用户输出的第一个,以及设置适当的输出时,我在分裂上摸索。非常感谢任何帮助!

{{1}}

2 个答案:

答案 0 :(得分:1)

Chris,从你的脚本中不清楚$ FirstName和$ LastName变量来自哪里?它们是$ Users变量的属性吗?它不清楚你在哪里导入它们。

如果我认为它们是users变量的属性,你可以尝试这样的事情:

$servers = ".\serverlist.txt"
$users = ".\userlist"
$outfile = ".\findings.csv"

$results = Foreach ($server in $servers) {

    Foreach ($user in $users) {

        $FirstName = $user.FirstName
        $LastName = $user.LastName

        $User = Get-ADUser -Server $server -Filter "GivenName -like '$FirstName*' -and Surname -like '$LastName*'" -properties name,givenname, sn,enabled |Select-Object -Property name,givenname, sn,enabled 

        If(-Not($user))
        {
            [pscustomobject]@{
                FirstName = $FirstName
                LastName = $LastName
                Server = $server
                Present = $false
            }
        }
        Else
        {
            [pscustomobject]@{
                FirstName = $FirstName
                LastName = $LastName
                Server = $server
                Present = $false
            }
        }
    }
}

$results | Export-Csv -NoTypeInformation -Path $outfile

答案 1 :(得分:0)

由于您需要检查用户是否存在于"域"中。你为什么要使用" Servers.txt" - 它包含域信息或服务器信息吗?