我的博客园:https://www.cnblogs.com/CQman/

如何通过PowerShell批量修改O365用户的office phone属性值?

需求信息:

组织中的O365用户在创建时,已手动录入了办公电话(Office phone),现在需要在办公电话前面加上统一的数字,如“0571-0985”,以批量的方式统一修改。

备注: O365用户的Office phone对应Exchange邮箱用户的Work phone

O365用户的Mobile phone 对应Exchange邮箱用户的Mobile phone

用户后台的属性是:Office phone和Work phone对应 PhoneNumber; Mobile phone对应Mobilephone

O365管理控制台:

Exchange admin center:

解决方法:

通过get-mailbox命令获取邮箱账号,再使用筛选命令只获取邮箱用户(排除“会议室账号”),之后将数据传递给get-msoluser来获取用户的phone属性值并把已有的phone属性值

赋给一个变量进行保存;然后进行特定电话号码前缀组合,并把值赋给一个新的变量,最后使用Set-MsolUser进行更改设置,最后会把所有已更改的用户的DisplayName,UserPrincipalName,PhoneNumber输出进行展示。

步骤:

  1. 打开powershell ISE把下面的命令复制到powershell ISE中,或者保存为一个.ps1脚本文件。

#Change Powershell execution policy

Set-Executionpolicy -scope Process -executionPolicy Unrestricted -force

#connect to Exchange online

$UserCredential = Get-Credential

$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://partner.outlook.cn/PowerShell -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $exchangeSession -DisableNameChecking -AllowClobber

#connect to Office 365

Import-Module MSOnline

Connect-MsolService -AzureEnvironment AzureChinaCloud -Credential $UserCredential

#Get all mailbox users

$users = Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox')}|% {Get-MsolUser -UserPrincipalName $_.UserPrincipalName }

$Output = @()

#Traversing every user and make changes

foreach($user in $users){

if($user.PhoneNumber -ne $null )

{

$phone = $user.PhoneNumber

$Prefix = "+86" #这里以+86为例

$PN = $Prefix + $phone

Set-MsolUser -UserPrincipalName $user.UserPrincipalName -PhoneNumber $PN

$output += Get-MsolUser -UserPrincipalName $user.UserPrincipalName |Select-Object DisplayName,UserPrincipalName,PhoneNumber

}

else {continue}

}

$output |Out-GridView

注意:以上命令只针对邮箱用户且原始Office phone(或Work phone)属性不为空。

修改前

Get-MsolUser |ft DisplayName ,UserPrincipalName,PhoneNumber

运行命令后:

注意:上面的命令并不会对会议室邮箱的电话属性值进行更改。

输出内容

如何通过PowerShell批量修改O365用户的office phone属性值的更多相关文章

  1. 利用expect交互批量修改普通用户过期密码

    利用expect交互批量修改普通用户过期密码 因为公司接了一个密码托管的活,有10000多台机器,系统有 openSUSE,SUSE,Ubuntu,centos,Oracle-Linux, 而且什么版 ...

  2. Day14_84_通过反射机制修改和获取class里的属性值

    通过反射机制修改和获取class里的属性值 * 属性对象.set(Object,属性值) 给Object对象中的某个属性赋值(属性对象) * 属性对象.get(Object); 获取Object对象中 ...

  3. PowerShell 批量修改AD属性

    环境:win 2008 R2 在管理工具中打开用于 windows powershell 的ActiveDirectory模块命令行窗口或打开命令提示符窗口输入PowerShell回车再输入impor ...

  4. 使用powershell批量修改文本为utf8

    根据上一篇powershell生成pro的方法,增加一个批量修改文本文件为utf8格式的方法 $incPath = dir -filter "*.c" -Recurse $temp ...

  5. Shell 批量修改主机 用户密码

    问题:132.121.114 和 132.121.118 网段共 48 台主机未添加基础监控,但是 wh 账户不能登录 需进行批量修改密码操作. 目前情况:op1对上述48台机器设备均能免密登录. 操 ...

  6. shell批量修改mysql用户密码

    需求 现在有这么一个需求, 需要大批量修改用户的密码, 需要注意的规则是: 必须添加的字符: *$#sjdKw% 用户名的第一位+*$#sjdKw%+用户名的最后一位,比如用户名chenglee,密码 ...

  7. Oracle 批量修改某个用户下表的表空间

    说明:一般来说要修改表的表空间需要同时修改表的表空间和其对应的索引表空间,并且在修改含有BOLB字段的表的表空间时又不一样,具体请参考末尾的链接 思路:拼凑一个满足条件的批处理查询语句,将查询的结果复 ...

  8. 批量移动AD用户到指定OU

    原文链接:http://blog.51cto.com/shubao/1346469 作为域管理员,在日常工作中使用ADUC(AD用户和计算机)工具在图形界面中进行账号管理操作可谓是家常便饭了.然而一个 ...

  9. Python脚本批量修改服务器密码

    搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档   passwd_chang #!/usr/bin/env python ...

  10. 批量修改Linux密码脚本(Python)

    搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档 #!/usr/bin/env python # -*- coding: ...

随机推荐

  1. 语义化结构标签 多媒体标签 H5新增表单内容

    语义化结构标签: section  更偏向于一个区域类似div(块) article 更偏向于显示内容(块) aside 标签作为article呢绒的辅助板块(块) header 标签做为一个网页头部 ...

  2. Nodejs 创建web服务 静态资源服务器 get数据获取 post数据获取

    NodeJs是通过官方提供的http模块来创建 web服务器的模块.通过几行简单的代码,就能轻松的手写一个web服务,从而对外提供 web 服务. ² 创建web服务基本步骤 ①.导入http模块 c ...

  3. C#.NET MySql8.0 EF db first

    .net framework 4.5.2,winform 程序. mysql 8.0 1.nuget中引用EntityFramework,6.4.4 2.nuget中引用MySql.Data.Enti ...

  4. mongodb基于角色的访问控制

    https://www.mongodb.com/docs/v4.4/tutorial/enable-authentication/ https://www.mongodb.com/docs/manua ...

  5. CPU的一、二、三级缓存的区别

    引言 概念 缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频 运作,工作效率远远大于系统内存和硬盘.实际工作时,CPU往往 ...

  6. 天地图添加多个覆盖物,点击切换选中icon

       天地图添加多个覆盖物,点击覆盖物,切换选中的icon,移除之前的icon,再次点击移除之前的... 这个是react写的,先是确定中心位置,然后渲染点位,添加覆盖物,选中icon的不同, 主要看 ...

  7. oracle数据库文件

    oracle数据库重要的文件包括参数文件,控制文件,数据文件,临时文件,重做日志文件. 1 参数文件 oracle的参数文件可以设置数据库的名称,SGA和PGA的大小,控制文件的路径等系统参数.这些参 ...

  8. SpringBoot指标监控功能

    SpringBoot指标监控功能 随时查看SpringBoot运行状态,将状态以josn格式返回 添加Actuator功能 Spring Boot Actuator可以帮助程序员监控和管理Spring ...

  9. shell中各个括号的用法区别

    在 shell 脚本中,[ ].[[ ]].( ).(( )).{ } 和 {{ }} 都有各自特定的用法和区别.下面是对这些结构的详细解释: 1. [ ] (test 命令) [ ] 是 shell ...

  10. Win10升Win11后出现的文件系统错误-1073740771的几种可能解决办法

    可能性1 有服务没能启动 键盘按"WIN+R"打开"运行"对话框 在对话框输入"services.msc"点击"确定"按 ...