$asEnvStat = $false $newLine = "`r`n" $delete_click = { $appID = $Textbox1.Text if(!($asEnvStat)) { $Textbox2.Text += "ASES Module not loaded. Loading...$newLine" $asEnvStat = Set-ASEnvironment } if($asEnvStat) { $appObj = Get-ASCatalogItem -ItemID $appID -ItemType "Application" if($appObj) { $pkgID = $appObj.RowID $pkgObj = Get-ASPackage -PackageId $pkgID $pkgName = $pkgObj.DisplayedProductName $Textbox2.Text += "Removing Application: $pkgName (Application ID: $appID, Package ID: $pkgID)$newLine" $removeStatus = Remove-ASApplication -ID $appID -ErrorAction SilentlyContinue $Textbox2.Text += $removeStatus } else { $Textbox2.Text += "No Application found with ID: $appID $newLine" } } else { $Textbox2.Text = "ASES Module load failed. Cannot run module cmdlet to remove application from catalog$newLine" } } Add-Type -AssemblyName System.Windows.Forms $Form1 = New-Object -TypeName System.Windows.Forms.Form [System.Windows.Forms.Button]$Button1 = $null [System.Windows.Forms.TextBox]$TextBox1 = $null [System.Windows.Forms.TextBox]$TextBox2 = $null [System.Windows.Forms.Label]$Label1 = $null [System.Windows.Forms.Label]$Label2 = $null function InitializeComponent { $Button1 = (New-Object -TypeName System.Windows.Forms.Button) $TextBox1 = (New-Object -TypeName System.Windows.Forms.TextBox) $TextBox2 = (New-Object -TypeName System.Windows.Forms.TextBox) $Label1 = (New-Object -TypeName System.Windows.Forms.Label) $Label2 = (New-Object -TypeName System.Windows.Forms.Label) $Form1.SuspendLayout() # #Button1 # $Button1.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]325,[System.Int32]17)) $Button1.Name = [System.String]'Button1' $Button1.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]122,[System.Int32]26)) $Button1.TabIndex = [System.Int32]0 $Button1.Text = [System.String]'Delete Application' $Button1.UseCompatibleTextRendering = $true $Button1.UseVisualStyleBackColor = $true $Button1.add_Click($delete_click) # #TextBox1 # $TextBox1.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]100,[System.Int32]21)) $TextBox1.Name = [System.String]'TextBox1' $TextBox1.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]122,[System.Int32]21)) $TextBox1.TabIndex = [System.Int32]1 # #TextBox2 # $TextBox2.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]71)) $TextBox2.Multiline = $true $TextBox2.Name = [System.String]'TextBox2' $TextBox2.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]435,[System.Int32]154)) $TextBox2.TabIndex = [System.Int32]2 # #Label1 # $Label1.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]24)) $Label1.Name = [System.String]'Label1' $Label1.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]82,[System.Int32]14)) $Label1.TabIndex = [System.Int32]3 $Label1.Text = [System.String]'Application ID:' $Label1.UseCompatibleTextRendering = $true # #Label2 # $Label2.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]53)) $Label2.Name = [System.String]'Label2' $Label2.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]78,[System.Int32]15)) $Label2.TabIndex = [System.Int32]4 $Label2.Text = [System.String]'Result:' $Label2.UseCompatibleTextRendering = $true # #Form1 # $Form1.ClientSize = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]459,[System.Int32]236)) $Form1.Controls.Add($Label2) $Form1.Controls.Add($Label1) $Form1.Controls.Add($TextBox2) $Form1.Controls.Add($TextBox1) $Form1.Controls.Add($Button1) $Form1.Text = [System.String]'Delete Application from ASES' $Form1.ResumeLayout($false) $Form1.PerformLayout() Add-Member -InputObject $Form1 -Name base -Value $base -MemberType NoteProperty Add-Member -InputObject $Form1 -Name Button1 -Value $Button1 -MemberType NoteProperty Add-Member -InputObject $Form1 -Name TextBox1 -Value $TextBox1 -MemberType NoteProperty Add-Member -InputObject $Form1 -Name TextBox2 -Value $TextBox2 -MemberType NoteProperty Add-Member -InputObject $Form1 -Name Label1 -Value $Label1 -MemberType NoteProperty Add-Member -InputObject $Form1 -Name Label2 -Value $Label2 -MemberType NoteProperty } . InitializeComponent function Set-ASEnvironment() { $asDBString = '' $asRegHive = "HKLM:\SOFTWARE\Wow6432Node\InstallShield\AdminStudio\14.0\" $asLocRegVal = "Product Location" $asInstallPath = (Get-ItemProperty $asRegHive $asLocRegVal).$asLocRegVal $asModulePath = $asInstallPath + "Common\" $setEnvStatus = $false if (($null -ne $asModulePath) -and (Test-Path $asModulePath)) { try { $currentModulePath = [Environment]::GetEnvironmentVariable("PSModulePath") $newModulePath = "$currentModulePath;$asModulePath" [Environment]::SetEnvironmentVariable("PSModulePath",$newModulePath) Push-Location Set-Location $asModulePath Import-Module -name $($asModulePath +'AdminStudio.Platform.PowerShellExtensions.dll') -Scope Global Import-Module -name $($asModulePath + 'AdminStudio.Utilities.dll') -Scope Global Import-Module -name $($asModulePath + 'AdminStudio.SCCM.Model.dll') -Scope Global Import-Module -name $($asModulePath + 'AdminStudio.SCCM.Integrator.dll') -Scope Global Pop-Location try { if((Get-ASConfigPlatform -ConnectionString) -ne $asDBString) { Set-ASConfigPlatform -ConnectionString $asDBString | Out-Null } $setEnvStatus = $true } catch { $setEnvStatus = $false } } catch { $setEnvStatus = $false } } else { $setEnvStatus = $false } return $setEnvStatus } $Form1.ShowDialog()