forked from mtikoian/SQLDBA-SSMS-Solution
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathFind-ChangedDatabases-Since-Date.sql
36 lines (29 loc) · 1.08 KB
/
Find-ChangedDatabases-Since-Date.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$Server = 'SomeServerName'
$query = "select db_name(mf.database_id) as dbName, mf.physical_name from sys.master_files mf"
$result = Invoke-DbaQuery -SqlInstance $Server -Query $query;
$thresholdDateString = '05-Dec-19'
$thresholdDate = [datetime]::parseexact($thresholdDateString, 'dd-MMM-yy', $null)
$changedFileList = @();
foreach($i in $result) {
$dbName = $i.dbName;
$filePath = $i.physical_name;
$fileName = "\\$Server\" + $filePath.Replace(':','$');
#Write-Host $fileName
$file = Get-Item $fileName
#$file.LastWriteTime
$hasChanged = $false
if($file.LastWriteTime -gt $thresholdDate) {
$hasChanged = $true
}
$props = [ordered]@{
DbName = $dbName;
PhysicalName = $filePath;
HasChangedSinceLastRestore = $hasChanged;
}
$obj = New-Object -TypeName psobject -Property $props
$changedFileList += $obj
}
$changedFileList `
| Where-Object {$_.HasChangedSinceLastRestore} `
| Select-Object DbName, HasChangedSinceLastRestore -Unique `
| Sort-Object -Property DbName | ogv;