powershell更改用户信息

简介:

Powershell的AD相关的命令灰常好用,豆子今天早上从HR那里拿了一份名单,需要更新所有AD用户的职位和部门信息。这个名单有上千人,肯定不能手动修改,一个简单几行的脚本就可以迅速解决。基本方法是可以通过get-ADuser搜索用户,然后使用 set-ADuser这个命令修改就行了。


名单格式如下: HR的代码,名字,姓,加入日期,职位,部门等等。由于鬼佬习惯结婚之后改名字,所有直接通过displayname 搜索很多人是找不到的。不过SamaccountName一般不会变,公司的命名方式是第一个名字的首字母+最后一个名字( First intial+ Last Name)。


wKiom1U5e5KyG9gzAALpk1mNVis542.jpg


如何改成这个SamaccountName呢,很简单,利用split函数分开重组一下就行了


比如:

1
2
3
4
5
6
7
$a = get-content  'c:\employee.csv'
foreach  ( $b  in  $a ){
     $c = $b .split( "," )
     $init = $c [1][0]
     $lastname = $c [2]
     $shortnamae = $init + $lastname
}


获得SamaccountName之后,那就很简单了,在foreach循环里面,利用get-ADuser搜索,然后set-ADuser修改就行了。可以写成一行,通过管道传输,也可以分开写。


比如:

1
2
3
4
5
6
7
$user = get-ADuser  $shortname
if  ( $user  -eq  $null ) {   $b  >> c:/temp/error.csv }
else
{
     $user .samaccountname
     set-aduser  $user .samaccountname  -replace  @{title= $c [4];department- $c [5]}
}


这样就能修改了










本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1637787,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
数据安全/隐私保护
【Azure Entra ID】使用PowerShell脚本导出Entra ID中指定应用下的所有用户信息
在Azure Entra ID中,需要导出一个Application 下的用户信息, 包含User的创建时间。
|
2月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
88 0
|
3月前
|
Windows
Powershell 重新排列去重 Windows环境变量
【9月更文挑战第13天】本文介绍如何使用PowerShell对Windows环境变量进行重新排列和去重。首先通过`$env:`访问环境变量,接着使用`-split`命令分割路径,再利用`Select-Object -Unique`去除重复项。之后可根据需要对路径进行排序,最后将处理后的路径组合并更新环境变量。注意修改环境变量前应备份重要数据并了解潜在影响。
144 10
|
7月前
|
存储 Ubuntu Linux
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
225 0
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
114 0
|
JavaScript Windows
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
|
Windows
使用PowerShell获取Windows当前锁屏壁纸
使用PowerShell获取Windows当前锁屏壁纸 如果原始图片丢了,用这段代码就可以提取当前锁屏壁纸了!
199 0
|
应用服务中间件 nginx Windows
Windows PowerShell 中启动 Nginx 报错解决方案
Windows PowerShell 中启动 Nginx 报错解决方案
Windows PowerShell 中启动 Nginx 报错解决方案
|
XML 监控 数据格式
利用powershell进行windows日志分析
0x00 前言   Windows 中提供了 2 个分析事件日志的 PowerShell cmdlet:一个是Get-WinEvent,超级强大,但使用起来比较麻烦;另一个是Get-EventLog,使得起来相当简单,可以实时筛选,接下来,我们利用PowerShell 来自动筛选 Windows 事件日志。
2536 0