1. 程式人生 > >旁門左道-玩轉psr問題記錄器之用戶操作記錄

旁門左道-玩轉psr問題記錄器之用戶操作記錄

psr 問題記錄器 用戶操作記錄

需求:用戶在公網訪問的內部桌面雲、服務器的時候,需要記錄並保存用戶的操作記錄。 一開始的設想是利用屏幕錄像,能滿足需求的錄屏軟件都是要收費的,價格不菲,公司目 前是沒有這方面的投入打算的。折騰很久,無意中發現,win7自帶一個神器, 叫psr(Problem Steps Recorder)。直接運行psr,試著玩了一下,效果非常滿意,值得高興 的是,這軟件支持在命令行,帶參數靜默運行!於是折騰了1天,弄了個旁門左道的玩法。 powershell腳本:
#先在文服上創建一個用戶名命名的文件夾
md "\\文服共享路徑\$env:username";
#啟動psr的方法
function psrStart {
$FileName = Get-Date -Format ‘yyyyMMddHHmmss‘;#用當前的日期和時間作為文件名,需要格式化去掉":"特殊字符
psr.exe /start /gui 0  /output "\\文服共享路徑\$env:username\$FileName.zip";#/gui 0 表示靜默後臺運行, /output為保存路徑
psrStop;#調用psr結束的方法,沒有這個動作,不會保存zip。
}

function psrStop{
count;#調用"計時器"
psr.exe /stop;
Sleep -m  500;
psrStart;
}

function count{
Sleep -s 20;
}
psrStart;
    至於為什麽不在註銷時,通過腳本運行 psr /stop。這也是我折騰這麽久的原因,因為我發現,
            psr /start,必須配合psr /stop使用,才會把zip文件保存到你指定的位置,強制結束psr進程是
            不會保存的。然而在用戶註銷系統時,在調用腳本之前,就會把psr進程結束掉;我也嘗試把
            psr的運行腳本做成系統服務的方式啟動,效果都不理想。
            所以才出了每隔20秒,結束、啟動一次psr動作來實現數據保存的下策。

            如果大家有好的辦法,能在用戶點擊註銷,結束psr進程前,運行psr /stop命令,並且有一
            定時間能讓生成的zip文件上傳到服務器,請多多指教。

旁門左道-玩轉psr問題記錄器之用戶操作記錄