我的博客园: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. 内存优化:Boxing

    dotMemory 如今,许多开发人员都熟悉性能分析的工作流程:在分析器下运行应用程序,测量方法的执行时间,识别占用时间较多的方法,并致力于优化它们.然而,这种情况并没有涵盖到一个重要的性能指标:应用 ...

  2. webpack处理静态资源

    像项目中字体资源是不需要进行打包处理的,可以直接的通过复制方式给打包到目标目录中 # 安装 npm i -D copy-webpack-plugin # 引入 const CopyPlugin = r ...

  3. LeetCode 146. LRU CacheLRU缓存机制 (C++/Java)

    题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...

  4. C#.NET HTTP Request 跳过自签名证书校验。

    public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain ...

  5. MySQL条件判断IF,CASE,IFNULL语句详解

    MySQL条件判断IF,CASE,IFNULL语句详解 1.IF语句的基本用法IF(condition, true_statement, false_statement);condition: 条件表 ...

  6. 第一篇Scrum冲刺博客--原班人马打造队

    0 项目地址 点此进入 1 第一次开会/任务认领 1.1 第一次例会(2024.4.27) 第一次开会照片记录 1.2 开发认领 在查看老师在实验报告中学长的博客给了我一定的启发,我在腾讯表格中创建了 ...

  7. Flink状态(二)

    Flink提供了不同的状态存储方式,并说明了状态如何存和存储在哪里. 状态可以被存储在Jvm的堆和堆外.根据状态存储方式的不同,Flink也能代替应用管理状态,意思是Flink能够进行内存管理(有必要 ...

  8. Oracle常用命令收藏

    查看数据库名 SELECT t.NAME FROM V$DATABASE t; 查看实例名 SELECT t.INSTANCE_NAME FROM V$INSTANCE t; 查看SID select ...

  9. 02-CentOS7基础

    基础知识介绍 shell shell俗称壳,它包裹在内核的外面,是用户命令的翻译官. 作用:接收用户的命令,翻译后(处理一下)交给Linux内核处理. 命令 -> shell -> 内核 ...

  10. STM32 学习:IAP有关介绍

    --- title: mcu-stm32-IAP-0-about date: 2020-05-27 08:51:58 categories: tags: - iap - stm32 - about - ...