`
923723914
  • 浏览: 634834 次
文章分类
社区版块
存档分类
最新评论

最近写的一个关于统计某个时间点所有组织内CAS 服务计数器的脚本,有需要可以将你的需求发给我!

 
阅读更多

下面是我针对客户需求做了一个简单的PS脚本,我都加了中文注释,大家可以看看能不能看得懂,如果有需要请加入66140619 群讨论!

#requires -version 2
#Please run this script in exchange CAS Roles
#本脚本撰写者:徐鹏 如果你有脚本撰写需求,可以发送邮件到 10853913@qq.com 我将尽力实现
#脚本执行方法之一:.\get-performancedata.ps1 -Queryperformance 目的是生成当前时间点所有的CAS 连接数的一些数据,并告知用户当前时间点的数据已经收集完成
#脚本执行方法之二: .\get-performancedata.ps1 -SendPerformancedata 目的是将生成的数据以附件方式发往收件者
param
(
[switch] $Queryperformance,
#定义取数据库的开关
[switch] $SendPerformancedata,
#定义发送数据开关
[string] $TempLog="c:\tmpquery",
#定义数据产生目录,这个目录可以你在执行PS 自己定义
[string] $SmtpServer="tpkhubcasa.tpktest.com",
#定义发送邮件服务器
[string] $Sendfrom="administrator@tpktest.com",
#定义发送者
[string] $Mailreceive="administrator@tpktest.com"
#定义邮件接受者
)

#region Query Your Exchange Performance
if ($queryperformance)
#判断是否执行query performance 操作
{
if (!(Test-Path -Path $templog))
#判断在你的磁盘下面是否存在"c:\tmpquery"目录,上面条件是不存在
{
New-Item -ItemType directory -Path $templog
#新建上面提到的这个目录
}
$exchsvr=get-exchangeserver| Where-Object {$_.serverrole -like "*clientaccess*"}
#获取组织内所有Clientaccess 角色服务器,因为只有clientaccess 才有 rpcclientaccess服务
$Perdatas=@()
#定义数组为空
foreach ($exch in $exchsvr)
#进行计算机名称轮询。。foreach 函数和cmd 的for 函数一样
{
$count++
#参数自加
Write-Progress -Activity "Getting Performance Data Now,Please wait" -Status "Getting Now" -PercentComplete ($count /($exchsvr.count))
#在执行操作的时候为了让我们直观的看到一些反馈,我们需要上面的定义,如果不希望看到执行过程,则无需填写

$comuterperformancedata=Get-WmiObject Win32_PerfFormattedData_MSExchangeRpcClientAccess_MSExchangeRpcClientAccess -ComputerName $exch
#获取当前计算机的 MSExchangeRpcClientAccess指针的值
$Perdata=New-Object psobject
#创建一个叫做$perdata的 PSO 对象
$currenttime=(Get-Date).tostring("HH:mm")
#将当前时间以HH:mm字符串形式显示出来,HH 代表是24小时制
$Perdata |Add-Member -MemberType NoteProperty -name "当前时间" -Value $currenttime
#PSO对象添加一行属性,就是当前执行的时间,执行时间通过tostring 的方法规范输出的结果
$perdata |Add-Member -MemberType NoteProperty -Name "服务器名" -Value $exch
#PSO对象添加一行属性,将当前执行的服务器名称加入这列中
$Perdata |Add-Member -MemberType NoteProperty -Name "连接数总数" -Value $comuterperformancedata.connectioncount
#添加一列,将开始获取的$comuterperformancedata的连接总数获取出来
$Perdata |Add-Member -MemberType NoteProperty -Name "用户连接数" -Value $comuterperformancedata.usercount
#添加一列,将$comuterperformancedata 用户连接数获取出来
$Perdata |Add-Member -MemberType NoteProperty -Name "活动用户连接数" -Value $comuterperformancedata.activeusercount
#添加一列,将$comuterperformancedata 活动用户连接数获取出来
$Perdatas =$Perdatas+$Perdata
#将当前的组织内的服务器所有数据获取出来,组成一个数组
}

$outputpath=$templog+"\"+"performance"+$(get-date -Format "yyyy-MM-dd")+".csv"
#生成CSV存在路径,名称格式为年-月-日,这个文件每天产生一个

if (!(test-path -Path $outputpath))
#判断上面的路径是否存在,根据存在与否执行不同的语句
{
$Perdatas |Export-Csv -Encoding default -notypeinformation -Path $outputpath
#如果不存在CSV文件,我们将perdatas 中的数组输出为csv文件
}
else
{
$Perdatas |ConvertTo-Csv -NoTypeInformation |select -Last $exchsvr.count |Out-File -Encoding default -Append -FilePath $outputpath
#如果存在CSV 文件,我们就将上面的数据以添加的方式导入到csv文件中
}

$messagebody ="Dear sir:
Perforcae count in exchange cas has been collect. Current colleting time is"+$currenttime
#设置邮件主体
Send-MailMessage -SmtpServer $SmtpServer -From $Sendfrom -To $Mailreceive -Subject "Exchange Performance counter has been collected" -Body $messagebody
#发送邮件告知收件人数据已经收集到并且已经产生
}

#endregion

#region SendMailaddress
if ($SendPerformancedata)
{
$sendfilepath=$TempLog+"\"+"performance"+(Get-Date -Format "yyyy-MM-dd")+".csv"
#验证文件目录是否存在
$bodymessage="Dear Sir:
This is mesage from Exchange Server,you can check attachment for further information of performance data.

Best Regards"
#邮件主题和内容

if (test-path -Path $sendfilepath)
#判断目录是否存在
{
Send-MailMessage -SmtpServer $SmtpServer -From $Sendfrom -To $Mailreceive -Subject "Please Check today's Exchange Server Performance Data" -Body $bodymessage -Attachments $sendfilepath
#如果文件存在,我们直接将文件以附件方式发送邮件给定义好的邮件发送人
}
else
{
Send-MailMessage -SmtpServer $SmtpServer -From $Sendfrom -To $Mailreceive -Subject "File Does not exist" -Body "Sorry sir,File Does not exist.Please check file in exchange server"
#如果文件不存在,我们发送邮件告知收件人,文件不存在
}

}
#endregion


分享到:
评论

相关推荐

    cas3.5.2单点登录文档详细配置

    本人亲自试验的cas单点登录配置,服务端用cas-server-3.5.2,客户端用cas-client-3.2.1,里边详细描述了具体每一步的配置过程及遇到的问题及异常,相信你也会碰到的,cas-client-3.2.1中需要修改一个java类的源代码...

    java-cas单点登录服务端

    单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS(Central Authentication ...

    最新cas单点登陆demo包含cas服务器和2个客户端代码

    这个的注意说明写的比较清除,以这个为准,,,,csdn不可以删除已经上传的资源。。 cas单点登陆的完整demo,java实现,支持https,包含cas服务器和2个客户端代码,解压即用,运行之前请阅读注意说明,记得添加证书至jdk...

    cas单点登陆demo包含cas服务器和2个客户端代码

    cas单点登陆的完整demo,java实现,支持https,包含cas服务器和2个客户端代码,解压即用,运行之前请阅读注意说明,记得添加证书至jdk信任,如果实在无法运行可以参考我的博客相关文章

    落雨博客基于CAS框架的单点登录技术讲解(ppt+code实例+doc)配套资料

    内含本人实例精华,一个自做PPT,动画解析cas协议,四个客户端client程序实例,一个server端程序,N个文档以及所有xml文件。配套讲解博客地址: [置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+...

    cas-2.5.3 + mysql单点登录

    cas单点登录war包 + mysql用户登录脚本,将cas的war包放到tomcat中,创建数据库,即可实现单点登录实例

    cas单点登录服务器资源下载

    CAS服务器是基于Spring框架构建的Java servlet,其主要职责是验证用户并通过发布和验证票证来授予对启用CAS的服务(通常称为CAS客户端)的访问权限。 当服务器在成功登录时向用户发出票证授予票证(TGT)时,将创建...

    CAS单点登录操作文档

    CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决方案。 • CAS Server ...

    CAS的客户端与服务器配置

    CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要...

    使用Java的Memory Model实现一个简单的计数器.txt

    这个代码实现了一个简单的计数器,使用了Java的`AtomicInteger`类来保证多线程环境下的原子性操作。`AtomicInteger`是一个支持原子操作的整数类,它内部使用了CAS(Compare And Swap)算法来实现线程安全的操作。在...

    耶鲁大学单点CAS服务器

    耶鲁大学开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Server)被设计成一个独立的Web应用程序(cas.war)。该资源不仅提供部署在Tomcat服务器上的cas.war包(解压缩后在webapps目录下),而且...

    cas4认证服务

    cas认证服务器,解压完以后放在tomcat既可以启动服务器。

    使用CAS在Tomcat中实现单点登录

    单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication ...

    单点登录sso-shiro-cas-maven

    spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...

    CAS实现内外网映射访问的解决办法

    由于在调用 CAS统一服务认证时,其中cas的服务地址都是固定的,从而限制了你的项目部署在内网,同时又需要外网进行访问的情况,通过本文的方法即可以解决这一限制,动态的根据配置文件来进行内外网的访问。

    cas.zip--cas源码

    cas源码,可直接使用 单点登录(Single Sign On),简称为 SSO,是目前...CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

    CAS单点登录系统.doc

    CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决方案。 • CAS Server ...

    CAS单点登录系统之java实现(part_1)

    资源列表(1:cas CAS Server,2:Cas_Client_One 授权系统,3:graduationDesign 用户组织管理系统,4:CAS单点登录论文.doc,5:CAS单点登录文献综述.doc,6:基于CAS的用户管理单点登录门户系统ppt.ppt)

    CAS单点登陆配置手册

    CAS 是 Yale (耶鲁)大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: •开源的企业级单点登录解决方案。 •CAS ...

    CAS单点登录服务器配置详情

    详细配置CAS单点登录,利用java代码实现配置CAS,单独

Global site tag (gtag.js) - Google Analytics