csv的带雇员编号的csv中的SamAccountName

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csv的带雇员编号的csv中的SamAccountName相关的知识,希望对你有一定的参考价值。

我有这个工作脚本:

    Import-CSV -Path "$homedesktopScriptfi13.04.20.csv" | ForEach-Object {

    Get-ADUser -Filter "employeeid -like '*$($_.employeeid)*'"  -Properties employeeid | select employeeid,name,SamAccountName

} | Export-CSV "$homedesktopScriptfi-san-out.csv" -Encoding UTF8 -NoTypeInformation

我给他一个带员工编号的CSV文件,并向后发送一个带有SamAccountName的文件...带有特定参数的雇员ID和雇员ID。

这是一个改进的版本-

$csv = Import-CSV -Path "$homedesktopScriptfi13.04.20.csv"

$csvOutput = "$homedesktopScriptfi-san-out.csv"

$object = @()

foreach($employee in $csv){

    $ADUserObject = Get-ADUser -Filter "employeeID -eq '$($employee.employeeID)'" -Properties samAccountName, displayName ,employeeID  -ErrorAction SilentlyContinue

    if($ADUserObject){

        $object += New-Object psobject -Property @{

            displayName = $ADUserObject.displayName

            samAccountName = $ADUserObject.SamAccountName

            employeeID = $ADUserObject.employeeID

        }

    }else{

        Write-Host "No employee found for $($employee.employeeId)" -ForegroundColor Red

    }

}

if($object){

    $object | Select-Object displayName, samAccountName, employeeID | Export-Csv -Path $csvOutput -Delimiter "," -Encoding UTF8 -NoTypeInformation

}


第一个版本会产生更多结果,因为如果employeeID包含错误“例如,CSV 12345中的employeeID和ActiveDirectory 123456中的employeeID”,它将给出结果。在改进的版本中,它会使用任何不正确的ID引发错误。问题是如何更改改进的版本,以便即使出现错误也能产生结果(如示例中所示)?我才刚刚开始学习PS,并在帮助下编写了改进的版本。

答案

结果

$csv = Import-CSV -Path "$homedesktopScriptID.csv"

$csvOutput = "$homedesktopScript	z-san-out.csv"

$object = @()

foreach($employee in $csv){

    $ADUserObject = Get-ADUser -Filter "employeeID -like '*$($employee.employeeID)*'" -Properties samAccountName, displayName ,employeeID  -ErrorAction SilentlyContinue

    if($ADUserObject){

        $object += New-Object psobject -Property @{

            displayName = $ADUserObject.displayName

            samAccountName = $ADUserObject.SamAccountName

            employeeID = $ADUserObject.employeeID

        }

    }else{

        Write-Host "No employee found for $($employee.employeeId)" -ForegroundColor Red

    }

}

if($object){

    $object | Select-Object displayName, samAccountName, employeeID | Export-Csv -Path $csvOutput -Delimiter "," -Encoding UTF8 -NoTypeInformation

}

以上是关于csv的带雇员编号的csv中的SamAccountName的主要内容,如果未能解决你的问题,请参考以下文章

从两个熊猫系列(csv的列作为DataFrame)创建元素字典

是啥导致 weka 中的 csv 加载错误?

将给定 URL 中的 HTML 表格抓取到 CSV

在毫秒访问中自动上传 csv 数据,并包括自动编号主键 ID 字段

如何在 Python 中使用 Pandas 数据结构附加多个 CSV 文件

使用 cx_Oracle 中 csv 文件中的变量更新数据库