用于更新用户的PowerShell脚本'&引用;说明“;以用户名作为唯一标识符的字段
我有一个CSV文件,只包含两列-用户名和描述 如果用户的用户名在此CSV中,我想在广告中更新用户的用于更新用户的PowerShell脚本'&引用;说明“;以用户名作为唯一标识符的字段,powershell,Powershell,我有一个CSV文件,只包含两列-用户名和描述 如果用户的用户名在此CSV中,我想在广告中更新用户的说明字段 这方面的伪代码类似于: foreach( Row in CSV ) { if( Row[username] exists in AD ) { ThisADAccount[Description] = Row[description] } } 但坦率地说,我不知道如何在PowerShell中做到这一点 此外,同时,我想通过设置username@domain.
说明
字段
这方面的伪代码类似于:
foreach( Row in CSV ) {
if( Row[username] exists in AD ) {
ThisADAccount[Description] = Row[description]
}
}
但坦率地说,我不知道如何在PowerShell中做到这一点
此外,同时,我想通过设置username@domain.com
。这方面的伪代码是:
foreach( User in AD ) {
ThisADAccount[E-mail] = ThisADACcount[Username] + "@domain.com"
}
foreach( Row in CSV ) {
if( Row[username] exists in AD ) {
ThisADAccount[Description] = Row[description]
ThisADAccount[E-mail] = ThisADACcount[Username] + "@domain.com"
}
}
仅当帐户的用户名在CSV文件中时才需要执行此操作,但是,为了一次性完成这两项工作,扩展的伪代码将是:
foreach( User in AD ) {
ThisADAccount[E-mail] = ThisADACcount[Username] + "@domain.com"
}
foreach( Row in CSV ) {
if( Row[username] exists in AD ) {
ThisADAccount[Description] = Row[description]
ThisADAccount[E-mail] = ThisADACcount[Username] + "@domain.com"
}
}
如果有人能帮助我将此伪代码转换为工作的PowerShell,我将不胜感激。首先,您需要导入
ActiveDirectory
模块,以便能够通过PowerShell
编辑AD中的对象。接下来使用Import CSV
,注意需要更改-path
和-Delimiter
参数以适合您的CSV
。我还假设您的CSV
列标题是(username,Description
)
对于
PowerShell
,循环的格式几乎是正确的。您只需使用cmdletSet-ADUser
设置用户属性,然后Get-ADUser
检查广告用户对象是否存在。差不多了,Richard-但不完全是!不过我觉得你很接近。我认为,您的代码中唯一需要更改的是电子邮件。我想使用用户自己的用户名更新用户的电子邮件,例如,如果他们在AD中的用户名是j6test1
,我想将他们的电子邮件更改为j6test1@ashingtonhigh.org
。我的电子表格不包含任何关于电子邮件的信息。@dunc我已经更新了我的答案,如果用户不存在,我还看到了一个错误。给我一分钟,我会修好的。干得好@Richard,谢谢。当你解决了这个问题,请告诉我,我会给你答案的。谢谢你,理查德,太棒了。答案是肯定的。如果我想同时更新Office
字段,那就是-Office$Row。officeinmycsv
的列名是什么?是的,如果您想看到所有其他选项运行命令Help Set ADUser-full
,那就行了。