En Terminal Server er i utgangspunktet den samme som det vanlige windows Server-operativsystemet, bortsett fra At i Terminal Server-miljøer har nøkkelkomponenter blitt lagt til eller endret for å gi støtte til flere samtidige brukere.
Microsoft Windows har alltid vært et» multi-user » operativsystem i den forstand at flere brukere kan kobles til en enkelt server til enhver tid. Disse brukerne var imidlertid koblet til filtjenester eller skrivertjenester på serverne. De kjørte sine lokale Windows-grensesnitt på sine lokale datamaskiner, og serveren støttet bare ett skrivebordsgrensesnitt via det lokale tastaturet, musen og skjermen. Hovedforskjellen med Terminal Server er at flere brukere kan kjøre Sine Egne windows-skrivebordsøkter på serveren. Så Terminal Server er «multi-user» i den forstand at den støtter flere desktop-grensesnitt. Noen mennesker liker å tenke på dette som en» fjernkontroll «miljø, bortsett Fra At Terminal Server kan romme mange brukere «fjernstyring» det på samme tid, med hver bruker gjør noe helt annet.
For At Terminal Server skulle kunne støtte flere brukerøkter, måtte Det gjøres noen endringer i Den fra Den vanlige Microsoft Windows server-programvaren. Det er to grunnleggende forskjeller mellom en vanlig Windows Server og En Med Terminal Server installert:
- Når Terminal Server er installert På En windows 2003-server, endres visse kjernekomponenter I windows-operativsystemet for å støtte flere samtidige brukergrensesnitt. For eksempel er virtual memory manager og object manager endret for å støtte flere, samtidige desktop grensesnitt uten å bli forvirret. Dette er store modifikasjoner, som krever at du starter systemet på nytt etter at Du har installert Terminal Server.
- Nye tjenester og komponenter legges til når Terminal Server er installert, slik at serveren kan støtte flere brukerøkter. Den viktigste av disse er tjenesten «Terminal Server». Denne tjenesten, som kjører dypt inne i serveren, er ansvarlig for grensesnitt mellom flere brukerøkter med operativsystemet. Det er også ansvarlig for funksjoner som å lage økter, motta brukere og avslutte økter.
Terminal Server Components
Selv om Det ser ut til At Terminal Server er i utgangspunktet Et glorifisert PCAnywhere-system, er det faktisk et komplekst system som består av flere forskjellige komponenter, delsystemer og grensesnitt. Et mer komplett diagram over Terminalserverkomponentene er vist I Figur 2.1. Se det når du leser gjennom de neste avsnittene som beskriver hver komponent Som utgjør Windows 2003 Terminal Server.
Figur 2.1: Terminal Server 2003-komponenter
Windows Server 2003-Kjernen
du vil huske at en nøkkelkomponent i et serverbasert databehandlingsmiljø er et flerbrukeroperativsystem. I Windows Server 2003 styres dette systemet av kjernen.
Windows Server 2003 trenger en måte å fjerne kritiske operativsystemkomponenter fra alle de galne brukerne. For å oppnå Dette opererer Windows-prosesser i en av to moduser: brukermodus eller kjernemodus. Når du tenker tilbake Til Windows NT-treningen, husker du at et brukermodusprogram ikke kan skrive direkte til OS-minnet. I stedet har den full tilgang til sin EGEN 4gb minneplass. En operativsystemkomponent kalt virtual memory manager (som selv kjører i kjernemodus) styrer alt dette og skriver til systemminnet på vegne av brukermodusprogrammet.
i Terminalservermiljøer tillater separasjon av brukermodus og kjernemodusprogrammer systemet å skille og isolere brukerne. En brukers programkrasj vil ikke ta ned hele systemet. (Selvfølgelig tenker du at et programkrasj kan ta ned et system, men det er vanligvis knyttet til enhetsdrivere som kjører i kjernemodus.)
I «standard» (dvs. Ikke-Terminal Server) Windows-miljøer Der bare en enkelt bruker logger på interaktivt, lever alle kjernemodusprosesser lykkelig sammen i ett minneområde og navneområde. I flerbrukermiljøer som Terminal Server, vil denne delingen imidlertid ikke fungere siden forespørsler fra ulike brukeres økter kan være i konflikt med hverandre. Kjernen på En Terminalserver er følgelig oppmerksom på flere økter; det holder hver brukers økt separat med isolerte prosesser og minne. Windows Server 2003 gjør noen endringer i kjernen når Terminal Server-komponenten er installert for å oppnå dette.
først plasserer serveren noe av kjernens minneadresseplass i virtuelt minne. Dette gjør at det som ville være motstridende forespørsler i et enkeltbrukermiljø kan behandles riktig i flerbrukermiljøet, og for flere forekomster av kjernemodus enhetsdrivere som skal lastes inn og brukes av flere brukere (grunnen til at en bruker teknisk kan krasje hele systemet).
Noen systemprosesser er ikke øktspesifikke, noe som betyr at alle brukere i alle økter trenger tilgang til dem. Disse prosessene lagres i et enkelt (globalt) minneområde som deles av alle brukere.
en bivirkning av deling prosesser som dette i En Terminal Server miljø er at noen ganger vil du kjøre inn i prosesser som ikke er » session aware.»Et potensielt (og morsomt) resultat kan være feilmeldinger som vises på serverkonsollen fra programmer som kjører i en brukers økt. Siden det vanligvis ikke er noen i serverrommet som anerkjenner meldingen, er det potensial for å forhindre at en brukers søknad fortsetter.
Terminal Services-Tjenesten
«Terminal Services-Tjenesten» refererer til en vanlig Windows-tjeneste (Start | Administrative Verktøy | Tjenester) kalt «Terminal Services. I den virkelige verden refererer folk vanligvis til Det som «Terminal Service», og de bruker begrepet «Terminal Server» når de refererer til En Windows-Server som kjører Terminal Service.
Hvis flerbrukerkjernen er grunnlaget for serverbasert databehandling I Windows Server 2003, Er Terminal-Tjenesten hjørnesteinen. Denne tjenesten (lastet via termserv.dll) er lastet rett etter at kjernen kommer online. Etter at serverens konsoll (tastatur -, video-og musedrivere) er lastet inn, starter Terminal-Tjenesten Session Manager-delsystemet (sms-er.exe) ansvarlig for å administrere og spore alle brukerøkter på serveren.
Terminal Server-Økter
En ny økt opprettes hver gang en bruker logger På Terminal Server. En økt består i hovedsak av et virtuelt skrivebord hvor brukeren kan kjøre programmer og som han kan samhandle akkurat som med en arbeidsstasjon. En serverøkt må ikke forveksles med serverkonsollen, siden en økt ikke er en fjernkontroll av konsollen, men faktisk et nytt skrivebord som er skilt fra konsollen.
Hver gang en bruker kobler til En Terminalserver og oppretter Dette «virtuelle skrivebordet», opprettes et unikt økt-ID-nummer for å skille brukeren (og dermed brukerens prosesser) fra alle andre økter og brukere. Økt-Ider gjør det også mulig for serveren å holde minnet separat for hver brukers økt. Når en bruker logger av Fra En Terminal Services-klient, slettes økten som ble brukt, og prosessene og minnet som ble startet og brukt av denne økten, fjernes. Hver Terminal Server sporer Sine Egne Økt-Ider og håndterer oppgaven med å utstede, spore og fjerne dem.
siden serverøkter er «virtuelle» (og minne og prosesser holdes atskilt mellom øktene), bør et programkrasj eller låsing i en økt ikke påvirke andre brukerøkter, selv om andre brukere bruker det samme programmet.
nøkkel setningen her er imidlertid «bør ikke» påvirke andre brukere. Selv om brukerøkter er separate på en server, deler de fortsatt serverressurser og bestemte kodesegmenter. Hvis en bruker påkaller en prosess som får serveren til å blå skjerm, vil dette åpenbart ha en effekt på de andre brukerne. På den annen side vil enkle hendelser som et program som henger på en tidsbestemt forespørsel eller Microsoft Word krasjer når en bruker åpner et korrupt dokument, ikke bli sett av de andre brukerne (i sine egne økter) på systemet.
Øktstatus
siden en økt egentlig er en brukers skrivebord, er det tider at en økt kan være i forskjellige tilstander, som en vanlig arbeidsstasjon. Hvis en bruker for eksempel går bort fra arbeidsstasjonen i en periode, slås ikke arbeidsstasjonen av. Snarere er det bare inaktiv, venter på brukerinngang. Terminal server økter oppfører seg mye det samme, og kan være i en av en rekke forskjellige tilstander avhengig av brukerens aktivitet (eller inaktivitet), tilkobling mellom klient og server, og session time out innstillinger.
Figur 2.2: Hver Terminalserver opprettholder mange separate brukerøkter
Alle brukerøkter på En Terminalserver må være i en av følgende seks tilstander:
- Aktiv er en levende og aktiv bruker. Brukeren samhandler Med Terminal Server-økten og har ikke hatt en periode med inaktivitet eller en nettverkskobling fra serveren. Dette er den» normale » tilstanden til en økt.
- Inaktiv Er tilstanden en økt går inn i når det ikke er noen inndata fra brukeren i en bestemt tidsperiode.
- Frakoblede økter oppstår når prosessene og programmene i en «live» – økt kjører, men INGEN RDC-klient er koblet til. (Hvis du hoppet over det første kapittelet, ER» RDC Client » det nye navnet FOR RDP-Klienten.) Den vanlige årsaken er en nettverksavbrudd eller når en bruker klikker på » X » i øvre høyre hjørne av RDC-klientprogramvaren. En bruker kan koble til sin frakoblede økt for å bringe den tilbake til en «aktiv» tilstand(og å fortsette med sitt arbeid akkurat der han sluttet). Tenk på en frakoblet økt som en låst arbeidsstasjon, bortsett fra at brukeren kan «låse opp» arbeidsstasjonen fra hvilken som helst datamaskin i bygningen.
- Tilkoblede økter er i en tilstand der en klientenhet er koblet til en serverøkt, men ingen bruker er logget på, omtrent SOM CTRL + ALT + DEL-ledeteksten på en arbeidsstasjon.
- Ned Er en midlertidig tilstand der en økt avsluttes og prosesser i økten blir drept. Ned er den endelige tilstanden til en økt før den slutter.
- Lytt er en tilstand bare sett på lytterporter som er klare til å godta innkommende tilkoblinger. Denne tilstanden gjelder ikke for vanlige økter. Snarere gjelder det for prosessene som kjører på serveren som venter på (lytt etter) nye økttilkoblingsforespørsler.
i de fleste miljøer konfigurerer administratorer økter med ulike tidsavbrudd. Du kan begrense hvor lang tid en enkelt økt kan være åpen, eller du kan automatisk konvertere en inaktiv økt til en frakoblet økt. Tidsavbrudd bidrar til å begrense hvor lang tid serveren bruker på å utføre prosesser for brukere som egentlig ikke jobber på serveren. Vi vil dekke de eksakte teknikker og strategier for å konfigurere disse senere i denne boken.
Tilkoblingsporter Og Lyttere
HVER brukers RDP-økt kobles til Terminalserveren via en tilkoblingsport. En tilkoblingsport (ofte bare referert til som en «tilkobling») er en virtuell port på serveren som er knyttet til et bestemt nettverkskort og protokollkombinasjon.
En Terminal Server-tilkoblingsport opprettes automatisk når Terminal Server-komponenten er installert. Som standard tillater det enhver bruker i gruppen» remote desktop users » å koble Til Terminal Server-økter på serveren via et hvilket som helst nettverkskort. Men selv om standard tilkoblingsporten fungerer med alle nettverkskort med TCP/IP installert, Terminal Server tilkoblingsporter er virkelig nettverkskort-spesifikke. Du kan konfigurere en server med flere nettverkskort for å ha flere Terminal Server-tilkoblingsporter-en for hvert kort. Faktisk kan hver tilkobling ha helt forskjellige egenskaper og tillatelser.
Figur 2.3: En Terminalserver med flere tilkoblingsporter
Terminalserver-tilkoblinger og tilhørende lyttere kan konfigureres på to steder. Den første er via Mmc snapin-modulen Terminal Services Configuration (TSC). DU kan bruke TSC til å konfigurere alternativer for RDP-baserte Terminal Server-tilkoblinger, for eksempel innstillinger, tillatelser og over hvilket nettverkskort en tilkobling er gyldig. Den andre måten å konfigurere Terminal Server-tilkoblinger på, er via Et Active Directory Group Policy Object (GPO) i Et Windows 2003-domene. Denne funksjonaliteten lar deg tilordne tilkoblinger for flere servere som finnes med EN OU I Active Directory.
Lyttere
Hver Terminal Server-tilkoblingsport har en delkomponent kalt en » lytter.»Lytterkomponenten» lytter » på et bestemt nettverkskort og protokollkombinasjon som tilkoblingsporten er konfigurert for. Når en bruker ønsker å etablere en ny økt på serveren, bruker DE RDC-klientprogramvaren til å kontakte serveren. Serverens lytteren plukker opp klientforespørselen og videresender den videre til session manager. Lytteren går deretter tilbake til å lytte etter flere tilkoblingsforespørsler.
Virtuelle Kanaler
Som vi diskuterte tidligere, Er Microsofts RDP-protokoll som kjører PÅ TCP / IP den faktiske protokollen som kobler brukere til serverøkter. Vi nevnte også at denne protokollen kan støtte mer enn bare rene virtuelle skrivebord. RDP tillater ekstern økt lyd fra serveren som skal kanaliseres til klientenhetens høyttalere. Det gjør det også mulig for enheter koblet til klientens serielle porter for å vises som om de er koblet til serveren. Disse «statister» er tilgjengelig via RDPS virtuelle kanaler. En virtuell kanal er ganske enkelt en mekanisme for å flytte data frem og tilbake mellom En Terminal Server-økt og en klient. SOM standard INNEHOLDER RDP-protokollen På Terminal Server 2003 flere virtuelle kanaler.
- Lyd: Lydhendelser som genereres på serverøkten, omdirigeres via RDP-protokollen til RDC-klientenheten, der de spilles på klientens høyttalere.
- Klientstasjoner: Lokale diskstasjoner på klientenheten gjøres tilgjengelige for serveren, slik at brukerne kan få tilgang til både serverstasjoner og deres lokale klientenheter i sine eksterne økter.
- Skrivere: Skrivere som er tilgjengelige for klientenheten før en økt startes på En Terminalserver, gjøres tilgjengelige for brukere fra serverøktene. Brukere kan deretter skrive ut til sine standard Windows-skrivere, inkludert skrivere som er direkte koblet til klientenhetene.
- Serielle Porter: den serielle porten virtuelle kanalen gjør at enheter som er koblet til en klientenhetens seriell port, kan nås via sine eksterne Terminal Server-økter.
- Windows Utklippstavle: For å integrere lokale applikasjoner med eksterne Terminal Server-økter synkroniserer windows clipboard virtual channel innholdet i remote Terminal Server utklippstavlen med innholdet i klientenhetens utklippstavle. Brukere kan sømløst klippe og lime mellom lokale og eksterne applikasjoner.
HVIS standard virtuelle kanaler ikke oppfyller dine behov, inneholder Msdn Og Windows Server 2003 Sdk-er informasjon om hvordan du skriver dine egne egendefinerte virtuelle kanaler. En virtuell kanal er en kombinasjon av to komponenter-en klient-side komponent og en server-side komponent. Begge kan sende og motta data via den virtuelle kanalen, noe som åpner for en-eller toveiskommunikasjon. Virtuelle kanaler kan også VÆRE RDP-uavhengige, noe som betyr at du kan tilpasse miljøet ditt uten å oppgradere eller endre den faktiske klient-eller serverprogramvaren.
Hvorfor alt fokus på virtuelle kanaler? Selv om dette ikke er en utviklerbok, og du sannsynligvis aldri vil utvikle din egen virtuelle kanal, er det viktig at du forstår hvordan de fungerer. Omtrent alle tredjeparts add-on produkt For Terminal Server gjør bruk av virtuelle kanaler. Å forstå hvordan virtuelle kanaler fungerer, vil hjelpe deg med å feilsøke tredjepartsprodukter som du utvilsomt kommer over i Din Terminal Server-karriere.
Med det sagt, la oss ta en endelig titt på arkitekturen til en virtuell kanal. Se Figur 2.4.
Figur 2.4: Terminal Server 2003s virtuelle kanalarkitektur
serversiden virtuell kanalkomponent er vanligvis en kjørbar som kjører På Terminalserveren. Denne komponenten må være en brukermoduskomponent, siden serveren bruker økt-IDEN til å bestemme hvilken klientsession den skal overføre til og motta data fra.
klientsiden virtuell kanal komponent er vanligvis EN DLL levert Av Microsoft, tredjeparts programvareleverandør, eller tilpasset skrevet av utviklerne. DLL må lastes på klientdatamaskinen når RDC-klientprogrammet startes og starter tilkoblingen til serveren. I de fleste tilfeller er dette skriptet eller gjort programmatisk på klientnivå.
hvordan Alle Disse Komponentene Passer Sammen
Nå som du forstår hver Av De forskjellige Terminal Server-komponentene, la oss se hvordan de alle passer sammen. Følg prosessen som foregår som en klienttilkobling er gjort, med henvisning Til Figur 2.5.
Figur 2.5: en ny økt er etablert
- før noe skjer, ser lytterne på Terminalserveren visse nettverkskort, IP-adresse og tcp-portkombinasjoner for innkommende forespørsler om å starte økter.
- en bruker bestemmer seg for å bruke et eksternt program, så hun lanserer SIN RDC-klient og ber om en tilkobling til » server1.»HENNES RDC-klient sjekker for å se hvilke virtuelle Kanal Dller som er installert.
- i dette miljøet refererer navnet «server1» TIL IP-adresse 192.168.14.42(SOM skjer FOR Å VÆRE NIC # 1 i denne serveren). Brukerens RDC-klient sender en forespørsel om økt tilkobling til 192.168.14.42.
- serverens lytter plukker opp forespørselen og gir den til øktbehandleren. Etter hvert som øktlederen tar over, fortsetter lytteren å lytte etter flere økter.
- serveren forhandler med den forespurte klienten for krypteringsnivå og virtuelle kanalfunksjoner.
- brukeren autentiseres deretter til domenet og rettighetene kontrolleres for tilgang til tilkoblingen.
- Microsoft-lisensene er bekreftet. Server client access-lisensen er bekreftet først, Og Deretter Er Terminal Server client access-lisensen bekreftet. (Lisensen er beskrevet i Kapittel 4.)
- nå er brukerøkten klar til å begynne. Påloggingsskriptene kjøres og skrivebordet lastes inn.
i Windows Server 2003 er en lytterport knyttet til en » tilkobling.»Faktisk er de to begrepene nesten utskiftbare. Du konfigurerer egenskaper for en tilkobling, og tilkoblingens lytterport endres på riktig måte.
nå som vi har dekket alle komponentene som utgjør En Windows 2003 Terminal Server, slå til kravene.