Powershell 从AD获取SamAccountName

Powershell 从AD获取SamAccountName,powershell,active-directory,powershell-2.0,powershell-3.0,Powershell,Active Directory,Powershell 2.0,Powershell 3.0,我需要一些关于这个脚本的帮助 我正在尝试使用employeeid获取用户找到的csv文件,并将SamAccountName、DisplayName返回到csv文件 $csv_data = Import-Csv -Path C:\Scripts\test2.scv -Delimiter "," | Select-Object DisplayName ,SamAccountName | Out-File -FilePath C:\Scripts\test3.scv 可能是这样的,但仍然不起作用

我需要一些关于这个脚本的帮助

我正在尝试使用employeeid获取用户找到的csv文件,并将SamAccountName、DisplayName返回到csv文件

 $csv_data = Import-Csv -Path C:\Scripts\test2.scv -Delimiter "," | Select-Object DisplayName ,SamAccountName | Out-File -FilePath C:\Scripts\test3.scv


可能是这样的,但仍然不起作用:(

我想你已经很接近了,甚至可能已经达到了。但这里有一个干净的方法。还要注意的是,你使用了“.scv”而不是“.csv”,不知道这是不是有意的

$csv = Import-CSV -Path "$home\desktop\Scripts\test5.csv"
$csvOutput = "$home\desktop\Scripts\test3.csv"
$object = @()
foreach($employee in $csv){
    $ADUserObject = Get-ADUser -Filter "employeeID -eq '$($employee.employeeID)'" -Properties samAccountName, displayName -ErrorAction SilentlyContinue
    if($ADUserObject){
        $object += New-Object psobject -Property @{
            displayName = $ADUserObject.displayName
            samAccountName = $ADUserObject.SamAccountName
        }
    }else{
        Write-Host "No employee found for $($employee.employeeId)" -ForegroundColor Red
    }
}
if($object){
    $object | Select-Object displayName, samAccountName | Export-Csv -Path $csvOutput -Delimiter "," -Encoding UTF8 -NoTypeInformation
}
请注意,您可以使用“-append”将内容添加到csv,而不是将其覆盖


希望这有帮助!

可能是输入错误-但您导入的test2和tes5 csv都有扩展scvI的相关问题,不过我是初学者…..如果存在子域(childa、abc.com childb.abc.com、childc.abc.com)并且包含相同的samaccountname(123456789)广告将如何进行身份验证?是否将逐个检查子域,以便对用户进行身份验证?我的应用程序仅使用samaccountname作为登录id。每个子域中此samaccount的密码有什么不同…?您在所有子域上只能有1个samaccountname。例如,如果您的帐户是samAccountName'test'。它的UPN是例如'test@abc.com“.但现在无法创建”test@childb.abc.com'with samAccountName'test'。它会说它已经存在。samAccountName和UPN必须是唯一的。此外,身份验证会自动完成,因为samAccountName是唯一的,它会找到正确的子域。谢谢但是,我是在这种情况下,想了解认证的发生……对于我所知道的,它只需要使用最低GUID号码的帐户。所以它实际上不是故障安全的。您应该真正考虑使用UPN、ObjStID或ObjutGuID作为唯一的标识符。
$csv = Import-CSV -Path "$home\desktop\Scripts\test5.csv"
$csvOutput = "$home\desktop\Scripts\test3.csv"
$object = @()
foreach($employee in $csv){
    $ADUserObject = Get-ADUser -Filter "employeeID -eq '$($employee.employeeID)'" -Properties samAccountName, displayName -ErrorAction SilentlyContinue
    if($ADUserObject){
        $object += New-Object psobject -Property @{
            displayName = $ADUserObject.displayName
            samAccountName = $ADUserObject.SamAccountName
        }
    }else{
        Write-Host "No employee found for $($employee.employeeId)" -ForegroundColor Red
    }
}
if($object){
    $object | Select-Object displayName, samAccountName | Export-Csv -Path $csvOutput -Delimiter "," -Encoding UTF8 -NoTypeInformation
}