場(chǎng)景分析:
1. A企業(yè)員工啊旺在zabbix_server上,執(zhí)行了一個(gè)通過(guò)agent調(diào)用遠(yuǎn)程window主機(jī)腳本的操作,但是由于該腳本的輸出結(jié)果帶有中文,啊旺在zabbix_server的界面看到的內(nèi)容是一串亂碼字符,他根本不知道遠(yuǎn)程腳本是否執(zhí)行成功。于是他想把腳本的輸出結(jié)果改成英文提示success或者error。但由于該腳本不是由啊旺編寫(xiě)的。所以他不知道應(yīng)該修改腳本的那個(gè)位置,才能使顯示為英文。因此,本文的目的就是為了解決,zabbix_server調(diào)用window的遠(yuǎn)程腳本帶有中文的顯示亂碼問(wèn)題。
第一步:編寫(xiě)一個(gè)window上輸出中文的bat腳本

在window服務(wù)器上執(zhí)行bat腳本是否可以輸出結(jié)果

Window主機(jī)上執(zhí)行bat腳本,結(jié)果正常輸出。
第二步:在zabbix_server上創(chuàng)鍵執(zhí)行該文件的腳本

因?yàn)樵撃_本是window上的腳本,所以要選擇執(zhí)行在zabbix客戶(hù)端

在腳本存放的主機(jī)上執(zhí)行該腳本


執(zhí)行后的結(jié)果,如下圖,中文顯示亂碼,數(shù)字顯示正常(英文也顯示正常)

第三步:編寫(xiě)轉(zhuǎn)碼的bat腳本實(shí)現(xiàn),中文的正常輸出
文件的路徑要用絕對(duì)值,否則調(diào)用的時(shí)候會(huì)出現(xiàn)報(bào)錯(cuò)

第一行:把test.bat腳本執(zhí)行結(jié)果的內(nèi)容輸出到1.txt文件
第二行,把test.txt這個(gè)文件轉(zhuǎn)碼為utf8的格式
(注意,第二行,源文件名不能和轉(zhuǎn)碼后的名字一樣,否則會(huì)使轉(zhuǎn)碼后的文件為空)
即不能使用powershell -c "Get-Content F:\桌面C盤(pán)\1.txt|Out-File -Encoding utf8 F:\桌面C盤(pán)\1.txt"
第三行是查看test.bat腳本執(zhí)行的就夠
第四,五行刪除剛才生成的文件
重新修改執(zhí)行window腳本


Ok,大功告成。中文顯示正常
技術(shù)交流歡迎加入Q群:177428068