如何在Active Directory中修改此powershell代码,以便在使用csv文件中的单元格时能够更改属性?
我有一个包含数据的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
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的方式与导入原始代码的方式完全相同。我给你的代码可以放在每个对象的内部。