param ([string] $url, [string] $featureName,[string] $solution, [bool] $install, [bool] $uninstall) if ( -not ($url)) { Write-Host "Please enter the Site Url" exit } function SelectOperation { $message = "Select Operation?"; $InstallMe = new-Object System.Management.Automation.Host.ChoiceDescription "&Install","Install"; $UninstallMe = new-Object System.Management.Automation.Host.ChoiceDescription "&Uninstall","Uninstall"; $choices = [System.Management.Automation.Host.ChoiceDescription[]]($InstallMe,$UninstallMe); $answer = $host.ui.PromptForChoice($caption,$message,$choices,0) return $answer } if (-not($install) -and -not($uninstall)) { $answer = SelectOperation switch ([int]$answer) { 0 {$install=$true} 1 {$uninstall=$true} } } if ($install) { Add-SPSolution -LiteralPath $(join-path $(pwd).Path $solution) $solutionId = (Get-SPSolution | ? {$_.name -eq $solution}).Id Install-SPSolution -Identity $solutionId -GACDeployment Write-Host "Waiting for the SharePoint to finish..." Sleep(120) $featureNameId = Get-SPfeatureName | where {$_.displayname -eq $featureName} Enable-SPfeatureName -Identity $featureNameId -Url $url } if ($uninstall) { $featureNameId = (Get-SPfeatureName | where {$_.displayname -eq $featureName}).Id Disable-SPfeatureName $featureNameId -Url $url $solutionId = (Get-SPSolution | ? {$_.name -eq $solution}).Id Uninstall-SPSolution -Identity $solutionId Write-Host "Waiting for SharePoint to finish..." Sleep(120) Remove-SPSolution -Identity $solutionId } Write-host "All Done."
An example of usage:
.\DeployEV.ps1 -featureName "receiver1" -solution "receiver1.wsp" -install $trueNote that the script assumes that the wsp file will be in the same location as the script.
No comments:
Post a Comment