今天是一个很有意思的时间点,去年重新开始写博客到现在已经累计发布99篇100%纯原创博客到这一篇博客正好是第100篇

其中80%都是Office365&Teams相关的技术干货,其实写这么多文章也不容易自己先学习理解然后Demo测试,就拿这篇文章中列举的Teams Rooms来说,微软官网就只有4行不痛不痒的文字描述然后就让你自己干(有兴趣可以看下微软官网https://docs.microsoft.com/en-us/MicrosoftTeams/room-systems/console),而我恰好又不轻易放弃,跟Teams Rooms对着干了一周每天晚上搞到十二点不停的测试验证最后终于做出来了,我相信国内除了联想、亿联、罗技这三个微软指定的Teams Rooms厂家以外没人去研究这个东西更别说做出来了,所以我在内部也写了一篇近30页的制作过程(我更喜欢叫踩坑填坑过程)文档

借着今天这个时间点,正好又写到Teams会议系列博客,就简单的跟大家分享一下,但不会像内部资料这么详细,不过大概过程原理会说明白。

言归正传,前面两篇文章介绍了Teams会议的网络准备和会议类型的介绍,这篇文章给大家分享一下会议场景中的Microsoft Teams Rooms,回顾一下对应的是上一篇文章中大型会议室类型(会议室主机+控制屏+双显)。

要实现这样的会议室配备先看下微软官网是怎么说的

讲人话就是下面几点:

①    会议室中有专业的音视频采集设备;

②  会议室中有专业的X86架构会议主机;

③    专业的会议主机上是需要有一个会议室账号而这个账号需要Exchange和Skype服务;

④    针对会议室主机可以进行Teams会议的控制;

大概的要求清楚了,接下来我们先看下针对这个会议室账号的详细要求:

在传统的Exchange环境中我们使用outlook预约会议室的时候会存在一个会议室资源列表可供我们选择,这里预约的仅仅是一个Offline的会议室,如果是要预约一个Online会议又要去该会议室召开则需要将预约会议类型更改为Skype或Teams会议,那回归到正题Microsoft Teams Rooms,我要预约一个Teams会议而且希望去到实际的会议室里面开会,进入到会议室我能看到我预约的日程实现一键入会,那么此时就有一个账号上的问题了,此账号必须要有日程信息显示,同时又要有Teams或Skype的功能。有这样的账号就意味着是一个有密码可以进行登录的资源账号而且还必须分配许可。

账号准备完成后还要准备会议室设备,所以这篇博客就跟大家分享一下会议室设备账号的创建以及Microsoft Teams Rooms的构建。Teams Rooms既是一个虚拟的会议室又是一个实实在在存在的物理会议室,说它虚是因为会议室设备里面有一个资源账号可以通过Outlook或Teams进行预约会议和会议管理,说它实是因为这套设备管理着实实在在的物理会议室。

先说下账号的准备。

首先使用Connect-MsolService连接到Office365,使用Get-MsolAccountSku来查看当前订阅下都有什么许可,我们的订阅下面之前申请了Meeting Room Without AudiConf的许可,但是已经过期了,所以我只能选用E3的许可了

记录所需的AccountSkuId参数值(例如ucssi:ENTERPRISEPACK),以获取要分配给会议室系统账户的所需主要许可证。如上面所述,分配给此账户的许可至少需要包括Skype for Business Online Plan2/或Microsoft Teams还有Exchange Online,但通常使用Business Premium或Enterprise。好消息是在2018年12月,Microsoft 推出了专门针对设备的新会议室 Office 365许可订购叫Meeting Room(每个账号每个月$15.00),要比其他商业或企业版许可便宜很多,里面就只有Skype和Exchange服务没有多余的产品,因此这些许可证非常适合Microsoft Teams Rooms等设备。

由于我们公司的Office365订阅中Meeting Room许可已经过期了,所以我以E3许可来进行Demo,另外允许PSTN呼叫进入Teams Rooms则还需要配置Direct Routing以及AudioConf

接下来开始进行配置,首先要通过PowerShell连接到Exchange Online,Office365 AAD,Skype for Business Online,具体操作方法可参考我之前的博客不在此赘述

首先来定义一些变量

输入以下行以将变量设置为每个项目的所需值。

Ø  将新账户的所需身份(用户主体名称(UPN),SMTP地址,SIP URI等)设置为$newRoom变量;

Ø  选择账户的适当显示名称作为$name变量;

Ø  将密码定义为$pwd变量;

Ø  将许可证定义为$license变量;

Ø  输入有效的双字母国家/地区代码,以获取此账户将用作$location变量的相应位置;

$newRoom="cdrooms@ucssi.com" 
$name="CD Teams Room
$pwd="Xhsd2018
$license="ucssi:ENTERPRISEPACK
$location="CN"

(密码我已经妥妥的改了,哈哈)

建立新账户

此步骤将在Azure Active Directory中创建一个新账户,同时在Exchange Online中将该账户作为Room资源邮箱启用邮箱。它还设置上面自定义的密码,然后启用账户进行身份验证。

运行以下New-Mailbox 用于创建新账户。

New-Mailbox -MicrosoftOnlineServicesID $newRoom -Name $name -Room -RoomMailboxPassword (ConvertTo-SecureString -String $pwd -AsPlainText -Force) -EnableRoomMailboxAccount $true

建议在成功创建邮箱之后等待大约30秒,然后再尝试在下一节中运行命令,否则可能会发生错误。

配置账户

以下步骤将用于配置账户和邮箱上的其他必备和推荐选项。

等待30秒后,运行以下Set-MsolUsercmdlet禁用密码到期并设置UsageLocation。

Set-MsolUser -UserPrincipalName $newRoom -PasswordNeverExpires $true -UsageLocation $location

运行以下Set-MsolUserLicense cmdlet将相应的Office 365许可证分配给新账户。

Set-MsolUserLicense -UserPrincipalName $newRoom -AddLicenses $license

运行以下Set-Mailbox cmdlet用于设置向会议室邮箱发送会议邀请时显示的Outlook邮件提示。

Set-Mailbox -Identity $newRoom -MailTip “此会议室支持Teams和Skype会议      最终效果如下,此功能非常有用,可以让预约的用户知道此会议室是否可以召开Team或Skype会议

运行以下Set-CalendarProcessing cmdlet以配置Exchange为此邮箱处理会议邀请的方式。

Set-CalendarProcessing -Identity $newRoom -AutomateProcessing AutoAccept -AddOrganizerToSubject $false -RemovePrivateProperty $false -AddAdditionalResponse $true -AdditionalResponse “<p><Font color=red>您的会议已安排,会议室大门已与门禁集成请您在会议开始前15分钟内即时进行身份确认及会议签到(根据门口屏幕及设备可以选择以下签到方式:输入随机PIN码\二维码扫描\人脸识别\刷工牌\指纹解锁),如您在会议开始后15分钟内未进行会议签到则会议室资源将被自动释放。</p><p><Font color=red>如果它作为Teams或Skype会议,则可以点击会议控制器的加入(Join)实现一键入会的体验</p>”

最终效果如下,此功能非常有用,用户在预约完会议室后可以在这里的反馈信息中获取如何进入会议室以及操作会议室里面的设备(这里有个小彩蛋哦,会议室预约和管理将会是下一篇博客的精彩内容):

正确应用-DeleteComments和-DeleteSubject设置尤为重要,否则邀请可能会出现在会议室设备上,但没有连接到会议所需的“加入”按钮。通过常规方法创建资源邮箱时,默认情况下将这两个参数设置为$true,因此必须手动将它们设置为$false,如下所示:

启用会议室

需要执行这些步骤才能使该账户与Skype for Business或Microsoft Teams一起使用。由于复制间隔,建议在最初创建账户后至少等待5分钟,然后再尝试在Skype for Business Online中将账户设置为会议室。在此步骤成功完成之前,有时可能需要更长时间(最多15分钟)。

运行以下Get-CsOnlineUser cmdlet以列出已为租户中所有启用Skype的账户分配的SIP注册器。

Get-CsOnlineUser | ft RegistrarPool

上述结果表明租户中的所有账户都在同一个池中(例如sippoolsg20f11.infra.lync.com)

等待几分钟后,运行以下Enable-CsMeetingRoom cmdlet,将RegistrarPool值替换为上一步中返回的FQDN,以启用新的会议室账户。

Enable-CsMeetingRoom -Identity $newRoom -SipAddressType “EmailAddress” -RegistrarPool “sippoolsg20f11.infra.lync.com ”

使用Get-CsMeetingRoom查看属性已经是roomsystem

如果先前的cmdlet返回错误“ 未找到管理对象的身份 ”,则尚未在云中完成账户启用。再等几分钟再尝试运行此cmdlet。

配置企业语音

如果会议室账户还需要PBX和PSTN功能,则可以适当的配置启用账户。对于Microsoft团队,可以使用直接路由或呼叫计划为该账户提供PSTN服务。在此Demo中目前没有Calling Plan以及配置直接路由,所以无法实现PSTN呼入Teams Rooms

所以默认的企业语音配置也是禁用的状态,如下

以上是会议室账号准备,接下来进行Microsoft Teams Rooms硬件准备

Teams Rooms硬件设备基于X86架构主机进行构建。所以需要准备一台X86主机。

构建前置条件及过程如下:

①     通过脚本下载Microsoft Teams Rooms的最新MSI安装程序;

②      准备一个16GB+的空白U盘(3.0接口最佳);

③      确定用户必须提供的Windows 10版本及许可。最新发布的版本可能会或可能不会被测试和支持与Microsoft Teams Rooms设备一起使用;

④      Windows 10镜像提前解压到文件夹;

⑤      下载必要的支持组件;

⑥      在安装介质上组装所需的组件;

⑦      下载部署软件及工具;

接下来去下载部署脚本,下载链接如下

https://go.microsoft.com/fwlink/?linkid=867842

脚本下载完成后,默认的语音是英文,也就是说Teams Rooms装好了之后是英文版本的,如需其他语言版本(如简体中文)则在脚本中将Windows 10 Enterprise替换成Windows 10 企业版即可

接下来使用管理员身份运行PowerShell,使用cd命令切换到ps1所在目录,然后执行PowerShell脚本,如下将会自动下载部署工具

将Windows 10镜像解压

脚本将部署工具下载完成后选择对应设备所安装的驱动(这里就出现我上一篇博客总结的那几个品牌的Teams Rooms啦)因为我是使用自有设备来创建Teams Rooms所以驱动这份选择【7】None,然后会自动下载一个Windows补丁包,然后对语言包做出选择,最后会自动识别X86主机上的USB设备,我这里只在机器上插了一个所以就选择【0】 Kingston,接下来需要输入Windows安装媒体路径(只需要Windows文件夹路径即可,不需要指定安装文件名称),这里是我之前解压Windows 10镜像的路径。

接下来就是漫长的等待,各种复制文件以及开始应用这个镜像了,注意是创建的UEFI

一切都搞定后其实Windows镜像安装文件就已经制作完成了

最后脚本会自动移除Windowsimage

最后最后关键的一步!!!命令行跑完了千万千万不要去直接弹出U盘或拔掉U盘。请在PowerShell中使用exit命令来退出PowerShell命令!!!不然前面做的全部白做了!!!

使用exit退出PowerShell后,打开U盘此时U盘还不是可启动U盘,一定要右键选择U盘弹出

然后再次插入U盘到电脑才算成功制作SRS安装镜像

OK接下来看下安装到X86架构PC上面的注意事项

首先使用PE进入系统,将硬盘格式化,并制作一个分区(我的ThinkPad X240就这样沦为实验品了)

选择U盘启动,然后进入安装界面

下一步

提示无法安装Windows

原因:还记得上面说的UEFI吗?使用U盘来装Windows 10 64位系统,BIOS也必须要配置UEFI启动选项!

进入BIOS选择startup,再UEFI/Legacy Boot中更改位Both

然后选择UEFI First

按F10保存并重启

然后就可以顺利安装Teams Rooms操作系统了

装好之后系统会自动重启好几次耐心等待

默认会创建两个账号,一个是Skype(没有密码)另外一个是Administrator(默认密码是sfb)

待重启几次完成后就会直接进入Teams Rooms配置界面,版本是4.0.85,这是最新版本

接下来输入之前创建的Meeting Room账号,以及选择Teams为默认支持的会议模式

启用自动屏幕共享(回顾下上篇博客提到的HDMI IN功能)是否使用双屏,选择麦克风,扬声器,摄像头等等

Teams Rooms 配置完成后如下图

实景效果(我这个跟上一篇博客中我们成都客户的真实环境比起来弱爆了,毕竟我是在我自己的笔记本上搭的一个Demo环境)

完成会议室设备账号准备以及Teams Rooms系统构建整个过程耗时约3小时。

这篇博客为大家分享了Teams Rooms的一系列知识点,下一篇博客跟大家分享一下会前的预约部分,这个系列博客之所以会介绍这么多会前的各种环境准备,只有一个目的:开好一场Teams会议!

Microsoft Teams全生命周期会议-03你了解MeetingRoom吗相关推荐

  1. 数牍科技完成超3亿元A轮融资,隐私工程守护数据全生命周期流通协作

    允峰 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 2021年11月25日,北京数牍科技有限公司(以下简称「数牍科技」)宣布完成3.08亿元人民币Pre-A及A轮融资,本轮融资由GGV纪源资本 ...

  2. PPT 下载 | 神策数据张涛:企业服务客户全生命周期运营三步曲客情诊断 解决方案库...

    本文根据神策数据副总裁张涛关于企业服务客户全生命周期系列的直播内容整理,共 3 篇,上篇回顾<PPT 下载 | 神策数据张涛:企业服务客户全生命周期运营三步曲总览篇>,本篇主要内容如下: ...

  3. 对话《旅行青蛙》制作团队:游戏就是将现实中的不可能变为可能 | 覆盖客户全生命周期管理,神州云动六朵云来袭

    每一个企业级的人  都置顶了 中国软件网 中国软件网  为你带来最新鲜的行业干货 小编点评 自从我养了青蛙以后 心里多了一份牵挂 娃儿的吃的够不够 帐篷好不好 当然啦 作为一个互联网人 我一边牵挂我得 ...

  4. alm系统的使用流程_ALM——应用程序全生命周期管理核心功能有哪些

    在同一的系统平台上实现软件项目全过程的管理,包括需求分析.设计.开发.测试.代码编译发布等,并能够按照业界实践对其过程进行管控和各过程间的连接. 系统核心功能在统一的管理平台中实现,包括: 产品/软件 ...

  5. 设备全生命周期管理,开启设管管理新模式

    01 数字化转型对设备管理提出新要求 过去四十年,中国制造业取得了飞速发展.当前,中国制造业生产总值已名列世界前列.未来数十年我国将实现从工业大国向工业强国的转变,提高生产技术创新能力.生产管理水平以 ...

  6. 字节跳动无恒实验室首次亮相Black Hat 2021亚洲黑帽大会:全生命周期管理的隐私保护框架

    5月4日至7日,Black Hat Aisa 2021(亚洲黑帽大会)如期在线上举行.Black Hat大会被公认为世界信息安全行业的最高盛会,被誉为黑客世界的"奥斯卡",也是最具 ...

  7. 数据全生命周期加密,三未信安参展2018贵阳数博会

    2018中国国际大数据产业博览会于5月26-29日在贵阳国际会议展览中心举行.会议以"数化万物 智在融合"为年度主题,围绕大数据技术创新与最新成果,探寻大数据发展的时代变革. 大数 ...

  8. 从全生命周期管理角度看大数据安全技术研究

    从全生命周期管理角度看大数据安全技术研究 李树栋1,2, 贾焰2, 吴晓波3, 李爱平2, 杨小东4, 赵大伟5 1. 广州大学网络空间先进技术研究院,广东 广州 510006 2. 国防科技大学计算 ...

  9. HUAWEI AppGallery Connect全新升级,支持HarmonyOS生态全生命周期服务!

    原文: HUAWEI AppGallery Connect全新升级,支持HarmonyOS生态全生命周期服务!,点击链接查看更多技术内容. HUAWEI AppGallery Connect全新升级, ...

最新文章

  1. 【原创】MySQL 实现Oracle或者PostgreSQL的row_number over 这样的排名语法
  2. git仓库如果是私密的,每台电脑上导下来都需要进行ssh授权,所以一个项目不知一个ssh权限...
  3. JVM之垃圾收集器回收种类
  4. 【渝粤教育】电大中专就业指导 (3)作业 题库
  5. linux6.8安装图形桌面,图形/文本界面安装CentOS 6.8系统详解
  6. 第一课 回归问题与应用
  7. tomcat 系统服务 outofmemory
  8. matlab采样序列幅频特性,数字信号处理课设计指导书20130530.doc
  9. Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
  10. LeetCode 435. 无重叠区间(贪婪算法)
  11. window服务程序编写及发布
  12. HDU6380 degree
  13. boost 静态库命名规则
  14. linux文本编辑器
  15. oracle查询怎样更效率,Oracle提高查询效率的方法
  16. 新一代同步控制器和触摸屏组合在压延机上的应用
  17. 《拼多多为什么崛起?》总结笔记
  18. 当AI遇上元宇宙:智能科技如何助力虚拟世界的发展?
  19. JAVA星期健身计划:If语句和Switch语句
  20. Deep Crossing

热门文章

  1. UVA 12325 Zombie's Treasure Chest
  2. Pandas 函数方法汇总一览查询(持续补充改进)
  3. Android社招面经分享!2021华为Android高级面试题及答案,附相关架构及资料
  4. Android 错把setLayerType当成硬件加速
  5. Eclipse 主题(Theme) 设置之程序员大牛必备的装逼神器
  6. centOs7.6+Typecho+Bt面板搭建个人Blog
  7. 互动教程 for Xcode10 and Swift4.2
  8. 关于linux下的xinetd服务
  9. getch()、getche()、kbhit()的使用
  10. win10本地搜索应用没反应怎么解决?