前陣子看了大向的一篇文章,感覺他分享的腳本非常好用。原文地址:https://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