基于PowerShell的Lync Server管理 使用C#
这里所说的Lync Server管理,指通过C#管理Lync账号的启用,禁用,开启账户的语音功能。
Lync服务器安装后,会自动创建一个用于远程管理的应用程序,通过IIS查看,其应用程序名为:
Lync Server Internal Web Site下边的OcsPowershell,通过浏览他的目录可以看出,这个是Lync用于远程执行管理命令的一个WebService,准备工作做好之后,接下来就可以测试连接。
1、引用System.Management.Automation.dll
项目依赖于这个dll,地址在:C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\System.Management.Automation.dll,这个应该是电脑安装了Power Shell才会有的;
2、创建远程运行空间
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Management.Automation.Host;
using System.Security;
using System;
using System.Collections.ObjectModel;
public class RemoteRunspace //: IRunspace
{
/// <summary>
/// 远程运行空间创建成功后,就可以创建管理,运行Lync管理命令
/// </summary>
/// <returns></returns>
public Runspace CreateRunspace()
{
//Lync管理webservice地址
string uri = "https://服务器名/OcsPowerShell";
//命令解析uri
string shellUri = "http://schemas.microsoft.com/powershell/Microsoft.Powershell";
//管理账户
string userName = "xxx";
//管理密码
string userPwd = "xxx";
char[] userPwds = userPwd.ToCharArray();
SecureString secPwd = new SecureString();
foreach (char c in userPwds)
{
secPwd.AppendChar(c);
}
RunspaceConfiguration config = RunspaceConfiguration.Create();
WSManConnectionInfo connInfo = new WSManConnectionInfo(new Uri(uri), shellUri, new PSCredential(userName, secPwd));
Runspace runspace = RunspaceFactory.CreateRunspace(connInfo);
try
{
runspace.Open();
System.Console.WriteLine("创建Remote Runspace成功!");
return runspace;
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return null;
}
} }
3、远程运行空间创建成功后,就可以创建管理,运行Lync管理命令
/// <summary>
/// 远程运行空间创建成功后,就可以创建管理,运行Lync管理命令
/// </summary>
/// <param name="commandText"></param>
/// <returns></returns>
public Collection<PSObject> ExcuteCmand(string commandText)
{
using (var runspace = GetRunspace())
{
using (Pipeline pipe = runspace.CreatePipeline())
{
Command cmd = new Command(commandText, true);
pipe.Commands.Add(cmd);
return pipe.Invoke();
}
}
}
现在我们可以通过这种方式,远程执行各种管理命令,而不需要再登陆到Lync服务器。
Exchange服务器的管理类似Lync,这方面微软做的还是不错的。
4、常用的Lync管理命令
启用:Enable-CsUser -Identity xx -RegistrarPool (lync注册池) -SipAddressType
禁用:Disable-CsUser -identity xx
开启语音功能:Set-CsUser -identity xx -EnterpriseVoiceEnable $true -LineURI "TLE:xx"
基于PowerShell的Lync Server管理 使用C#的更多相关文章
- 基于PowerShell的Lync Server管理 使用C# 之 Telephony 功能 查看 /修改
本以为这个属性可以在用户信息中直接反应出来,但是看了好几遍还是没找到这个属性名称 这个功能没有在get-User 的结果中直接反映出来 但是可以通过 Property 查找单个选项 如: Get-Cs ...
- Lync Server 2013中央管理存储:自动收集配置数据失败
Lync Server 2013在安装本地配置存储到配置中央管理存储的本地副本时候提示错如信息:自动收集配置数据失败. 打开Lync Shell,输入Get-CsConfigurationStoreL ...
- 2018-2019-2 20165330《网络对抗技术》Exp10 Final 基于PowerShell的渗透实践
目录 实验内容 实验步骤 实验中遇到的问题 实验总结与体会 实验内容 PoweShell简介 PowerShell入门学习 PowerShell渗透工具介绍 相关渗透实践分析 ms15-034之Pow ...
- 基于iSCSI的SQL Server 2012群集测试(四)--模拟群集故障转移
6.模拟群集故障转移 6.1 模拟手动故障转移(1+1) 模拟手动故障转移的目的有以下几点: 测试群集是否能正常故障转移 测试修改端口是否能同步到备节点 测试禁用full-text和Browser服务 ...
- 基于WebForm+EasyUI的业务管理系统形成之旅 -- 构建Web界面(Ⅴ)
上篇<基于WebForm+EasyUI的业务管理系统形成之旅 -- 数据统计>,主要介绍系统数据统计所采用图形.报表工具. 本篇将如何构建Web界面以及新增.编辑.导出数据等功能. 一.在 ...
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[下篇]
[续上篇] 当基于LTM或者KTM的事务提升到基于DTC的分布式事务后,DTC成为了本机所有事务型资源管理器的管理者:此外,当一个事务型操作超出了本机的范 围,出现了跨机器的调用后,本机的DTC需要于 ...
- 怎样基于谷歌地图的Server缓存公布Image Service服务
怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. ...
- C# .net基于Http实现web server(web服务)
原文:C# .net基于Http实现web server(web服务) 什么是 web server? 百度百科是这么解释的: Web Server中文名称叫网页服务器或web服务器.WEB服务器也 ...
- 基于puppet分布式集群管理公有云多租户的架构浅谈
基于puppet分布式集群管理公有云多租户的架构浅谈 一.架构介绍 在此架构中,每个租户的业务集群部署一台puppet-master作为自己所在业务集群的puppet的主服务器,在每个业务集群所拥 ...
随机推荐
- 利用css实现鼠标经过元素,下划线由中间向两边展开
代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Codeforces Round #520 (Div. 2)B(贪心,数学)
#include<bits/stdc++.h>using namespace std;int mi[100007];int main(){ int cnt=0; int flag=0; i ...
- 洛谷P2828 Switching on the Lights(开关灯)
P2828 Switching on the Lights(开关灯) 题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.( ...
- Docker-Zerotier
1. 拉取镜像 docker pull zerotier/zerotier-containerized 2. 生成并运行容器 docker run \ --name=zerotier-one \ -- ...
- Struts2练习
首先从下载的Struts2中apps文件夹下选中需要联系的示例,拷贝jar包到eclipse项目WEB-INF/lib目录下,然后构建路径
- BZOJ 4919: [Lydsy1706月赛]大根堆 启发式合并
我不会告诉你这是线段树合并的好题的... 好吧我们可以搞一个multiset在dfs时求出LIS(自带二分+排序)进行启发式合并,轻松加愉悦... #include<cstdio> #in ...
- ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)
题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和 ; 分析:运用筛法的思想 , 因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数 ...
- Python 起步 多版本共存配置
上次我选择的是py2.x,如果我要再装一个py3.x呢 我们去设置环境变量,然后去命令行输入python,这里我故意把环境变量放在第一行,貌似换成3.7了 我们把2.7的放在3.7的前面呢?又换回去了 ...
- notepad++的tab设置为4个空格
设置--首选项--语言--制表符设置--(勾选上)替换为空格
- 把sublime3打造成c++开发环境
安装sublime 3 sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt-get ...