溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Powershell 之監(jiān)控文件系統(tǒng)變化

發(fā)布時(shí)間:2020-06-21 01:30:01 來源:網(wǎng)絡(luò) 閱讀:902 作者:海底小縱隊(duì) 欄目:系統(tǒng)運(yùn)維
#region Import Assemblies
#----------------------------------------------
[void][Reflection.Assembly]::Load("System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
[void][Reflection.Assembly]::Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][Reflection.Assembly]::Load("System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
#endregion Import Assemblies

#設(shè)置監(jiān)控路徑
$script:folder="C:\"

$form=New-Object System.Windows.Forms.Form
$form.FormBorderStyle="Fixed3D"
$form.StartPosition = 'CenterScreen'
$form.ClientSize="200,80"
$form.Text="Monitor"

$buttonStart=New-Object System.Windows.Forms.Button
$buttonStart.Text="Start Watch"
$buttonStart.Location="45,10"
$buttonStart.add_click({start-watch})
$buttonStart.Size="100,20"

$buttonStop=New-Object System.Windows.Forms.Button
$buttonStop.Text="Stop Watch"
$buttonStop.Location="45,40"
$buttonStop.add_click({stop-watch})
$buttonStop.Size="100,20"

$form.Controls.AddRange(@($buttonStart,$buttonStop))

$script:watcher = New-Object System.IO.FileSystemWatcher $folder

#開始執(zhí)行監(jiān)控
function start-watch{
    $NotifyFilters=New-Object System.IO.NotifyFilters
    #$watcher.NotifyFilter="Size,LastWrite,LastAccess,CreationTime,Security"
    $watcher.Filter = "*.*"
    $watcher.InternalBufferSize = 65536
    #是否包含子目錄
    $watcher.IncludeSubDirectories = $True
    #是否觸發(fā)事件,必須開啟
    $watcher.EnableRaisingEvents = $True
    $watcher.SynchronizingObject = $form
    $form.Text="Monitoring"
    $buttonStart.Enabled=$false

    #創(chuàng)建時(shí)觸發(fā)
    $watcher.add_Created({created})
    $watcher.add_Changed({changed})
    $watcher.add_Deleted({deleted})
    $watcher.add_Renamed({renamed})

}

function msg($message){
    [Windows.Forms.MessageBox]::Show($message)
}

# $_.changetype 獲取操作類型
# $_.fullpath   獲取文件絕對(duì)路徑

function created(){
    #創(chuàng)建文件
    #自己編寫處理邏輯
    msg($_.fullpath)
}

function changed(){
    #文件信息變更
    #自己編寫處理邏輯
    msg($_.fullpath)
}

function deleted(){
    #刪除文件
    #自己編寫處理邏輯
    msg($_.fullpath)
}

function renamed(){
    #名稱變更
    #自己編寫處理邏輯
    msg($_.fullpath)
}


#停止監(jiān)控
function stop-watch{
    $watcher.EnableRaisingEvents = $false
    $form.Text="Monitor"
    $buttonStart.Enabled=$true
}


$form.ShowDialog()



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI