Skip to content

Instantly share code, notes, and snippets.

@drphrozen
Created November 11, 2014 12:21
Show Gist options
  • Save drphrozen/fa39723195ecb1ae8969 to your computer and use it in GitHub Desktop.
Save drphrozen/fa39723195ecb1ae8969 to your computer and use it in GitHub Desktop.
Param(
[Parameter(Mandatory=$true)]
[string]$server,
[Parameter(Mandatory=$false)]
[pscredential]$credential
)
[string] $username = $null
[string] $password = $null
if($credential -ne $null) {
$username = $credential.UserName
$password = $credential.GetNetworkCredential().Password
}
Add-Type -AssemblyName "Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
Import-Module SQLPS –DisableNameChecking -ErrorAction SilentlyContinue
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SQLServer.ManagedDTS")|Out-Null
$SSISServer = New-Object Microsoft.SqlServer.Dts.Runtime.Application
function GetPackageFromFolder($baseFolder)
{
Write-Host "`tFolder: $baseFolder"
Write-Host ""
$elements = [Microsoft.SqlServer.Dts.Runtime.PackageInfos] $SSISServer.GetPackageInfos($baseFolder,$server,$username,$password)
if($elements -ne $null)
{
[Microsoft.SqlServer.Dts.Runtime.PackageInfo[]]$packageInfos = $elements
$folders = $packageInfos | where { $_.Flags -eq [Microsoft.SqlServer.Dts.Runtime.DTSPackageInfoFlags]::Folder }
$packages = $packageInfos | where { $_.Flags -eq [Microsoft.SqlServer.Dts.Runtime.DTSPackageInfoFlags]::Package }
$packages | Format-Table -Wrap -AutoSize -Property Name, VersionMajor, VersionMinor, VersionBuild
$folders | %{
GetPackageFromFolder (Join-Path $_.Folder $_.Name)
}
}
}
GetPackageFromFolder '\'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment