Forudsætninger:
* Windows 95 eller højere på klienter
* Kixtart installeret og kix32c.exe i PATH
* WinVNC version 3.3.3r9
Vejledning:
1. Opret VNC som mappe i NETLOGON. Kopier VNCHOOKS.DLL, WINVNC.EXE og
omnithread_rt.dll til denne mappe. Filerne kan placeres andre stedet,
men det er der de forventes at være i følgende script-eksempler.
2. Opret vncsetup.bat i roden af NETLOGON
@echo off
if exist c:\winvnc\winvnc.exe goto nosetup
md c:\winvnc
copy /y %0\..\VNC\*.* c:\winvnc
regedit /s %0\..\vncsetup.reg
c:\winvnc\winvnc.exe -install
if "%os%"=="Windows_NT" net start winvnc
:nosetup
regedit.exe /s %0\..\vncsetup.reg
kix32c.exe %0\..\vncsetup.kix
Scriptet resetter registry hver gang det kører, men checker ikke om
VNC kører. Dvs. det gælder først efter næste genstart af
computeren/VNC - med mindre scriptet tilpasses således at VNC
restartes.
På Win9x kaldes winvnc -service fra RunServices i registry. Den kan
kontrolleres med winvnc -parameter (læs dokumentationen). På NT
installeres winvnc som service og kan kontrolleres med net start/stop.
3. Eksporter VNC registry fra en maskine. Det interessante er følgende
nøgler, hvis man ønsker at lave per-machine indstillinger
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3]
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default]
Sørg for at lave det i REGEDIT4 format og at teksten er i standard
tekstformat og ikke unicode, som regedit fra Win2k normalt eksporterer
i. Brug evt. write til at konvertere. Gem filen som vncsetup.reg
Her er en liste over hvad jeg mener er interessante parametre i
forhold til sikkerheden.
* AuthHosts, REG_SZ
Her defineres en IP-maske for maskiner der må connecte til VNC
serveren. Masken: "-:+10.10.0:+192.168.1.1:" tillader forbindelser fra
10.10.0.x og 192.168.1.1.
* AutoPortSelect, PortNumber
Hvis du ønsker at benytte andre porte (end 5800/5900) så sæt autoport
til 0 og sæt portnumber til den ønskede port. Bemærk at den vil lytte
på HTTP på portnumber - 100.
* QuerySetting, QueryTimeout
Den første afgører hvordan VNC fortolker AuthHosts filtret.
Standardværdien er 2 og her vil den kun prompte brugeren hvis man i
filtret har skrevet ? istedet for +. Hvis den sættes til 4 vil
IP-adresser der matcher + filtrene skulle godkendes, alt andet vil
blive afvist.
QueryTimeout angiver tiden i sekunder før dialogboksen timer ud. Man
kan med andre parametre sætte VNC til enten auto-rejecte eller
auto-accepte forbindelser.
* Password
Password er hashet. Indtast koden med GUI og hent værdien fra
registry.
* RemoveWallpaper
Fjerner desktop-tapet ved skærmovertagelse. Retableres når sessionen
afbrydes
* AllowProperties, AllowShutdown
Brugerkontrol. Hvis de sættes til 0 kan brugeren hhv. ikke se
properties og stoppe VNC serveren (fra GUI'en). Det forhindrer ikke
brugeren i at stoppe servicen med net stop eller winvnc -kill
Eksempel på vncsetup.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3]
"AuthHosts"="-:+10.10.10:+192.168.0.1:"
"SocketConnect"=dword:00000001
"AutoPortSelect"=dword:00000000
"PortNumber"=dword:0000170c
"InputsEnabled"=dword:00000001
"LocalInputsDisabled"=dword:00000000
"QuerySetting"=dword:00000004
"QueryTimeout"=dword:0000012c
"Password"=hex:<removed>
"PollUnderCursor"=dword:00000000
"PollForeground"=dword:00000001
"PollFullScreen"=dword:00000000
"OnlyPollConsole"=dword:00000001
"OnlyPollOnEvent"=dword:00000000
"RemoveWallpaper"=dword:00000001
"AllowProperties"=dword:00000000
"AllowShutdown"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default]
"SocketConnect"=dword:00000001
"AutoPortSelect"=dword:00000000
"PortNumber"=dword:0000170c
"InputsEnabled"=dword:00000001
"LocalInputsDisabled"=dword:00000000
"QuerySetting"=dword:00000004
"QueryTimeout"=dword:0000012c
"Password"=hex:<removed>
"PollUnderCursor"=dword:00000000
"PollForeground"=dword:00000001
"PollFullScreen"=dword:00000000
"OnlyPollConsole"=dword:00000001
"OnlyPollOnEvent"=dword:00000000
"RemoveWallpaper"=dword:00000001
"AllowProperties"=dword:00000000
"AllowShutdown"=dword:00000000
3. Opret kix-script, vncsetup.kix. Dette er en option hvis man ønsker
at computerne skal registrere sig selv i vnc konfigurationsfiler. Hvis
man ikke har Win9x kan man gøre det uden kix (læse computernavnet).
Der forudsættes at der findes et \\server\VNC share hvor brugeren har
rettigheder til at læse og skrive. Erstat mydomain.tld med domænet på
netværket, således at $host = FQDN for maskinen.
$cfg = "\\server\VNC\@wksta.vnc"
$host = @wksta.mydomain.tld
$port = 5900
$res = writeprofilestring($cfg,"connection",$host)
$res = writeprofilestring($cfg,"connection","port",$port)
Hvis man ønsker det kan man sætte andre parametre på samme vis.
Værdier der ikke ønskes ændret fra standard kan udelades.
[connection]
host=computerid.mydomain.tld
port=5900
password=
[options]
use_encoding_0=1
use_encoding_1=1
use_encoding_2=1
use_encoding_3=1
use_encoding_4=1
use_encoding_5=1
preferred_encoding=5
restricted=0
viewonly=0
fullscreen=0
8bit=0
shared=0
swapmouse=0
belldeiconify=0
emulate3=1
emulate3timeout=100
emulate3fuzz=4
disableclipboard=0
localcursor=1
scale_num=1
scale_den=1
4. Du er nu klar. Indsæt et kald til vncsetup.bat fra dit
login-script.
call %0\..\vncsetup.bat
Hvis du har valgt at lade computerne oprette .vnc konfigurationsfiler
skal du registrere vncvieweren, "vncviewer -register". Dette
associerer .vnc med vncvieren (vncviewer -config %1). Det er trivielt
at ændre startparametrene eller extenseion hvis man af en eller anden
grund skulle ønske det.
5. Yderlig information
Dokuementationen er fremragende. Der står bl.a. en uddybning af de
avancerede parametre der kun kan sættes i registry.
http://www.uk.research.att.com/vnc/docs.html
Der tages forbehold for forglemmelser eller trykfejl. Svar på dette
indlæg sendes til dk.edb.sysadmin
--
Lars Kim Lund
http://www.net-faq.dk/
Hej Lars, Tak for dit flotte inlæg. Jeg har med stor iver prøvet at
lave det, men det vil ikke lykkes helt. Installationen af VNC foregård
perfekt, men kopieringen af vncsetup.reg filen vil ikke som jeg vil,
der kommer en fejl som lyder......
Z:\vncsetup.bat\..\vncsetup.reg kan ikke importeres: Der er opstået en
fejl under åbning af filen. Der er muligvis en systemfejl på disken
eller i filen.
Jeg skylder lige og fortælle at det er på en Win98 arbejdsplads, jeg
viser her hvordan at min vncsetup.bat og vncsetup.reg ser ud.....
Vncsetup.bat
@echo off
if exist c:\winvnc\winvnc.exe goto nosetup
md c:\winvnc
copy /y %0\..\VNC\*.* c:\winvnc
regedit /s %0\..\vncsetup.reg
c:\winvnc\winvnc.exe -install
if "%os%"=="Windows_NT" net start winvnc
:nosetup
regedit.exe /s %0\..\vncsetup.reg
Vncsetup.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3\Default]
"SocketConnect"=dword:00000001
"AutoPortSelect"=dword:00000001
"InputsEnabled"=dword:00000001
"LocalInputsDisabled"=dword:00000000
"IdleTimeout"=dword:00000000
"QuerySetting"=dword:00000002
"QueryTimeout"=dword:0000000a
"Password"=hex:f3 96 7d ae 0f 30 c7 b9
"PollUnderCursor"=dword:00000000
"PollForeground"=dword:00000001
"PollFullScreen"=dword:00000000
"OnlyPollConsole"=dword:00000001
"OnlyPollOnEvent"=dword:00000000
Håber du kan hjælpe mig :-)
M.V.H. Alex Kjøller
>Hej Lars, Tak for dit flotte inlæg. Jeg har med stor iver prøvet at
>lave det, men det vil ikke lykkes helt. Installationen af VNC foregård
>perfekt, men kopieringen af vncsetup.reg filen vil ikke som jeg vil,
>der kommer en fejl som lyder......
>
>Z:\vncsetup.bat\..\vncsetup.reg kan ikke importeres: Der er opstået en
>fejl under åbning af filen. Der er muligvis en systemfejl på disken
>eller i filen.
En klassisk fejl er hvis .reg filen er gemt i unicode (det gør Win2k
som standard).