2009-06-17 9 views

Antwort

0

anscheinend können Sie "die Namen der logischen Daten und Protokolldateien aus den Sammlungen von Dateigruppen und Dateien abrufen".

siehe link text

+0

Nein Ich möchte den genauen Pfad der Protokolldateien im System kennen. – Cute

4
public static void foo() { 
    Microsoft.SqlServer.Management.Smo.Server server = new ServerConnection("<server name>"); 
    Microsoft.SqlServer.Management.Smo.Database db = server.Databases["<database name>"]; 
    Console.WriteLine(db.FileGroups[0].Files[0].FileName); 
    Console.WriteLine(db.LogFiles[0].FileName); 
    } 

Dieses Beispiel vorausgesetzt, dass Sie über ausreichende Rechte auf den Server \ Database haben, und gibt nur den vollständigen Pfad \ Dateinamen für die erste db/log-Datei im Dateigruppe.

Dateigruppen, Dateien und Logdateien sind SMO-Sammlungen, die eines oder mehrere der entsprechenden Elemente enthalten.

0
$targetServerName = "localhost" 
$targetDatabaseName = "dbname" 

$targetServer = New-Object ("Microsoft.SqlServer.Management.Smo.Server")$targetServerName 
$database = $targetServer.Databases[$targetDatabaseName] 

foreach ($fg in $database.FileGroups) 
{ 
    foreach ($df in $fg.Files) 
    { 
    "Filegroup type : " + $fg.Name + " DataFiles : " + $df.FileName 

    } 
} 
foreach ($lf in $database.LogFiles) 
{ 
    "Log file : " + $lf.FileName 
} 

Das sollte Ihnen die genauen Pfade erhalten.