Jump to content
njcltd

Folder Monitor

Recommended Posts

Hi,

I would like to have a folder monitor, basically I have a folder (or several folders) that I need to monitor that the files in the folder and receive alerts for the following.

- files are older than X days
- over X number of files in the folder

 

Please advise if this is possible currently of if this will require development, if this can be accomplished with a script then some pointers would be useful, ideally this would run at the same rate as other aspects of the system, but it could also be a daily/hourly check as I understand it could consume time processing!

 

Share this post


Link to post
Share on other sites

Hi,

try to run these scripts:

Check if folder contines files older than 10 days.

$fullPath = "path to the folder"
$days = 10 # files older than 10 days

$files = @(get-childitem $fullpath -include *.* -recurse | where {($_.LastWriteTime -lt (Get-Date).AddDays(-$days)) -and ($_.psIsContainer -eq $false)})
if($files.length -gt 0){exit 1}
else{exit 0}

Check if folder contains more than 5 files

$fullPath = "path to the folder"
$count = 5 # check if folder containes more than 5 files

$files = @(get-childitem $fullpath)
if($files.Count -gt $count){exit 1}
else{exit 0}

 

Share this post


Link to post
Share on other sites

Thanks Chris, the script works fine, I can add some output to them, but it seems they require running manually? Is there a way to have scripts run at the same interval as other test, at the very least I would need to check hourly?

it would be great if this could be added in a similar format to the SSL so that multiple folders could be added with Alert times from 1 minute, happy to discus this offline.

I could do an automation script but there is not an option less than daily.

Many Thanks

Share this post


Link to post
Share on other sites

Any updates on this, also very interested as we have a few systems where monitoring the number of files or size of a queue folder would be very helpfull. As buildup means they are not being processed.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By unfeomateo
      I want to setup a SNMP notification for my canon printer.  The "printer status" OID will show nothing when the printer is working and show a number if there is an error. I have no idea what each and every error might show up as. 
      Is it possible to set the notification to alert me if that SNMP option changed from null to some number? Right now if I leave "value" blank I cannot click ok to finish. 
    • By kavaa
      I made a install script for 7-Zip to do a Silent install and clean if needed.
      Improvements are welcome!
      When a new version of 7-Zip comes out, just change the 7z1604-x64.msi to the new value.
      # Silent Install 7-Zip # http://www.7-zip.org/download.html # Path for the workdir $workdir = "c:\installer\" # Check if work directory exists if not create it If (Test-Path -Path $workdir -PathType Container) { Write-Host "$workdir already exists" -ForegroundColor Red} ELSE { New-Item -Path $workdir -ItemType directory } # Download the installer $source = "http://www.7-zip.org/a/7z1604-x64.msi" $destination = "$workdir\7-Zip.msi" # Check if Invoke-Webrequest exists otherwise execute WebClient if (Get-Command 'Invoke-Webrequest') { Invoke-WebRequest $source -OutFile $destination } else { $WebClient = New-Object System.Net.WebClient $webclient.DownloadFile($source, $destination) } Invoke-WebRequest $source -OutFile $destination # Start the installation msiexec.exe /i "$workdir\7-Zip.msi" /qn # Wait XX Seconds for the installation to finish Start-Sleep -s 35 # Remove the installer rm -Force $workdir\7*  
    • By lyoder
      This script will check to see if a VPN connection with the given name exists. If it does exist, it updates the VPN connection. If it does not exist, it creates a VPN connection with the given values.
      Note: I believe Pulseway runs PowerShell scripts under the Local System account by default (unless you have defined PowerShell User Impersonation in the Pulseway Manager, I think). In order to expose the VPN to users, this script runs against the Global Phone Book (-AllUserConnection switch). Therefore, this script does not check for the existence of VPN profiles stored in individual user Phone Books. (If an existing user VPN profile exists, this script will create a new VPN in the Global Phone Book, as it will not be able to see the existing user VPN.)
      This script was developed and tested on Windows 10, but should also work on Windows 8/8.1.
      PowerShell VpnClient documentation: https://docs.microsoft.com/en-us/powershell/module/vpnclient/?view=win10-ps
      ################################ # VARIABLES $Name = "VPN" $ServerAddress = "vpn.domain.com" # IP Address or FQDN $TunnelType = "Automatic" # Values: PPTP | L2TP | SSTP | IKEv2 | Automatic $L2tpPsk = '[Insert PSK Here]' $AuthenticationMethod = "MSCHAPv2" # Values: PAP | CHAP | MSCHAPv2 | EAP $EncryptionLevel = "Optional" # Values: NoEncryption | Optional | Required | Maximum $UseWinlogonCredential = $true $RememberCredential = $true $SplitTunneling = $true $DnsSuffix = 'domain.local' ################################ # If PowerShell supports VPN configuration, apply VPN configuration if (Get-Command 'Get-VpnConnection') { # If VPN exists, update VPN settings if (Get-VpnConnection -Name $Name -AllUserConnection -ErrorAction SilentlyContinue) { Set-VpnConnection -Name $Name -AllUserConnection -ServerAddress $ServerAddress -TunnelType $TunnelType -EncryptionLevel $EncryptionLevel -AuthenticationMethod $AuthenticationMethod -SplitTunneling $SplitTunneling -DnsSuffix $DnsSuffix -L2tpPsk $L2tpPsk -UseWinlogonCredential $UseWinlogonCredential -RememberCredential $RememberCredential -Force } # Else, create VPN connection else { Add-VpnConnection -Name $Name -AllUserConnection $true -ServerAddress $ServerAddress -TunnelType $TunnelType -EncryptionLevel $EncryptionLevel -AuthenticationMethod $AuthenticationMethod -DnsSuffix $DnsSuffix -L2tpPsk $L2tpPsk -Force Set-VpnConnection -Name $Name -AllUserConnection -SplitTunneling $SplitTunneling -UseWinlogonCredential $UseWinlogonCredential -RememberCredential $RememberCredential } return Get-VpnConnection -Name $Name -AllUserConnection exit } # Else, exit with failure code else { return "Client does not support VpnClient cmdlets" exit 1 }  
    • By awestwood
      Hi there!
      I am looking for a way to install a custom MSI pakage that I built on my endpoints via a script. I have the MSI package on my website. I need the script to download the MSI from my website, then execute in silent mode. Thank you!!
    • By dpbklyn
      Is there a way to exclude a particular disk (e:\) from the storage notifications?
×
×
  • Create New...