前阵子看了大向的一篇文章,感觉他分享的脚本非常好用。原文地址:http://blog.51cto.com/hubuxcg/1604582
但是在部署的过程中还是遇到了种种问题,现在就瑾以此文以作记录。
- 最开始遇到的问题是脚本无法读取CPU的使用。原代码如下:
$CPULoad=(Get-WmiObject win32_Processor -computername $Computer ).LoadPercentage
检查后发现原来是服务器的CPU有2颗所以无法显示所至,故代码修改为:
$CPULoad=(gwmi –computername $Computer win32_Processor)|select LoadPercentage|foreach{echo "cpu:" $_.LoadPercentage}
这样有多颗CPU也可以进行读取了。
2.该脚本运行需要运行命令账号对该机器有管理员权限,我司在域内其他机器是拿掉了域的administrator账号。所以需要专门开一个账号对脚本进行操作。
新开账号后加入builtin的administrators群组内,该账号就有对域内DC的管理权限了。
另,我是用该账号运行脚本,故要在想读取内容的所有服务器管理员组内都要加上该账号。
3.计划任务无法执行
原代码:
$ServerName=(Get-Content ".\serverlist.txt")
问题就出在这里,如果要把脚本添加到计划任务内,那么不能使用相对地址,而是要用绝对地址。
$ServerName=(Get-Content "D:\script\serverlist.txt")
修改后就无问题了。
4.原脚本需要开放执行主机的匿名relay用来发送邮件。如果出于安全考虑不想开放该主机的匿名relay权限。则可以修改如下位置:
Send-MailMessage @email
修改为:
$ss=ConvertTo-SecureString -String "实际账号密码" -AsPlainText -force $ss|Write-Host $cre= New-Object System.Management.Automation.PSCredential("实际账号",$ss)
之后再增加参数
Send-MailMessage @email -Credential $cre
5.该脚本主要使用wmi类读取服务器内容。而wmi类也可以使用-Credential 参数增加凭据,那么读取非加域机器就成为了可能。
原理一样在脚本的前面增加凭据代码
$ss=ConvertTo-SecureString -String "实际账号密码" -AsPlainText -force $ss|Write-Host $cre= New-Object System.Management.Automation.PSCredential("实际账号",$ss)
之后在每一个Get-WmiObject win32_Processor后增加参数-Credential 添加凭据即可
为什么要这么干呢。而不是在非加域机器本身上执行?因为公司还有一些2003的机器不加域,也没powershell。。。
在这里遇到一个问题,读取日志功能Get-EventLog,找到了使用wmi类代替的Get-WmiObject -Class Win32_NTLogEvent 但是需要根据语言的不同修改对应的内容
原:
$ApplicationEvents = Get-EventLog -ComputerName $Computer -LogName Application -EntryType Error,Warning -Newest $EventNum
修改后:
$ApplicationEvents =Get-WmiObject -ComputerName $Computer -Credential $cre -Class Win32_NTLogEvent -Filter '(Type="错误" or Type="警告")and LogFile="Application"' |select -First $EventNum -Property type, TimeGenerated,sourcename, message
如果是英文系统则改为(Type="Error" or Type="Warning")即可。
6.wmi需要打开防火墙对应端口,
使用cmd命令如下:
netsh firewall set service RemoteAdmin enable
或者
netsh advfirewall set allprofiles settings remotemanagement enable
修改后的脚本下载地址:
http://down.51cto.com/data/2440489
原文地址:http://blog.51cto.com/12541359/2072007