På grund af Windows-systemers ressourcetørst hersker lette Linux-distributioner som Mint, Colibri OS, Debian eller Ubuntu i VPS-miljøer, da de ikke er belastet af en tung skrivebordsoplevelse, som ikke er nødvendig for vores opgaver. Som vi siger, kun konsollen, kun hardcore! Og det er i virkeligheden slet ikke en overdrivelse: den samme Debian starter på 256 MB hukommelse og en enkelt kerne med 1 GHz, altså næsten på enhver "stub". For komfortabel drift kræves der fra 512 MB og en lidt hurtigere processor. Men hvad hvis vi fortalte dig, at noget lignende også kan gøres på en VPS med Windows? At du ikke behøver at installere det tunge Windows Server, som kræver tre til fire gigabyte RAM og mindst et par kerner med 1,4 GHz? Bare benyt Windows Server Core — slip af med GUI'en og nogle af tjenesterne. Det er netop, hvad vi skal tale om i artiklen.
Hvem er denne Windows Server Core?
Der er ikke meget klar information om, hvad Windows (server) Core er, selv ikke på Microsofts officielle hjemmeside; nærmere bestemt er det så forvirrende, at man ikke umiddelbart forstår det, men de første omtaler går helt tilbage til Windows Server 2008. Grundlæggende er Windows Core en fungerende kerne af Windows Server (overraskende!), som er "slanket" ved at reducere sin egen GUI og omkring halvdelen af de sekundære tjenester.
Den primære funktion ved Windows Core er dens beskedne hardwarekrav og fuldstændige konsolstyring via PowerShell.
Hvis man besøger Microsofts hjemmeside og tjekker de tekniske krav, vil man se, at der til Windows Server 2016/2019 kræves minimum 2 GB RAM og en enkelt kerne med 1,4 GHz for at starte. Men vi ved alle, at en sådan konfiguration kun vil tillade systemet at starte, men bestemt ikke en komfortabel drift af vores OS. Netop derfor tildeles der normalt mere hukommelse til Windows Server, ofte med minimum 2 kerner/4 tråde fra processoren, hvis ikke der tilbydes en dyr fysisk maskine på en Xeon i stedet for en billig virtuel maskine.
Samtidig kræver selve kernen i serversystemet kun 512 MB hukommelse, og de processorkræfter, som GUI'en tidligere besatte for blot at blive gengivet på skærmen og understøtte sine mange tjenester, kan nu bruges til noget mere nyttigt.
Her er en sammenligning af de understøttede tjenester i Windows Core og en fuld Windows Server fra Microsofts officielle hjemmeside:
application
server core
server medskrivbordserfaring
Kommandoprompt
tilgængelig
tilgængelig
Windows PowerShell / Microsoft .NET
tilgængelig
tilgængelig
Perfmon.exe
ikke tilgængelig
tilgængelig
Windbg (GUI)
understøttet
tilgængelig
Resmon.exe
ikke tilgængelig
tilgængelig
Regedit
tilgængelig
tilgængelig
Fsutil.exe
tilgængelig
tilgængelig
Disksnapshot.exe
ikke tilgængelig
tilgængelig
Diskpart.exe
tilgængelig
tilgængelig
Diskmgmt.msc
ikke tilgængelig
tilgængelig
Devmgmt.msc
ikke tilgængelig
tilgængelig
Server Manager
ikke tilgængelig
tilgængelig
Mmc.exe
ikke tilgængelig
tilgængelig
Eventvwr
ikke tilgængelig
tilgængelig
Wevtutil (Hændelsesspørgsmål)
tilgængelig
tilgængelig
Services.msc
ikke tilgængelig
tilgængelig
Kontrolpanel
ikke tilgængelig
tilgængelig
Windows Update (GUI)
ikke tilgængelig
tilgængelig
Windows Stifinder
ikke tilgængelig
tilgængelig
Proceslinje
ikke tilgængelig
tilgængelig
Notifikationer i proceslinjen
ikke tilgængelig
tilgængelig
Taskmgr
tilgængelig
tilgængelig
Internet Explorer eller Edge
ikke tilgængelig
tilgængelig
Indbygget hjælpe system
ikke tilgængelig
tilgængelig
Windows 10 Shell
ikke tilgængelig
tilgængelig
Windows Media Player
ikke tilgængelig
tilgængelig
PowerShell
tilgængelig
tilgængelig
PowerShell ISE
ikke tilgængelig
tilgængelig
PowerShell IME
tilgængelig
tilgængelig
Mstsc.exe
ikke tilgængelig
tilgængelig
Remote Desktop Services
tilgængelig
tilgængelig
Hyper-V Manager
ikke tilgængelig
tilgængelig
Som man kan se, er der blevet skåret meget fra Windows Core. Tjenester og processer relateret til systemets GUI er blevet fjernet, såvel som alt 'affald', der bestemt ikke vil være nødvendigt på vores konsolbaserede virtuelle maskine, såsom Windows Media Player.
Næsten som Linux, men ikke helt
Windows Server Core ønsker man at sammenligne med Linux-distributioner, men det er faktisk ikke helt korrekt. Ja, disse systemer ligner hinanden i forhold til lavere ressourc verbraug ved at fravælge GUI og mange side-tjenester, men når det kommer til drift og nogle tilgange til opbygning, er det stadig Windows og ikke et unix-system.
Det simpleste eksempel — ved hjælp af manuel opbygning af Linux-kernen og efterfølgende installation af pakker og tjenester, kan selv den letteste Linux-distribution blive til noget tungt og være som en schweizerkniv (her vil man gerne lave en sjov bemærkning omkring Python og inkludere et billede fra serien 'If Programming Languages Were Weapons', men vi undlader det). I Windows Core er der meget mindre frihed, da vi trods alt har med et Microsoft-produkt at gøre.
Windows Server Core kommer allerede som en færdigbygget samling, og standardkonfigurationen kan vurderes ud fra tabellen ovenfor. Hvis du har brug for noget fra listen over ikke-understøttede elementer, skal det tilføjes online via konsollen. Dog skal man huske på 'Feature on demand' og muligheden for at hente komponenter som CAB-filer, som derefter kan tilføjes til bygningen før installation. Men dette scenarie fungerer ikke, hvis du under arbejdet opdager, at du mangler en af de udskårne tjenester.
Men hvad der skiller Core-versionen ud fra den fulde version — er muligheden for at opdatere systemet og tilføje tjenester uden at stoppe arbejdet. Windows Core understøtter 'hot patching' af pakker, uden genstart. Som et resultat af praktiske observationer: en maskine, der kører Windows Core, skal genstartes ~6 gange sjældnere end en, der kører Windows Server, nemlig hver sjette måned i stedet for hver måned.
En behagelig bonus for administratorer er, at hvis systemet bruges, som det er tiltænkt – gennem konsollen, uden RDP – og man ikke gør det til en anden Windows Server, så bliver det ekstremt sikkert sammenlignet med den fulde version. For størstedelen af Windows Server-sårbarhederne skyldes nemlig RDP og brugerhandlinger, der udføres via netop denne RDP, som man ikke burde gøre. Det er lidt ligesom historien om Henry Ford og hans holdning til bilfarve: "Enhver kunde kan få en bil malet i den farve, han ønsker, så længe det er sort». Sådan er det også med systemet: brugeren kan kommunikere med systemet på enhver måde, så længe det sker gennem konsol.
Installation og administration af Windows Server 2019 Core
Vi har tidligere nævnt, at Windows Core faktisk er Windows Server uden GUI-omslaget. Det vil sige, at du kan bruge næsten enhver version af Windows Server som core-version, dvs. undgå GUI. For produkterne i Windows Server 2019-familien er der 3 ud af 4 serverbuilds: core-tilstanden er tilgængelig for Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter og Hyper-V Server 2019, så kun Windows Server 2019 Essentials falder ud af denne liste.
Derudover behøver man ikke lede længe efter installationspakken til Windows Server Core. I den standardinstallatør fra Microsoft tilbydes core-versionen stort set som standard, mens versionen med GUI skal vælges manuelt:

