UVNC "EYE" Icon - My Method of Changing It
We are implementing UVNC with our KACE K1000 VM appliance, and it was decided that the "EYE" icon was a bit "Big Brother-ish" looking.
The method I used to resolve this issue may not be the most efficient, but it works for us rather well.
First, I started with two UVNC scripts built by the script wizard. One contained the viewer (for techs), and the other with only the server components (for users). I also used the MS Logon required and pulled in a VNC Access AD Security group in the ACL.txt file (see documentation on how to use this). Now we can control who has access to VNC remote via AD group.
With the above configuration, it is a simple process to deploy the UVNC setup to your users and techs using labels. We also chose to allow remoting in via prompt, with a default of 30 seconds which allows us in if no response. This gives ample time for notification, while not hindering us from taking over in the event someone is out.
Here is the problem, though. The WINVNC.EXE file that is installed contains the "EYE" icon files embedded in the exe itself. You only get access to that file once it is installed. So, I installed it on my machine, and used a resource editor on the EXE file (XN Resource Editor is a good one). I found the old VNC logo icons doing a google image search, and replaced the green background "EYE" icons using paint and copying and pasting.
Now that I have a WINVNC.EXE file (which I added as a dependency to the script) with the icon I liked (I left the yellow background EYE so they know they are being remoted), I added steps in the script at the end to stop the VNC service, copy the exe in the program files folder, and then restart the service.
PROBLEMS:
At least with this particular script, when you use the built in "Stop a service" task, the service didn't always stop in time for the next copy task. Also, there seemed to be two WINVNC.EXE processes lingering sometimes after that task. Doing a "Kill a process" yielded similar problems fully stopping the process before the copy.
My solution to this was to use a "NET STOP UVNC_SERVICE", followed by a batch file run that used TASKLIST and TASKKILL commands to kill the WINVNC.EXE process in case the service stop didn't completely work. (This bat file is run twice)
Now, we copy and use the normal Start a service task. Problem solved.
I have more info if anyone is interested.
The method I used to resolve this issue may not be the most efficient, but it works for us rather well.
First, I started with two UVNC scripts built by the script wizard. One contained the viewer (for techs), and the other with only the server components (for users). I also used the MS Logon required and pulled in a VNC Access AD Security group in the ACL.txt file (see documentation on how to use this). Now we can control who has access to VNC remote via AD group.
With the above configuration, it is a simple process to deploy the UVNC setup to your users and techs using labels. We also chose to allow remoting in via prompt, with a default of 30 seconds which allows us in if no response. This gives ample time for notification, while not hindering us from taking over in the event someone is out.
Here is the problem, though. The WINVNC.EXE file that is installed contains the "EYE" icon files embedded in the exe itself. You only get access to that file once it is installed. So, I installed it on my machine, and used a resource editor on the EXE file (XN Resource Editor is a good one). I found the old VNC logo icons doing a google image search, and replaced the green background "EYE" icons using paint and copying and pasting.
Now that I have a WINVNC.EXE file (which I added as a dependency to the script) with the icon I liked (I left the yellow background EYE so they know they are being remoted), I added steps in the script at the end to stop the VNC service, copy the exe in the program files folder, and then restart the service.
PROBLEMS:
At least with this particular script, when you use the built in "Stop a service" task, the service didn't always stop in time for the next copy task. Also, there seemed to be two WINVNC.EXE processes lingering sometimes after that task. Doing a "Kill a process" yielded similar problems fully stopping the process before the copy.
My solution to this was to use a "NET STOP UVNC_SERVICE", followed by a batch file run that used TASKLIST and TASKKILL commands to kill the WINVNC.EXE process in case the service stop didn't completely work. (This bat file is run twice)
Now, we copy and use the normal Start a service task. Problem solved.
I have more info if anyone is interested.
0 Comments
[ + ] Show comments
Answers (2)
Please log in to answer
Posted by:
jabelltulsa
13 years ago
I also wanted to add (crucial for proper deployment) that I changed the order of tasks from the default UVNC script.
When you create the script, it puts all the steps to install UVNC in the "On Success" portion. In reality, you want the script to check for UVNC first, then if it fails, install it.
By default, I think it would just re-install UVNC each time.
There is no easy way to do this, so set aside about 30 minutes or so to re-order the steps.
First, in the Verify portion, I check for the presence of "C:\Program Files\UltraVNC\winvnc.exe"
On success, I have it log "VNC is installed" for "Status"
Then, I manually moved each step left in "On Success" to "Remediation". This can take some time, and you'll have to open a couple of windows, so that you can drill into the properties of each step to duplicate it.
Since I have two scripts (one for techs, and one for users) I had to do this twice.
Here are my remediation steps:
---------------------------------------------------------------
Remediation
Log “VNC is being installed†to “statusâ€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!Password†to “<REMOVED FOR SECURITY>â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3!MSLogonRequired†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3!NewMSLogon†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3!DisableTrayIcon†to “0â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!AllowEditClients†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!AllowProperties†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!AllowShutdown†to “1â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âmkdir “C:\Program Files\UltraVNCâ€Â“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\ultravnc.ini†“C:\Program Files\UltraVNC\ultravnc.ini†/Y“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\rc4.key†“C:\Program Files\UltraVNC\rc4.key†/Y“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\acl.txt†“C:\Program Files\UltraVNC\acl.txt†/Y“â€Â.Edit
Launch “$(KACE_DEPENDENCY_DIR)\UltraVNC_1.0.5.6_Setup.exe†with params “/loadinf=â€Â$(KACE_DEPENDENCY_DIR)\ultravnc.inf“ /norestart /verysilentâ€Â.Edit
Launch “C:\Program Files\UltraVNC\MSLogonACL.exe†with params “/i /o â€ÂC:\Program Files\UltraVNC\acl.txt“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Ânet stop uvnc_service“â€Â.Edit
Launch “$(KACE_DEPENDENCY_DIR)\KILLVNC.BAT†with params “â€Â.Edit
Launch “$(KACE_DEPENDENCY_DIR)\KILLVNC.BAT†with params “â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\winvnc.exe†“C:\Program Files\UltraVNC\winvnc.exe†/Y“â€Â.Edit
Start service “uvnc_serviceâ€Â.Edit
-----------------------------------------------------------------------------------
Here is my killvnc.bat file:
-----------------------------------
For /F "tokens=2" %%n in ('tasklist ^| Find "winvnc.exe"') Do Set Task=%%n
TaskKill /F /PID %task%
Set Task=
------------------------------------
I also added a copy of winvnc.exe to the dependencies list. This file was modified with XN resource editor, and I replaced the icons with the VNC logo from a google image search.
Further, I have some other logging entries in the remediation success/failure steps so that it tells me if it was successful or not.
When you create the script, it puts all the steps to install UVNC in the "On Success" portion. In reality, you want the script to check for UVNC first, then if it fails, install it.
By default, I think it would just re-install UVNC each time.
There is no easy way to do this, so set aside about 30 minutes or so to re-order the steps.
First, in the Verify portion, I check for the presence of "C:\Program Files\UltraVNC\winvnc.exe"
On success, I have it log "VNC is installed" for "Status"
Then, I manually moved each step left in "On Success" to "Remediation". This can take some time, and you'll have to open a couple of windows, so that you can drill into the properties of each step to duplicate it.
Since I have two scripts (one for techs, and one for users) I had to do this twice.
Here are my remediation steps:
---------------------------------------------------------------
Remediation
Log “VNC is being installed†to “statusâ€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!Password†to “<REMOVED FOR SECURITY>â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3!MSLogonRequired†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3!NewMSLogon†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3!DisableTrayIcon†to “0â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!AllowEditClients†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!AllowProperties†to “1â€Â.Edit
Set “HKLM\SOFTWARE\ORL\WinVNC3\Default!AllowShutdown†to “1â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âmkdir “C:\Program Files\UltraVNCâ€Â“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\ultravnc.ini†“C:\Program Files\UltraVNC\ultravnc.ini†/Y“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\rc4.key†“C:\Program Files\UltraVNC\rc4.key†/Y“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\acl.txt†“C:\Program Files\UltraVNC\acl.txt†/Y“â€Â.Edit
Launch “$(KACE_DEPENDENCY_DIR)\UltraVNC_1.0.5.6_Setup.exe†with params “/loadinf=â€Â$(KACE_DEPENDENCY_DIR)\ultravnc.inf“ /norestart /verysilentâ€Â.Edit
Launch “C:\Program Files\UltraVNC\MSLogonACL.exe†with params “/i /o â€ÂC:\Program Files\UltraVNC\acl.txt“â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Ânet stop uvnc_service“â€Â.Edit
Launch “$(KACE_DEPENDENCY_DIR)\KILLVNC.BAT†with params “â€Â.Edit
Launch “$(KACE_DEPENDENCY_DIR)\KILLVNC.BAT†with params “â€Â.Edit
Launch “SYS\cmd.exe†with params “/C â€Âcopy “$(KACE_DEPENDENCY_DIR)\winvnc.exe†“C:\Program Files\UltraVNC\winvnc.exe†/Y“â€Â.Edit
Start service “uvnc_serviceâ€Â.Edit
-----------------------------------------------------------------------------------
Here is my killvnc.bat file:
-----------------------------------
For /F "tokens=2" %%n in ('tasklist ^| Find "winvnc.exe"') Do Set Task=%%n
TaskKill /F /PID %task%
Set Task=
------------------------------------
I also added a copy of winvnc.exe to the dependencies list. This file was modified with XN resource editor, and I replaced the icons with the VNC logo from a google image search.
Further, I have some other logging entries in the remediation success/failure steps so that it tells me if it was successful or not.
Posted by:
jabelltulsa
13 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.