2017-02-28 1 views
0

Das ist, was ichfinden Neueste BAK-Datei von mehreren Servern und kopieren Sie die aktuelle Datum

Get-ChildItem \\testserver01\m$\mssql\backup, \\testserver01\m$\MSSQL\Backup, \\testserver01\m$\MSSQL_TRAINING\Backup -Recurse -filter "*.BAK" | Select Name,Directory,CreationTime,LastWriteTime, @{Name="Mbytes";Expression={ "{0:N0}" -f ($_.Length/1Mb) }} | 
Sort-Object Directory,Name,CreationTime | 
where-object { -not $_.PSIsContainer } | 
sort-object -Property $_.CreationTime | 
select-object -last 1 | 
out-gridview 

Jede dieser drei Server laufen Backups für 6 diff Datenbanken so weit haben .. So gibt es 6 Dateien, die ich brauche von jedem Server gerade jetzt zieht es die neueste Datei von allen von ihnen. Ich brauche die neueste Datei von jedem Server und von jedem Bakup (es gibt eine rollende 3 Tage für jede Datenbank)

+0

Can u es ausführlicher machen, wenn Sie in der Lage sind, alle Dateien zu erhalten und die neuesten bekommen ,,,, wo ist das Problem? –

+0

Ich bearbeitet den Hauptbeitrag –

Antwort

0

Punkt zu beachten, Sort-Object wird Sortieren nach dem Sammeln aller Daten, so dass die Sortierung sollte minimal sein und Out-GridView wird nicht wie in der Foreach-Schleife verwendet.

Und hier war es Daten von allen Servern zu sammeln und einen aus der ganzen Liste.

'\\testserver01\m$\mssql\backup','\\testserver01\m$\MSSQL\Backup','\\testserver01\m$\MSSQL_TRAINING\Backup' | Foreach-Object -Process { 
    Get-ChildItem -path $_ -Recurse -filter "*.BAK" | Select Name,Directory,CreationTime,LastWriteTime, @{Name="Mbytes";Expression={ "{0:N0}" -f ($_.Length/1Mb) }} | 
    where-object { -not $_.PSIsContainer } | 
    sort-object -Property $_.CreationTime | 
    Select-Object -Unique 
} 

Grüße,

Kvprasoon

+0

es muss den neuesten eindeutigen Dateinamen aus allen gesammelten BAK-Dateien ziehen –

+0

Wenn Sie neustes benötigen, dann gibt es keinen Punkt in einzigartig, das Code-Snippet wird geändert, um jetzt einzigartig zu werden. –

+0

versucht, dass und bekam select-Unique: Der Begriff 'Select-Unique' wird nicht als Name eines Cmdlet, Funktion, Skriptdatei oder ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens oder, wenn ein Pfad enthalten war, überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut. In Zeile: char 5: 5 + wählen-Unique + ~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (select-Unique: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException –

Verwandte Themen