Ниже приведен пример, который извлекает все операторы SQL, но его можно легко адаптировать для выбора любых элементов, таких как переменные или соединения, изменив путь xpath команды SelectNodes:
$package = [xml](Get-Content 'package.dtsx')
$ns = [System.Xml.XmlNamespaceManager]($package.NameTable)
$ns.AddNamespace("DTS", "www.microsoft.com/SqlServer/Dts")
$nodes = $package.SelectNodes("//property[@name = 'SqlCommand']", $ns)
$sqls = $nodes | % {
New-Object PSObject -Property @{
sql = $_.'#text'
name = $_.ParentNode.parentNode.name
}
}
$sqls