Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 112
  • Last Modified:

PowerShell, deleting files using last modified and last accessed

I had this question after viewing PowerShell, deleting files from multiple servers.

I had help with the below script to delete files from multiple servers. However, i now realize that some files are being used and need to delete files where the last acccessed time is less than x days and modified time is less than x days.

$User = "user"
$Password = Get-Content "D:\NCR\DAX\Scripts\psPW" | ConvertTo-SecureString

$Creds = New-Object System.Management.Automation.PsCredential -ArgumentList $user, $Password

$Servers = Get-Content D:\NCR\DAX\Scripts\servers.txt 
# When you run an Invoke-Command command, Windows PowerShell runs the commands on all of the specified computers or in all of the specified PSSessions.This method will delete from all servers at the same.
Invoke-Command -ComputerName  $Servers -Credential $Creds -ScriptBlock {
  $date = (Get-Date).AddDays(-5)
  Set-Location 'c:\Users\dax\AppData\Local\Temp'
  Get-ChildItem -File | Where-Object {$_.LastWriteTime -lt $date} | Remove-Item -Force
}

Invoke-Command -ComputerName  $Servers -Credential $Creds -ScriptBlock {
  $date = (Get-Date).AddDays(-8)
  Set-Location 'C:\Windows\Temp'
  Get-ChildItem -File | Where-Object {$_.LastWriteTime -lt $date} | Remove-Item -Force
}

Open in new window

0
jacobJL
Asked:
jacobJL
  • 4
  • 2
2 Solutions
 
Jason CrawfordExchange EngineerCommented:
If I'm understanding the requirements correctly, you should be able to just modify line 11 to this:

Get-ChildItem -File | Where-Object {$_.LastWriteTime -lt $date -and $_.LastAccessTime -lt $date} | Remove-Item -Force

Open in new window

0
 
jacobJLAuthor Commented:
SMH. That's exactly what i had but i forgot hyphen in front of the and operator. However after corrected i still get this error

Cannot remove item C:\Windows\Temp\vmware-vmsvc.log: The process cannot access the file 'C:\Windows\Temp\vmware-vmsvc.log' because it is being used by another process.
    + CategoryInfo          : WriteError: (C:\Windows\Temp\vmware-vmsvc.log:FileInfo) [Remove-Item], IOException
    + FullyQualifiedErrorId : RemoveFileSystemItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand
0
 
jacobJLAuthor Commented:
Oh. I just realized last accessed isn't the problem here. his file says last accessed in February. Not sure how its being used by another process, but i am thinking i need to exclude this file from the delete script
0
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
Jason CrawfordExchange EngineerCommented:
Looks like VMware logging.  We can exclude open files or *.log or both.
0
 
jacobJLAuthor Commented:
and would that be done like this

Invoke-Command -ComputerName  $Servers -Credential $Creds -ScriptBlock {
  $date = (Get-Date).AddDays(-5)
  Set-Location 'c:\Users\dax\AppData\Local\Temp'
  Get-ChildItem -File  -exclude .log | Where-Object {$_.LastAccessTime -lt $date} | Remove-Item -Force -WhatIf
}

How would you exclude open files?
0
 
QlemoC++ DeveloperCommented:
You'll need to use -exclude *.log - it needs to be a file mask, no substring match.
The brute force approach to get over open files is to just ignore the error message. Add -ea SilentlyContinue to the remove-item.
0
 
jacobJLAuthor Commented:
Sorry for late response, was still running into issues but i figured it out. This is what i needed. thank you.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now