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

news/2024/9/18 7:03:40/文章来源:https://www.cnblogs.com/CQman/p/18337612

我的博客园: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管理控制台:

cid:image002.png@01D4A834.04D523F0

Exchange admin center:

cid:image003.png@01D4A834.04D523F0

解决方法:

  通过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

运行命令后:

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

输出内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1000W长连接,如何建立和维护?千万用户IM 架构设计

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…

封装,private关键字,this关键字

我们上一个案例,使用private关键字将成员进行修饰,外界无法直接访问,讲了那么长时间,实际上就是在传输一个思想面向对象编程的三大特征,第一大特征:封装封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。private关键字:1、被private修饰的成员,外界无法直…

Anaconda 常用命令

1.检查Anaconda是否成功安装:conda --version2.检测目前安装了哪些环境:conda info --envs3.检查目前有哪些版本的python可以安装:conda search --full-name python4.安装不同版本的python:conda create --name tensorflow python=3.75.按照提示,激活python环境:activate…

2024暑假集训测试17

前言比赛链接。T1 没加记忆化莫名原因 T 飞了,T2 没做过 IO 交互不知道咋测样例干脆没交,T3 到现在还不知道为啥爆零了,赛时不知道咋合并背包根本不敢打,离线下来寻思快点结果全死了,T4 不可做题。 还是老毛病,遇到之前见的不多题型(尤其是 T1、T2 放)就寄,这次 T1 倒…

『模拟赛』暑假集训CSP提高模拟13

『模拟赛记录』暑假集训CSP提高模拟13Rank 上半最后一次正式模拟赛,感觉还彳亍A. 小孩召开法1 原[ABC278F] Shiritori 签到题。 博弈论+状压+记搜秒了,感觉不用太细说。 不过是暑假以来第一次首 A 啊,开始还胡乱想 SG 定理的做法,后来发现不用那么复杂。点击查看代码 #incl…

01

mark down学习 标题 字体 hello,world hello,world hello,world hello,world hello,world 引用不公平是好事分割线图片 ![截图](C:\Users\HUAWEI\Pictures\Screenshots\屏幕截图 2024-06-20 142947.png)超链接 点击跳转 列表a b1 2 31 2 3表格姓名 性别 年龄张三 男 1999.…

BUUCTF [RoarCTF2019]polyre

第一次遇到反控制流平坦化的题目,记录一下。 扔进ida,发现main函数中全是while循环,后来上网查阅才发现是控制流平坦化。 反控制流平坦化的教程可以参考这个blog: https://www.cnblogs.com/kelec0ka/p/17909008.html 使用deflat生成recovered文件: python deflat.py -f te…

注释?

成为一个完美的程序员的必备习惯之一——写注释 1.什么是注释: 类似于上学时写的笔记,写给程序员看的备注。注释只是一种提醒,并不会被执行 2.为什么要写注释: 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用…

NewStarCTF 2023 WEEK4|WEB flask disk

一个文件上传一个输入pin码一个文件列表 Flask 调试模式的风险 Flask 框架提供了调试模式,可以通过设置 app.debug = True 或 FLASK_ENV=development 来启用。启用调试模式后,Flask 会在代码更改时自动重载应用,并且会显示详细的错误信息,包括回溯(traceback)。这些功能对…

Living-Dream 系列笔记 第71期

众所周知,换根 dp 是非常套路的。换根真好玩( 换根 dp:当不同节点作为根时,dp 结果不一致,若枚举每个节点作为根,则时间复杂度过高,在此种情形下,可使用 换根 dp 处理相邻两节点间的贡献,从而达到快速换根的效果。使用场景:对于一棵树,寻找以某节点 \(u\) 为根时取得…

公司运营数据分析大屏,非专业者也能轻松上手

在这个数据洪流的时代,企业的每一步发展都深深刻画在数字的轨迹之中。如何精准捕捉这些瞬息万变的信息,将其转化为推动企业前行的智慧力量?答案,或许就藏在一面高效、直观的公司运营数据分析大屏之中。想象一下,当晨光初照,公司的大厅中央,一块巨大的LED屏幕缓缓亮起,它…