2016-11-05 8 views
1

Я хочу поделиться этим скриптом, чтобы блокировать выкуп, а затем делиться со всеми. Единственное, что я застрял в этом, добавив несколько дисков, и поймаю ошибку или успех при создании файлов.Catch success and error

Что это сделать, это

  1. Установить FSRM работает.
  2. Создать файл с файлом, который работает с файлами неправильно, не может выбрать более 1.
  3. Он должен поймать, если файлы созданы, поэтому мы можем сказать, что это не удалось.
  4. Ловить доступ запрещен и сказать, что он работает.

Надежда кто-то может помочь

#Check If FSRM is Are Already Installed 
$check = Get-WindowsFeature | Where-Object {$_.Name -eq "FS-Resource-Manager"} 
if ($check.Installed -ne "True") { 
    Install-WindowsFeature -Name FS-Resource-Manager -IncludeManagementTools 
} else { 
    Write-Host "Cool FSRM is already installed" -F Green 
} 

#define drive letters here 
$drive = @("D:\", "E:\", "C:\users") 

#Create notification is required 

#$Notification = New-FsrmAction -Type Email -MailTo "[Admin Email];[File Owner]" -Subject "Warning: attempted to create a Ransomeware file text file" -Body "You attempted to create a Ransomeware. This is not allowed." -RunLimitInterval 120 

New-FsrmFileGroup -Name "Anti-Ransomware File Groups" -IncludePattern @((Invoke-WebRequest -Uri "https://fsrm.experiant.ca/api/v1/combined" -UseBasicParsing).Content | 
    ConvertFrom-Json | % {$_.filters}) 

New-FsrmFileScreen -Path "$drive" -IncludeGroup "Anti-Ransomware File Groups" -Active # -Notification $Notification 

#test if its working 
try { 
    New-Item "$drive\$(get-random).xtbl" -Type File -ErrorAction Stop 
    Write-Verbose "[RANSOMEWARE CONFIGURATION FAILED] Created $FullName" 
} catch { 
    $ErrorMessage = $_.Exception.Message 
    Write-Warning "[ERROR] access Denied" 
    Write-Host "Congrats you have successfully configured Ransomeware block Sit back and relax" 
} 
+0

бы Shay Леви в этой теме будет полезна для вас? http://stackoverflow.com/questions/8693675/check-if-a-command-has-successfully-ran – Kage

+0

t dont думаю, поэтому нам не нужно использовать wmi – DisplayName

+0

Был ли ссылка на $? являясь автоматической переменной, касающейся успеха вашей предыдущей команды, вы не проверяли ответ Шей Леви. – Kage

ответ

0

успех

$disks = GET-WMIOBJECT win32_logicaldisk -filter "DriveType='3'" | Where {$_.deviceid -ne "C:"} 
      ForEach($disk in $disks) { 
             $DRIVE = $DISK.DeviceID 

            New-FsrmFileScreen -Path "$Drive\" –IncludeGroup "Anti-Ransomware File Groups" -Active # -Notification $Notification 

            } 

#Test if its sucess 

            foreach($Disk in $disks) { 
             $DRIVE = $DISK.DeviceID 

Try 
    { 
     #$newpath=Join-Path -Path $Drive -ChildPath "$(Get-Random).xtbl" 
     $File = New-Item "$drive\$(Get-Random).xtbl"-type file -ErrorAction Stop -ErrorVariable 'ErrorMessage' 
     Write-host "[RANSOMEWARE CONFIGURATION FAILED] Created $($File.FullName)" -ForegroundColor red 
    } 

    Catch 
    { 
     Write-Warning "[ERROR] access Denied" 
     Write-Output "File not created: $($File.FullName)" 
     Write-Host "Congrats you have successfully configured Ransomeware block Sit back and relax" -f green 
    } 
    } 

    ##### create File screen and block all the shared items 


    $paths=Get-WmiObject Win32_Share | Select Name,Path,Type | Where-Object { $_.Type -eq 0 } | Select -ExpandProperty Path 

    foreach($path in $paths){ 
New-FsrmFileScreen -Path "$path" –IncludeGroup "Anti-Ransomware File Groups" -Active # -Notification $Notification 

} 
ответ