Powershell 仅为非空值导入CSV adn集合属性
我有这样的想法Powershell 仅为非空值导入CSV adn集合属性,powershell,powershell-2.0,Powershell,Powershell 2.0,我有这样的想法 EMP_ID DEP_ID LOGIN_AD 0102 042 jane.doe 0103 john.doe 0104 042 0105 046 john.smith 我想创建一个脚本,它将在用户帐户上导入这个csv和下一个设置值,比如extensionAttribute1=EMP\u ID和extensionAttribute2=DEP\u ID。主要的是脚本应该跳过空值。在下面的示例中,脚本应该在jane.doe帐户exte
EMP_ID DEP_ID LOGIN_AD
0102 042 jane.doe
0103 john.doe
0104 042
0105 046 john.smith
我想创建一个脚本,它将在用户帐户上导入这个csv和下一个设置值,比如extensionAttribute1=EMP\u ID和extensionAttribute2=DEP\u ID。主要的是脚本应该跳过空值。在下面的示例中,脚本应该在jane.doe帐户extensionAttribute1=0102、extensionAttribute2=042上设置,但在john.doe仅extensionAttribute1=0103上,脚本应该跳过行而不登录
现在我正在尝试这样的事情:
Import-CSV "c:\test.csv" | foreach-object {
$adLogin = @($_.LOGIN_AD) | where-object{$_};
if (Get-AdUser -Identity $adLogin)
{
if ($_.EMP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute1 = $_.EMP_ID}
if ($_.DEP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute2 = $_.DEP_ID}
}
但当登录广告为空时,我仍然出错。您能帮助我吗?鉴于CSV,您需要将分隔符指定为空格,然后您需要选择登录广告不为空的对象,最后,在ForEach对象循环中执行所需操作,也不要忘记加载属性:
Import-CSV "c:\test.csv" -Delimiter ' ' | where-object{$_.LOGIN_AD -ne ""}| foreach-object {
$adLogin = $_.LOGIN_AD
if (Get-AdUser -Identity $adLogin -properties extensionAttribute1,extensionAttribute2)
{
if ($_.EMP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute1 = $_.EMP_ID} }
if ($_.DEP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute2 = $_.DEP_ID} }
}
}