resources/qlikview.ps1

function Show-QlikViewServices {

    [CmdletBinding(PositionalBinding=$false)]
    param(        
        [string[]]$ComputerName="localhost"
    )

    $ComputerName | ForEach-Object { `
        Get-Service "qlikview*" -ComputerName $_ | `
        Select-Object @{Name='ComputerName';Expression={$_.MachineName}}, DisplayName, Status, Starttype | `
        Format-Table * -AutoSize `
    }
}

function Start-QlikView {

    [CmdletBinding(PositionalBinding=$false)]
    param(   
        [Parameter(Mandatory=$false)]
        [string]$ComputerName="localhost",
        [Parameter(Mandatory=$false)]
        [Switch] $Quiet=$false
    )

    # Get enabeld QlikView services and start in required order
    # Including Repo service, which must be started first if enabled
    # https://support.qlik.com/articles/000007438

    $QlikViewServices = Get-Service "qlikview*" -ComputerName $ComputerName | Where-Object { $_.StartType -ne "Disabled" }

    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewDirectory")}        | Start-Service  
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewServiceDispather")} | Start-Service  
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewDistribution")}     | Start-Service  
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewManagement")}       | Start-Service  
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewServer")}           | Start-Service  
    $QlikViewServices | Start-Service 

    if(-not $Quiet) {
        Show-QlikView -ComputerName $ComputerName
    }
}


function Stop-QlikView {

    [CmdletBinding(PositionalBinding=$false)]
    param(        
        [Parameter(Mandatory=$false)]
        [string]$ComputerName="localhost",
        [Parameter(Mandatory=$false)]
        [Switch] $Quiet=$false
    )

    # Get all QlikViewServices services
    $QlikViewServices = Get-Service "qlikview*" -ComputerName $ComputerName

    # Stop services in proper order
    # https://support.qlik.com/articles/000007438
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewServer")}           | Stop-Service -Force 
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewManagement*")}      | Stop-Service -Force 
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewDistribution*")}    | Stop-Service -Force 
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewDirectory*")}       | Stop-Service -Force 
    $QlikViewServices | Where-Object {($_.Name -eq "QlikViewServiceDispather")} | Stop-Service -Force 
    $QlikViewServices | Stop-Service -Force 

    if(-not $Quiet) {
        Show-QlikView -ComputerName $ComputerName
    }
}

function Restart-QlikView {

    [CmdletBinding(PositionalBinding=$false)]
    param(        
        [Parameter(Mandatory=$false)]
        [string]$ComputerName="localhost"
    )

    Stop-QlikView -ComputerName $ComputerName -Quiet 
    Start-QlikView -ComputerName $ComputerName
}