# How to Deploy Vision Client Launcher

**URL:** <https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547>\
**Category:** Ignition\
**Created:** [November 11, 2020, 5:25pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547 "2020-11-11T17:25:32Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jonathan](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@Jonathan](https://forum.inductiveautomation.com/u/Jonathan)\
**Post date:** [November 11, 2020, 5:25pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/1 "2020-11-11T17:25:32Z")

</div>

How are people deploying the Vision Client Launcher in a windows domain?

To tell user to go to the gateway and download the installer. Then also having to tell them to add the gateway and type in the address is not feasible.

We tried setting up a network share install and point people to that, but we get an error that it cannot download launchclient.jar for everyone after the first person launches. Is anyone pushing it out via group policy? If so how since it does with an msi installer? Are people building their own msi?

---

<div class="post-metadata">

**Author:** ![Tim](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tim/32/3361_2.png) [@Tim](https://forum.inductiveautomation.com/u/Tim)\
**Post date:** [November 11, 2020, 5:56pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/2 "2020-11-11T17:56:24Z")

</div>

This is what I do. I do wish that some of this was baked in rather than being on your own to set this up, but it works pretty well.

> [@Java version client sadness](http://forum.inductiveautomation.com/t/java-version-client-sadness/14033/3):
>
> Here is what I use. A folder with a copy of the NCL plus pre-made links. A batch file to handle the installation. The batch file removes any webstart apps and the user’s .ignition folder, copies the folder with the NCL into the user’s profile, then copies the links to the desktop. @echo off ECHO Removing user's .ignition folder... rd %userprofile%\.ignition /q /s ECHO Removing Java Webstart applications... javaws.exe -uninstall ECHO Copying Client Launcher... XCOPY…

---

<div class="post-metadata">

**Author:** ![Jonathan](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@Jonathan](https://forum.inductiveautomation.com/u/Jonathan)\
**Post date:** [November 11, 2020, 6:05pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/3 "2020-11-11T18:05:05Z")

</div>

Doesn’t that slow down user logins? Having to copy over the files on every login.

---

<div class="post-metadata">

**Author:** ![Tim](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tim/32/3361_2.png) [@Tim](https://forum.inductiveautomation.com/u/Tim)\
**Post date:** [November 11, 2020, 6:47pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/4 "2020-11-11T18:47:47Z")

</div>

For us it's just a link which automatically installs a configured client launcher and puts relevant project shortcuts in a folder on the desktop. We're not sharing PCs so installing for all users is not an issue, but I believe some progress has been made around that recently. Maybe take a look at this post.

> [@Ignition 8 and client launcher](http://forum.inductiveautomation.com/t/ignition-8-and-client-launcher/36400/10):
>
> The package has the jre, visionclientlauncher.exe, json config files, and icons. The installer installs for all users and uses a common config file for all users so apps are pre-configured in the launcher for anyone that logs in. It really doesn’t do much different than the Inductive installer beyond add in our custom config and use some different folder locations that our IT guys prefer. [image] ; Ignition Client Launcher Installer ; Inno Setup Script [Setup] AppId=XXX AppName=Ignition Lau…

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [November 11, 2020, 6:54pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/5 "2020-11-11T18:54:46Z")

</div>

> [@Jonathan](#):
>
> Doesn’t that slow down user logins? Having to copy over the files on every login.

You really don't have to copy it every login. I made mine as an installer so that people who needed it had access to the installer.

The login script should determine if files need to be copied or not.

---

<div class="post-metadata">

**Author:** ![ryanjmclaughlin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryanjmclaughlin/32/4318_2.png) [@ryanjmclaughlin](https://forum.inductiveautomation.com/u/ryanjmclaughlin)\
**Post date:** [November 11, 2020, 8:20pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/6 "2020-11-11T20:20:55Z")

</div>

> [@JordanCClark](#):
>
> I made mine as an installer so that people who needed it had access to the installer.

Ditto, best way to go. I make an installer with InnoScript then have the IT group do the deployment silently to all the PCs that need it.

---

<div class="post-metadata">

**Author:** ![Jonathan](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@Jonathan](https://forum.inductiveautomation.com/u/Jonathan)\
**Post date:** [November 13, 2020, 8:38pm UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/7 "2020-11-13T20:38:32Z")

</div>

Thanks for all the replies. This is what I have come up with so far that seems to work for our needs. Once the feature request for checking installed version of the Vision Client Launcher I can add a branch to install a newer version of the Vision Client Launcher.

We have group policy setup to push out a shortcut to everyone desktop that point to this batch file below. When they run the batch file it will check to see if a current user install of the Vision Client Launcher exists and if not it will install it silently then launches given shared version of the json config. If the launcher is already installed it launches with the shared json config file.

Lastly, it seemed confusing to have another shortcut on the desktop that launches a plain version of the launcher with no configuration. So I have code to look if there is a desktop shortcut and deletes it. If my other post about suppressing the shortcut during silent install goes anywhere I can change this piece.

```auto
@ECHO OFF
SETLOCAL

cls

set jsonConfig="\\NetworkShareToJsonConfig\vision-client-launcher.json"
set singleUserExe="%appdata%\Inductive Automation\Vision Client Launcher\visionclientlauncher.exe"
set visionClientLink="Vision Client Launcher.lnk"

if exist %singleUserExe% (
	%singleUserExe% config.json=%jsonConfig%
) else (
	ECHO Installing Vision Client Launcher...
	"\\NetworkPathToInstaller\VisionClientLauncherSetup.exe" /CURRENTUSER /VERYSILENT
	%singleUserExe% config.json=%jsonConfig%
)

FOR /F "usebackq" %%f IN (`PowerShell -NoProfile -Command "Write-Host([Environment]::GetFolderPath('Desktop'))"`) DO (
  SET "DESKTOP_FOLDER=%%f"
  )
if exist %DESKTOP_FOLDER%\%visionClientLink% (
	DEL %DESKTOP_FOLDER%\%visionClientLink%
)

```

---

<div class="post-metadata">

**Author:** ![itman](https://avatars.discourse-cdn.com/v4/letter/i/67e7ee/32.png) [@itman](https://forum.inductiveautomation.com/u/itman)\
**Post date:** [August 10, 2022, 12:16am UTC](https://forum.inductiveautomation.com/t/how-to-deploy-vision-client-launcher/40547/8 "2022-08-10T00:16:05Z")

</div>

I know this is quite an old thread, but I found it extremely useful. I did find a way to make the shortcut to VCL on the desktop work for future. The config file is in the %userprofile%.ignition\clientlauncher-data\ folder, so just copying the json file there seems to work out pretty well.

The above code remains the same except for what’s below. We can effectively delete the If statement to delete the desktop icon, I just REM’d it out in this case.

```auto
FOR /F "usebackq" %%f IN (`PowerShell -NoProfile -Command "Write-Host([Environment]::GetFolderPath('Desktop'))"`) DO (
  SET "DESKTOP_FOLDER=%%f"
  )
if exist %DESKTOP_FOLDER%\%visionClientLink% (
	REM DEL %DESKTOP_FOLDER%\%visionClientLink%
)

FOR /F "usebackq" %%f IN (`PowerShell -NoProfile -Command "Write-Host([Environment]::GetFolderPath('UserProfile'))"`) DO (
xcopy %jsonConfig% %%f\.ignition\clientlauncher-data\ /Y

%singleUserExe%

```
