如何在Active Directory中修改此powershell代码,以便在使用csv文件中的单元格时能够更改属性?

如何在Active Directory中修改此powershell代码,以便在使用csv文件中的单元格时能够更改属性?,powershell,active-directory,Powershell,Active Directory,我有一个包含数据的csv文件: SamAccountName;MobilePhone;surname abc;2313;abc bca;;bca cba;3243>cba 如何更改此代码以替换没有可用数据的单元格。例如,我无法更改bca用户属性,因为没有可用的手机 代码如下: PS C:\Users\Administrator> Import-Csv "C:\jo.csv" -Delimiter ';' | ForEach-Object{ Set-ADUser -Identity

我有一个包含数据的csv文件:

SamAccountName;MobilePhone;surname
abc;2313;abc
bca;;bca
cba;3243>cba
如何更改此代码以替换没有可用数据的单元格。例如,我无法更改bca用户属性,因为没有可用的手机

代码如下:

PS C:\Users\Administrator> Import-Csv "C:\jo.csv" -Delimiter ';' |
ForEach-Object{
Set-ADUser -Identity $_.SamAccountName -Surname $_.surname -Givenname $_.givenname -Displayname $_.displayname -Title
$_.Title -Department $_.Department -Manager $_.Manager -OfficePhone $_.HomePhone -MobilePhone $_.MobilePhone
}

您可以在PowerShell中执行一些称为的操作,将参数构造到一个对象中,并将该对象提供给cmdlet,而不是每个单独的参数

大概是这样的:

$params = @{Identity = $_.SamAccountName}
if (-not [string]::IsNullOrWhiteSpace($_.surname)) {
    $params.Surname = $_.surname
}
if (-not [string]::IsNullOrWhiteSpace($_.givenname)) {
    $params.Givenname = $_.givenname
}
#Do the same for all the other parameters

Set-ADUser @params

您可以在PowerShell中执行一些称为的操作,将参数构造到一个对象中,并将该对象提供给cmdlet,而不是每个单独的参数

大概是这样的:

$params = @{Identity = $_.SamAccountName}
if (-not [string]::IsNullOrWhiteSpace($_.surname)) {
    $params.Surname = $_.surname
}
if (-not [string]::IsNullOrWhiteSpace($_.givenname)) {
    $params.Givenname = $_.givenname
}
#Do the same for all the other parameters

Set-ADUser @params

由于存在空值,因此始终可以使用replace命令。 在脚本中:

$Temp = "C:\jo.csv" 
(Get-Content $Temp -Raw) -replace '""','"-"' | Set-Content $Temp
#Replace the "" with "-" because the set-aduser can not complete with null values

之后,您只需运行Set ADUser命令。

由于空值,您可以始终使用replace命令。 在脚本中:

$Temp = "C:\jo.csv" 
(Get-Content $Temp -Raw) -replace '""','"-"' | Set-Content $Temp
#Replace the "" with "-" because the set-aduser can not complete with null values

之后,您只需运行Set ADUser命令。

您能插入完整的代码吗?如何导入csv文件?导入csv的方式与导入原始代码的方式完全相同。我给你的代码可以放在每个对象的
ForEach
中。你能插入完整的代码吗?如何导入csv文件?导入csv的方式与导入原始代码的方式完全相同。我给你的代码可以放在每个对象的
内部。