Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Integration Service

Perform silent installation of AVEVA Integration Service

Perform silent installation of AVEVA Integration Service

  • Last UpdatedNov 05, 2025
  • 7 minute read

You can perform silent installation of AVEVA™ Integration Service (Service) that requires least manual configuration and time saving.

Before beginning the silent installation of Service, ensure that the System Requirements have been fulfilled.

Perform these steps to execute silent installation:

  1. Run the AVEVA Integration service Setup.exe as mentioned below in the command prompt window:

    <path of the setup.exe> /silentnoreboot <path of the responsefile.txt> /skiprebootunblockmsg

  2. Run the configuration script to setup DB password and encryption keys into PCS.

    Import-Module WebAdministration

    try {

    # Path to the .exe file

    $exePath = "C:\Program Files (x86)\AVEVA\Shared\APIMigration\AVEVA.IntegrationService.TaskRunner.exe"

    # Check if the file exists

    if (-Not (Test-Path $exePath)) {

    throw "Executable not found at path: $exePath"

    }

    Write-Host "Starting process: $exePath"

    # Start the process and wait for it to complete

    $process = Start-Process -FilePath $exePath -Wait -PassThru

    # Output the exit code

    Write-Host "Process completed successfully with exit code: $($process.ExitCode)"

    }

    catch {

    Write-Error "An error occurred while executing the process: $_"

    }

    # Path to the .exe file you want to execute

    $exeFilePath = "C:\Program Files (x86)\AVEVA\Shared\APIMigration\AVEVA.IntegrationService.KeyUpdater.exe"

    # Parameters to pass to the executable

    $params = "-DBPWD <Please provide valid password>"

    # Check if the .exe file exists

    if (Test-Path $exeFilePath) {

    Write-Host "Executing $exeFilePath..."

    # Run the .exe file

    Start-Process -FilePath $exeFilePath -ArgumentList $params -Wait

    } else {

    Write-Host "Error: $exeFilePath not found."

    }

    Notes:

    • To run the config script you must specify valid credentials.

    • Ensure the TaskRunner.exe and KeyUpdater.exe files are present in the installed location.

    • PowerShell version: 5.1 or higher (Windows default is fine).

    • Database password must be updated in the script: $params = "-DBPWD <Please provide your valid credentials>"

  3. Run the AVEVA Integration Service configuration script.

    # Path to the AVEVA.IntegrationService.Extend.config config file

    $configFilePath = "C:\Program Files (x86)\AVEVA\Shared\AVEVA Integration Service\AVEVA.IntegrationService.Extend.config"

    # Load the XML content

    [xml]$config = Get-Content $configFilePath

    $hostName = $env:COMPUTERNAME

    # Define key-value pairs you want to update

    $updates = @{

    "ConfigAPIURI" = "https://$hostName"+":60920/"

    "DataAPIURI" = "https://$hostName"+":60930/"

    "RESTAPIURI"="https://$hostName"+":8080/"

    "WebAdminURI"="https://$hostName"+"/"

    "ConnectedToWebAdmin"="True"

    "ConnectedToRestAPI"= "True"

    "ConnectedToDataStore"= "True"

    "ConnectedToConfig"="True"

    "PCSConfigured"="True"

    "IsUEInstalled"= "True"

    "AVEVA_CONNECT_AUTHORITY_URL" ="https://signin.connect.aveva.com"

    "AVEVA_CONNECT_LOGIN"= "True"

    "AVEVA_SERVICE_AUTHENTICATION_TYPE"= "<AuthenticationType>"

    }

    # Iterate over each add element under appSettings

    foreach ($setting in $config.ServiceConfigExtend.ChildNodes) {

    $key = $setting.Name

    write-Host $key

    write-Host $setting

    if ($updates.ContainsKey($key)) {

    $setting.InnerText = $updates[$key]

    Write-Host "Updated key '$key' to '$($updates[$key])'"

    }

    }

    # Save the updated config file

    $config.Save($configFilePath)

    Write-Host "AVEVA.IntegrationService.Extend.config Config file updated successfully!"

    #section 2 For updating Data API and Config API Json and WedAdmin Josn files- Begin

    # Path to the AISDataAPI appsettings.json file

    $appSettingsPath = "C:\Program Files (x86)\AVEVA\Shared\AISDataAPI\appsettings.json"

    # Read the content of the appsettings.json file

    $jsonContent = Get-Content -Path $appSettingsPath -Raw | ConvertFrom-Json

    $jsonContent.AllowedOrigins = "https://$hostName"+""

    $jsonContent.ConnectionStrings.ConfigAPI_DataSources = "https://$hostName"+":60920/config"

    # Convert the updated content back to JSON format

    $updatedJson = $jsonContent | ConvertTo-Json -Depth 10

    # Save the updated content back to the appsettings.json file

    $updatedJson | Set-Content -Path $appSettingsPath

    Write-Host "Data API appsettings.json has been updated successfully."

    # Path to the AISConfig appsettings.json file

    $appSettingsPath = "C:\Program Files (x86)\AVEVA\Shared\AISConfig\appsettings.json"

    # Read the content of the appsettings.json file

    $jsonContent = Get-Content -Path $appSettingsPath -Raw | ConvertFrom-Json

    $jsonContent.AllowedOrigins = "https://$hostName"+""

    $jsonContent.ConnectionStrings.DataAPI_DataSources = "https://$hostName"+":60930/api/v1.2/datasources"

    # Convert the updated content back to JSON format

    $updatedJson = $jsonContent | ConvertTo-Json -Depth 10

    # Save the updated content back to the appsettings.json file

    $updatedJson | Set-Content -Path $appSettingsPath

    Write-Host "Config API appsettings.json has been updated successfully."

    # Path to the WedADmin appsettings.json file

    $appSettingsPath = "C:\Program Files (x86)\AVEVA\Shared\IntegrationServiceWebAdmin\remote-admin\assets\app-settings.json"

    # Read the content of the appsettings.json file

    $jsonContent = Get-Content -Path $appSettingsPath -Raw | ConvertFrom-Json

    $jsonContent.RestApiUrl = "https://$hostName"+":8080/"

    $jsonContent.ConfigApiUrl = "https://$hostName"+":60920/"

    $jsonContent.DataApiUrl = "https://$hostName"+":60930/"

    # Convert the updated content back to JSON format

    $updatedJson = $jsonContent | ConvertTo-Json -Depth 10

    # Save the updated content back to the appsettings.json file

    $updatedJson | Set-Content -Path $appSettingsPath

    Write-Host "Wed ADmin appsettings.json has been updated successfully."

    #update the web.config file in REST API

    # Path to your .config file

    $configFilePath = "C:\Program Files (x86)\AVEVA\Shared\IntegrationServiceRESTAPI\Web.config"

    # Load the XML content from the config file

    [xml]$configXml = Get-Content -Path $configFilePath

    # Replace value for a specific key

    # For example, replace the value for <add key="SomeKey" value="SomeValue" />

    $keyToFind = "AIS_Cors_AllowedOrigins"

    $newValue = "https://$hostName"+""

    # Find the element containing the key and update its value

    $configXml.configuration.appSettings.add | Where-Object { $_.key -eq $keyToFind } | ForEach-Object { $_.value = $newValue }

    # Save the changes back to the .config file

    $configXml.Save($configFilePath)

    Write-Host "Updated the value for $keyToFind to $newValue"

    # Section-2 - Updating the josn file - End

    #section-3 For updating Apppools and IIS Sites - Begin

    Import-Module WebAdministration

    Set-ItemProperty "IIS:\AppPools\RESTAPIPOOL" -Name enable32BitAppOnWin64 -Value $false

    $userNameText = '<ServiceUsername>'

    $passwordText = '<Password>'

    Set-ItemProperty IIS:\apppools\RESTAPIPOOL -name processModel -value @{userName=$userNameText;password=$passwordText;identitytype=3}

    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter `

    "system.applicationHost/sites/site[@name=IntegrationServiceRESTAPI]/application[@path='/']/virtualDirectory[@path='/']" `

    -name "userName" -value $userNameText

    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter `

    "system.applicationHost/sites/site[@name=IntegrationServiceRESTAPI]/application[@path='/']/virtualDirectory[@path='/']" `

    -name "password" -value $passwordText

    Start-Sleep -Seconds 5

    ## updating user name and password for Data API

    Set-ItemProperty IIS:\apppools\AISDataAPIPool -name processModel -value @{userName=$userNameText;password=$passwordText;identitytype=3}

    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter `

    "system.applicationHost/sites/site[@name=IntegrationServiceRESTAPI]/application[@path='/']/virtualDirectory[@path='/']" `

    -name "userName" -value $userNameText

    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter `

    "system.applicationHost/sites/site[@name=IntegrationServiceRESTAPI]/application[@path='/']/virtualDirectory[@path='/']" `

    -name "password" -value $passwordText

    Start-Sleep -Seconds 5

    #updating user name and password for Config API

    Set-ItemProperty IIS:\apppools\AISConfigPool -name processModel -value @{userName=$userNameText;password=$passwordText;identitytype=3}

    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter `

    "system.applicationHost/sites/site[@name=IntegrationServiceRESTAPI]/application[@path='/']/virtualDirectory[@path='/']" `

    -name "userName" -value $userNameText

    Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter `

    "system.applicationHost/sites/site[@name=IntegrationServiceRESTAPI]/application[@path='/']/virtualDirectory[@path='/']" `

    -name "password" -value $passwordText

    Start-Sleep -Seconds 5

    # Function to stop all IIS sites one by one

    function Stop-AllIISSites {

    $sites = Get-Website

    foreach ($site in $sites) {

    try {

    Write-Host "Stopping site: $($site.Name)"

    Stop-Website -Name $site.Name

    Start-Sleep -Seconds 15 # Optional: Wait for a few seconds before stopping the next site

    } catch {

    Write-Host "Failed to stop site: $($site.Name). Error: $_"

    }

    }

    }

    # Function to start all IIS sites one by one

    function Start-AllIISSites {

    $sites = Get-Website

    foreach ($site in $sites) {

    try {

    Write-Host "Starting site: $($site.Name)"

    Start-Website -Name $site.Name

    Start-Sleep -Seconds 20 # Optional: Wait for a few seconds before starting the next site

    } catch {

    Write-Host "Failed to start site: $($site.Name). Error: $_"

    }

    }

    }

    # Main script execution

    Write-Host "Stopping all IIS sites..."

    Stop-AllIISSites

    Write-Host "Operation completed for IIS sites stop."

    Write-Host "Starting all IIS sites..."

    Start-AllIISSites

    Write-Host "Operation completed for IIS sites start."

    #Define the list of application pools you want to manage

    $applicationPools = @(

    "AISConfigPool",

    "AISDataAPIPool",

    "RESTAPIPOOL"

    )

    # Function to stop application pools

    function Stop-ApplicationPools {

    param (

    [string[]]$pools

    )

    foreach ($pool in $pools) {

    Write-Host "Stopping application pool: $pool"

    Stop-WebAppPool -Name $pool

    if ($?) {

    Write-Host "$pool stopped successfully."

    Start-Sleep -Seconds 60 # Wait for 20 seconds between starts

    } else {

    Write-Host "Failed to stop $pool."

    }

    }

    }

    # Function to start application pools

    function Start-ApplicationPools {

    param (

    [string[]]$pools

    )

    foreach ($pool in $pools) {

    Write-Host "Starting application pool: $pool"

    Start-WebAppPool -Name $pool

    if ($?) {

    Write-Host "$pool started successfully."

    Start-Sleep -Seconds 60 # Wait for 20 seconds between starts

    } else {

    Write-Host "Failed to start $pool."

    }

    }

    }

    # Stop the application pools

    Stop-ApplicationPools -pools $applicationPools

    Write-Host "Operation completed for stopping IIS application pools.."

    # Start the application pools

    Start-ApplicationPools -pools $applicationPools

    Write-Host "Operation completed forstarted IIS application pools.."

    Start-Sleep -Seconds 180

    $svc=Get-CimInstance win32_service -Filter 'Name="InterOpIntegrationWinService"'

    $svc|Invoke-CimMethod -MethodName Change -Arguments @{StartName='<ServiceUsername>';StartPassword='<Password>'}

    Start-Sleep -Seconds 120

    ## Belwo code/script is to start/stop if InterOpIntegrationWinService

    ##Clear-Host

    ##$svc = Get-Service

    ##$serviceName = "InterOpIntegrationWinService"

    ##foreach ($service in $svc) {

    ## if ($service.Name -eq $serviceName) {

    ## if ($service.Status -eq 'Stopped') {

    ## Start-Service -Name $service.Name -PassThru

    ## Write-Host "$($service.Name) has been started."

    ## } elseif ($service.Status -eq 'Running') {

    ## Stop-Service -Name $service.Name -Force -PassThru

    ## Write-Host "$($service.Name) has been stopped."

    ## }

    ## }

    ##}

    $ServiceName = 'InterOpIntegrationWinService'

    $arrService = Get-Service -Name $ServiceName

    # Check if the service is running

    if ($arrService.Status -eq 'Running')

    {

    # Stop the service if it is running

    Stop-Service -Name $ServiceName

    Write-Host "$ServiceName is stopped."

    Start-Sleep -seconds 60

    }

    else

    {

    Write-Host "$ServiceName is not running"

    }

    $svc=Get-CimInstance win32_service -Filter 'Name="InterOpIntegrationWinService"'

    $svc|Invoke-CimMethod -MethodName Change -Arguments @{StartName='<ServiceUsername>';StartPassword='<Password>'}

    Start-Sleep -Seconds 120

    $ServiceName = 'InterOpIntegrationWinService'

    $arrService = Get-Service -Name $ServiceName

    while ($arrService.Status -ne 'Running')

    {

    Start-Service $ServiceName

    write-host $arrService.status

    write-host 'Service starting'

    Start-Sleep -seconds 60

    $arrService.Refresh()

    if ($arrService.Status -eq 'Running')

    {

    Write-Host $ServiceName 'Service is now Running'

    }

    }

    # Section-3 - Updating the IIS and APPPools - End

    • This script automates the setup and configuration tasks required to initialize the Service.

    • Ensures all necessary configurations are properly applied before the service is started and accessed.

  4. Before executing the script, ensure the following configuration values that are present in the script are correctly updated:

    Parameter

    Description

    Action Required

    AVEVA_CONNECT_AUTHORITY_URL

    Defines the Aveva Connect Authority endpoint.

    Update this with your Connect Stage URL.

    AVEVA_SERVICE_AUTHENTICATION_TYPE

    Determines the authentication method for the service.

    Set the value to either NTLM or Connect, depending on your environment.

    $userNameText

    The username of the account under which the service will run.

    Replace with the service account username.

    $passwordText

    The password of the service account.

    Replace with the service account password.

    StartName

    The service logon username.

    Replace with the same service account username used above.

    StartPassword

    The service logon password.

    Replace with the corresponding service account password.

  5. Run the script as an Administrator.

  6. Launch Windows PowerShell ISE as an Administrator.

  7. Load and execute .ps1.

  8. Launch the configurator manually.

    Once the above script execution is successfully completed.To start the Service, perform the following steps:

    1. Press Windows key and search for Configurator.

    2. Launch the Configurator application.

    3. In the Configurator window, navigate to the Installation Complete section.

    4. Select Start the Aveva Integration Service checkbox.

    5. Launch Web Administration when prompted.

    6. Click Finish.

      The CONNECT pop-up window appears.

    7. Specify your AVEVA credentials (User Name and Password).

      Upon successful authentication, the AVEVA Integration Service starts and is ready for use.

TitleResults for “How to create a CRG?”Also Available in