Der er faktisk flere måder at administrere systemet på end den nævnte PowerShell, som er standardvalget fra producenten. Du kan administrere en virtuel maskine på Windows Server Core på mindst fem forskellige måder:
- Remote PowerShell;
- Remote Server Administration Tools (RSAT);
- Windows Admin Center;
- Sconfig;
- Server Manager.
De første tre muligheder er særligt interessante: standard PowerShell, RSAT og Windows Admin Center. Men det er vigtigt at forstå, at når vi får fordelene ved et af værktøjerne, får vi også de begrænsninger, det medfører.
Vi vil ikke uddybe mulighederne i konsollen, PowerShell er PowerShell, med sine åbenlyse fordele og ulemper. Men med RSAT og WAC er situationen lidt mere kompliceret.
WAC giver adgang til vigtige systemkontrolelementer såsom registry-redigering og administration af diske og enheder. RSAT fungerer kun i visningstilstand i det første tilfælde og tillader ikke ændringer, mens Remote Server Administration Tools har brug for et GUI for at administrere diske og fysiske enheder, hvilket ikke er vores situation. Generelt kan RSAT ikke håndtere filer og derfor ikke opdateringer, installation/afinstallation af programmer i registry-redigering.
▍Systemadministration
WAC
RSAT
Komponentadministration
Ja
Ja
Registry-editor
Ja
Nej
Netværksadministration
Ja
Ja
Hændelsesvisning
Ja
Ja
Fællesmapper
Ja
Ja
Diskadministration
Ja
Kun for servere med GUI
Opgaveplanlægger
Ja
Ja
Enhedshåndtering
Ja
Kun for servere med GUI
Filhåndtering
Ja
Nej
Brugeradministration
Ja
Ja
Gruppeadministration
Ja
Ja
Certifikatadministration
Ja
Ja
Opdateringer
Ja
Nej
Programafinstallation
Ja
Nej
Systemovervågning
Ja
Ja
På den anden side giver RSAT os fuld kontrol over rollerne på maskinen, mens Windows Admin Center ikke kan gøre noget i denne henseende. Her er en sammenligning af RSATs og WACs muligheder i denne sammenhæng for at illustrere:
▍Rolleadministration
WAC
RSAT
Advanced Thread Protection
FORHÅNDVISNING
Nej
Windows Defender
FORHÅNDVISNING
Ja
Containere
FORHÅNDVISNING
Ja
AD Administrative Center
FORHÅNDVISNING
Ja
AD Domæner og Tilladelser
Nej
Ja
AD sites og services
Nej
Ja
DHCP
FORHÅNDVISNING
Ja
DNS
FORHÅNDVISNING
Ja
DFS-manager
Nej
Ja
GPO-manager
Nej
Ja
IIS-manager
Nej
Ja
Det er allerede tydeligt, at hvis man opgiver GUI og PowerShell til fordel for andre kontrolelementer, så er det ikke muligt at nøjes med et simpelt værktøj: til omfattende administration på alle fronter, har vi brug for mindst en kombination af RSAT og WAC.
Man skal huske, at brugen af WAC kommer til at koste 150-180 megabyte RAM. Windows Admin Center opretter 3-4 sessioner på serverens side, når det tilsluttes, som ikke lukker ned, selv når værktøjet frakobles fra den virtuelle maskine. Endvidere fungerer WAC ikke med ældre versioner af PowerShell, så du skal bruge mindst PowerShell 5.0. Alt dette strider imod vores ressourcebesparende tilgang, men komfort har sin pris. I vores tilfælde — RAM.
En anden mulighed for at administrere Server Core er at installere et GUI via tredjeparts værktøjer for at undgå alt det rod, der følger med en fuld installation sammen med grænsefladen.
I denne situation har vi to muligheder: at installere det officielle Explorer-system eller bruge Explorer++. Som et alternativ til sidstnævnte kan enhver filhåndterer som Total Commander, FAR Manager, Double Commander osv. bruges. Det sidste er at foretrække, hvis du ønsker at spare på RAM. Du kan tilføje Explorer++ eller en anden filhåndterer ved at oprette en netværksmappe og starte den via konsollen eller planlæggeren.
At installere et fuldt Explorer vil give os flere muligheder i arbejdet med software udstyret med et UI. For dette skal vi til Server Core App Compatibility Feature on Demand (FOD), som vil returnere MMC, Eventvwr, PerfMon, Resmon, Explorer.exe og endda Powershell ISE til systemet. Men dette har en pris, ligesom med WAC: vi vil uundgåeligt miste omkring 150-200 megabyte RAM, som vil blive optaget af explorer.exe og andre tjenester, selv når der ikke er en aktiv bruger på maskinen.


