ここの初心者...みんなの助けと意見は大歓迎です!
30,000 ビュー: ネットワークから削除できる/削除する必要がある「古いデータ」に関するレポートを作成します。
ステップ 1. FullName、Name、および Length の値を含むサーバーのグループから、「ST_」または「EDDS1」で始まるフォルダーのリストを収集します。
$Path =
"\\server1.domain.com\b\sqlbackups",
"\\server1.domain.com\b\sqlbackups",
"\\server1.domain.com\b\sqlbackups";
$BackupFolders = @(gci $Path -filter "ST_*" | ?{ $_.PSIsContainer}) | Select FullName,Name,Length
$BackupFolders += @(gci $Path -filter "EDDS1*" | ?{ $_.PSIsContainer}) | Select-Object FullName Name, Length
$BackupFolders | Export-CSV C:\BackupFolders.csv
これは長さの列を引き出しますが、その列には値がリストされていません...
ステップ 2. このリストを SQL テーブルと比較します。値が参照ドキュメント (ステップ 1) および SQL の特定の列に存在する場合は、SQL の「ステータス タブ」を参照してください。SQL テーブルの「ステータス タブ」が「非アクティブ」の場合、Step1 から FullName、Name、Length、SQL テーブルから Client、Project Name を csv に出力します。
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = "Server=sqlserver\sharename;Database=database;Integrated Security=True"
$sqlConnection.Open()
$sqlCommand = New-Object System.Data.SqlClient.SqlCommand
$sqlCommand.CommandText = "SELECT * FROM [Table].[dbo].[Matters] WHERE [Status] NOT LIKE 'Active%'"
$sqlCommand.Connection = $sqlConnection
$sqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$sqlAdapter.SelectCommand = $sqlCommand
$Dataset = New-Object System.Data.DataSet
$sqlAdapter.Fill($Dataset)
$sqlConnection.Close()
$MatterStatus = @"
C:\MatterStatus.csv
"@
$Dataset.Tables[0] | Select Client,Project,MatterStatus | Export-Csv c:\MatterStatus.csv
質問 1 - ステップ 1 で作成した csv にリストされる長さ属性を取得するにはどうすればよいですか?
質問 2 - ここで正しい軌道に乗っていますか? ステップ 1 と同様に、最後の値が反映されませんでした...csv の MatterStatus が空白です。
提案/ヒントは大歓迎です!