Example
$SSIS_name = Read-Host 'SSIS_Name?'
$name = "TestSSIS"
$date = Get-Date -Format yyyy.dd.MM
New-Item D:\MVCApplication $name -type directory
if exists D:\MVCApplication\$SSIS_name
{
echo yes
$mkdir D:\MVCApplication\$SSIS_name\Deployment_$date
echo $mkdir
$path = test-Path $mkdir
}
else
{
$mkdir D:\MVCApplication\$SSIS_name\
$mkdir D:\MVCApplication\$SSIS_name\Deployment_$date
$mkdir D:\MVCApplication\$SSIS_name\packageDependencies_$date
}
ONECLICK_SSIS_Deployment on STAGE
Example
#oneClick_SSIS_Deployment on STAGE
$rootpath = "D:\SSIS_Package_Deployments\"
$repository = "D:\SSIS_Package_Dependencies\"
$e = read-host "Get SSIS Package name, without any space at END and at START"
#$con = "SSIS name is confirm ?"
#$e = [Windows.Forms.MessageBox]::Show($con+$d, "PowerShell rocks",
[Windows.Forms.MessageBoxButtons]::YesNo, [Windows.Forms.MessageBoxIcon]::Question)
#$e = "ODMamImport1"
$m = "\"
$extractPath = "C:\temp\"
$FdtsConfig = ".dtsConfig"
$allFiles="\"+"Deployment_$((get-date).toString('yyyyMMdd'))"
$NewPath = $rootpath+$e+$allFiles
try{
if(-not(Test-Path -path $rootpath$e)){
#write-Host yes
$ssisdir = New-Item $rootpath$e -type directory
$deployment = New-Item $rootpath$e$m"Deployment_$((get-date).toString('yyyyMMdd'))" -type directory
$repository= New-Item $repository$e$m"PackageDependencies_$((get-date).toString('yyyyMMdd'))" -type directory
$GetZipFile = Get-ChildItem $extractPath\*.* -include *.zip
Extract-Zip $GetZipFile $extractPath
$OldPath = Get-ChildItem -Path "c:\temp\STA\" -rec
If (Test-Path $NewPath){
ForEach ($Item in $OldPath){
If ($Item.Name -match $FdtsConfig){
ls C:\temp\STA\*.dtsConfig | foreach {
$file = $_.FullName;
$xml = [xml](Get-Content $file)
$todayStr = [datetime]::Today.ToString('_yyyyMMdd')
@($xml.SelectNodes('//ConfigurationValue')) | %{ $_.'#text'=($_.'#text' -replace '_\d+',$todayStr) }
$xml.Save($file)
}
Move-Item $Item.FullName $NewPath -Force
Move-Item $extractPath\*.dtsx $NewPath -Force
Move-Item $extractPath\*.SSISDeploymentManifest $NewPath -Force
Write-Host $Item.Name
}
#start SSIS deployment wizard
#Start-Sleep -s 300
$controlFileArray = Get-ChildItem $NewPath\*.SSISDeploymentManifest
#& $controlFileArray
Start-Process $controlFileArray -verb open
#end deploy SSIS
}
}
else{write-host 1}
}
else{
#write-Host no
$deployment = New-Item $rootpath$e$m"Deployment_$((get-date).toString('yyyyMMdd'))" -type directory
$repository= New-Item $repository$e$m"PackageDependencies_$((get-date).toString('yyyyMMdd'))" -type directory
$GetZipFile = Get-ChildItem $extractPath\*.* -include *.zip
Extract-Zip $GetZipFile $extractPath
$OldPath = Get-ChildItem -Path "c:\temp\STA\" -rec
If (Test-Path $NewPath){
ForEach ($Item in $OldPath){
If ($Item.Name -match $FdtsConfig){
ls C:\temp\STA\*.dtsConfig | foreach {
$file = $_.FullName;
$xml = [xml](Get-Content $file)
$todayStr = [datetime]::Today.ToString('_yyyyMMdd')
@($xml.SelectNodes('//ConfigurationValue')) | %{ $_.'#text'=($_.'#text' -replace '_\d+',$todayStr) }
$xml.Save($file)
}
Move-Item $Item.FullName $NewPath -Force
Move-Item $extractPath\*.dtsx $NewPath -Force
Move-Item $extractPath\*.SSISDeploymentManifest $NewPath -Force
Write-Host $Item.Name
}
#start SSIS deployment wizard
#Start-Sleep -s 300
$controlFileArray = Get-ChildItem $NewPath\*.SSISDeploymentManifest
#& $controlFileArray
Start-Process $controlFileArray -verb open
#end deploy SSIS
}
}
else{write-host 2}
}
}
Catch [System.Management.Automation.ItemNotFoundException] {"Check folders structure D:\SSIS_Package_Deployments\,
D:\SSIS_Package_Dependencies "}
function Extract-Zip{
param([string]$zipfilename, [string] $destination)
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
$destinationFolder = $shellApplication.NameSpace("C:\temp")
$myfile = $destinationFolder.CopyHere($zipPackage.Items())
}