Sådan ser systemets hukommelsesforbrug ud på maskiner med det originale Explorer-pakke og uden.
Her opstår et relevant spørgsmål: hvorfor alle disse jongleringer med PowerShell, FOD, filhåndterere, når hvert skridt til venstre eller højre fører til en stigning i hukommelsesforbrug? Hvorfor smide sig i en masse værktøjer og hoppe fra side til side for at få en behagelig oplevelse på Windows Server Core, når man bare kan installere Windows Server 2016/2019 og leve som en almindelig person?
Der er flere grunde til at bruge Server Core. Den første: det forbrug af hukommelse er næsten halveret. Hvis du kan huske, var dette kriteriet grundlaget for vores artikel fra starten. Her er for sammenligning, hukommelsesforbruget i Windows Server 2019, sammenlign med skærmbillederne lidt højere op:

Og her er det, 1146 MB hukommelse forbrugt i stedet for 655 MB på Core.
Hvis vi antager, at WAC ikke vil være nødvendig for dig, og du vil bruge Explorer++ i stedet for det originale Explorer, så vil du stadig vinde næsten en halv hektar på hver virtuel maskine, der kører Windows Server. Hvis der kun er én virtuel maskine, er gevinsten ubetydelig, men hvis der er fem? Her bliver værdien af GUI vigtig, især hvis den ikke er nødvendig.
For det andet: enhver form for dans omkring Windows Server Core vil ikke føre dig til at tackle hovedproblemet ved driften af Windows Server - RDP og dets sikkerhed (mere præcist, den totale mangel på det). Windows Core, selv med tilføjelser som FOD, RSAT og WAC, er stadig en server uden RDP, hvilket betyder, at den ikke er udsat for 95 % af eksisterende angreb.
I rester
Generelt er Windows Core kun en smule "federe" end enhver standard Linux-distribution, men langt mere funktionel. Hvis du har brug for at frigøre ressourcer og er villig til at arbejde med konsollen, WAC og RSAT, samt bruge filhåndterere i stedet for en fuld GUI, så er det værd at overveje Core. Især da det giver dig mulighed for ikke at betale for en fuld Windows-version, mens de penge, du sparer, kan bruges på at opgradere din , f.eks. ved at tilsætte RAM. For nemheds skyld har vi tilføjet Windows Server Core til vores .
Kilde: habr.com
