使用PowerShell更改.csv中的samaccountname

时间:2018-10-19 08:48:45

标签: powershell csv active-directory

我需要将Active Directory中启用的用户与服务器上的用户配置文件列表进行比较,然后删除同一服务器上的禁用配置文件。

我正在尝试获取每个用户的.csv用户列表:一个用于AD,一个用于服务器。

当我获取服务器文件时,配置文件显示为:“ domain \ username”,但是对于AD文件,我仅获得:“ username”,因此无法进行比较。

理想情况下,当我获得添加域的AD文件时,我想更改用户名。我试图做这样的事情:

$Name = $_.SamAccountName
ForEach-Object {
    Get-ADUser -Filter 'enabled -eq $true' | select-object SamAccountName

    $Name = "DOMAIN\ + $Name"
}     
$users | Export-Csv c:\USEREnabled.csv -Encoding UTF8

这将返回具有所有SamAccountName的.csv文件,但未进行任何更改。

1 个答案:

答案 0 :(得分:0)

您可以使用称为“计算属性”的技术来执行此操作。这是我们通过Select-Object为对象生成新属性的地方。这是为您工作的方式:

Get-ADUser -Filter 'enabled -eq $true' | 
    Select-Object SamAccountName,@{Name='FullUserName';Expression={"YOURDOMAIN\$($_.SamAccountName)"}} |
    Export-CSV C:\Temp\UsersEnabled.csv -Encoding UTF8

这可以通过将具有Select-ObjectName键的哈希表添加到Expression中来实现。在Expression键中,脚本块用于构建新字符串,该字符串将Domain添加到管道中每个用户的SamAccountName属性(由自动变量$_表示)。

此操作的结果将是一个对象,该对象返回两个属性:SamAccountName和FullUserName。