新手在这里...非常感谢大家的帮助和意见!
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 和 Client 的 FullName、Name、Length、SQL 表中的 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 为空白。
非常感谢任何建议/提示!