Een applicatieportaal kan professioneel blijven en toch een duidelijke visuele identiteit hebben. De RASInsider RAS User Portal Skin Manager biedt elf paletten: diepe blauwtinten, ingetogen zakelijke varianten, lichte vlakken en een Liquid Glass-effect. Zo zien ze eruit in het echte portaal — daarna lees je hoe je ze toepast en je eigen kleuren kiest.
Onafhankelijk communityproject, niet gelieerd aan of ondersteund door Parallels. Dit is een ontwikkelpreview 0.1.1-dev, geen officiële productfunctie. De screenshots zijn gemaakt op 7 oktober 2026 met RAS 21.2.2 build 27429 en RASAdmin 5.0, met één site en een Secure Gateway die los van de Broker staat. De oorspronkelijke stylingbasis was de RAS 22.0 Technical Preview, build 28102.
Elf thema’s in het echte portaal
Achtergrond, logo en applicaties zijn op elke opname identiek: alleen de presentatie van het portaal verandert. Klik op een afbeelding om de opname op volledige grootte te openen.

Dark Glass

Midnight Blue

Light Glass

RASInsider

Graphite

Forest

Warm Ivory

Bordeaux

Aubergine

Liquid Glass

Ruby

Liquid Glass is een visuele benadering in CSS met transparantie, vervaging en inwendige lichtranden. Het is niet de native rendering-engine van Apple. Het resultaat hangt sterk af van de RAS-achtergrond en van browserondersteuning voor backdrop-filter. Is dat effect niet beschikbaar, dan valt het terug op een dekkende achtergrond.
Een thema installeren en wisselen
Download de huidige losse PS1 van GitHub. Alle elf paletten zitten in het script, dus de presets hebben geen extra JSON-bestanden nodig. Het historische archief v0.1.0 bevat deze update niet. Gebruik de huidige broncode om de nieuwe thema’s te krijgen.
Voer het uit in een console met verhoogde rechten onder Windows PowerShell 5.1, op de Broker of op een beheermachine met de bijpassende geïnstalleerde RASAdmin-module. De manager maakt verbinding met RAS en ontdekt de sites en Secure Gateways; hij gaat er niet van uit dat het portaal op de Broker staat. Je hebt ook al werkende, geauthenticeerde WinRM-toegang nodig tot elke geselecteerde Gateway.
Controleer vóór je de uitrol toestaat op elke Gateway de fysieke map die /userportal/ en de bijbehorende index.html serveert. Het pad in ons prototype is C:Program Files (x86)ParallelsApplicationServer2XHTML5Gatewaywww; bevestig het in je eigen installatie. -MappingValidated bevestigt die controle; het ontdekt of corrigeert de routering niet. Gebruik -PortalRoot en -IndexRelativePath voor afwijkende fysieke paden.
Vervang ras-broker.example.test door je RAS-server en open het interactieve menu:
.RAS-UserPortal-SkinManager.ps1 -LicensingServer ras-broker.example.test -MappingValidated
| Menu | Actie |
|---|---|
| Install / Change | Een preset kiezen of eigen waarden (Custom) invoeren. |
| Re-apply | De opgeslagen configuratie van elke Gateway opnieuw toepassen. |
| Restore Original | De beheerde hook en CSS uit de huidige index verwijderen. |
| Status | De status van bestand, hook en hash controleren. |
| Exit | Afsluiten. |
Het bereik komt uit de detectie van RAS: A voor alle sites, S:1,2 voor geselecteerde sites of G:10,11 voor de ID’s van gevonden Gateways. Een losse 1 is geen geldige siteselectie. Kies daarna onder Install / Change een palet. Custom is keuze 5, dus de elf presets zijn niet doorlopend genummerd van 1 tot 11.
Wil je een wissel automatiseren, begin dan met een proefrun. Na het controleren van bereik en vereisten voer je hetzelfde commando uit zonder -WhatIf:
.RAS-UserPortal-SkinManager.ps1 -Action Install -LicensingServer ras-broker.example.test `
-AllSites -Preset 'Ruby' -MappingValidated -WhatIf
.RAS-UserPortal-SkinManager.ps1 -Action Install -LicensingServer ras-broker.example.test `
-AllSites -Preset 'Ruby' -MappingValidated
Custom: je eigen kleuren en transparantie
Je bent niet beperkt tot de elf presets. Custom vertrekt vanuit Dark Glass en laat je de kleur van de header, drie verloopkleuren, het accent, de rand en de hoofdtekst kiezen. Je kunt ook de dekking, de vervaging en de hoekradius instellen. Voor een herbruikbaar huisstijlpalet geef je met -SkinFile een JSON-bestand mee.
| Instelling | Toegestane waarden |
|---|---|
| Kleuren | #RRGGBB |
| Dekking | 0–1 |
| Vervaging | 0–60 px |
| Hoekradius | 0–48 px |
| Secundaire / gedempte tekst | Dekking toegepast op de primaire kleur. |
Sla dit volledige voorbeeld op als corporate-teal.json. Dit eigen palet is een configuratievoorbeeld, geen van de elf vastgelegde presets:
{
"SchemaVersion": 1,
"Name": "Corporate Teal",
"Header": "#102A2B",
"HeaderOpacity": 0.96,
"PanelStart": "#102A2B",
"StartOpacity": 0.96,
"PanelMiddle": "#183D3F",
"MiddleOpacity": 0.94,
"PanelEnd": "#215052",
"EndOpacity": 0.92,
"Accent": "#67D5C4",
"Border": "#538B86",
"Primary": "#F4FFFD",
"SecondaryOpacity": 0.78,
"MutedOpacity": 0.68,
"Blur": 28,
"Radius": 22
}
.RAS-UserPortal-SkinManager.ps1 -Action Install -LicensingServer ras-broker.example.test `
-AllSites -SkinFile .corporate-teal.json -MappingValidated
Het schema vereist elke eigenschap en weigert onbekende velden, getallen buiten het bereik, URL’s en ruwe CSS. JSON-getallen gebruiken een decimale punt. De validatie voorkomt foutieve configuraties, maar garanteert geen goed contrast. Controleer de leesbaarheid met je echte achtergrond, bij de aanmeldvelden en bij toetsenbordfocus, hover, fout- en uitgeschakelde toestanden. Wil je de Liquid Glass-specifieke lichtranden behouden bij een JSON-import, laat dan exact "Name": "Liquid Glass" staan; een andere naam gebruikt het standaard glassjabloon.
Hoe het werkt — en hoe ver je kunt gaan
De manager voegt een gemarkeerde, idempotente hook toe aan de fysieke index.html. Die hook laadt een losse stylesheet op /userportal/rasinsider.css. De variabelen --ri-* daarin sturen de kleuren en effecten op de betreffende vlakken. De gecompileerde JavaScript- en CSS-bundles van Parallels worden nooit gewijzigd.
Vue-scope-attributen en CSS-utilities kunnen het overschrijven lastiger maken. Het prototype gebruikt contextuele ankers zoals [data-testid="app-header"], header.app-header in de geteste build 21.2, #launcher en .login-container .login-form[class]. De SVG in de header gebruikt fill="currentColor", zodat de kleur de context van de header volgt zonder het door RAS geleverde logo te vervangen.
| Behoefte | Waar je het instelt |
|---|---|
| Logo, achtergrond, favicon, titel en teksten | RAS Theme. |
| Palet, transparantie, vervaging, randen, hoeken, hover en onderstreping van het actieve item | Presets van de Skin Manager of Custom. |
| Extra selectors, verloopgeometrie, schaduwen of een andere lay-out | CSS-ontwikkeling in de generator; buiten het huidige Custom-schema. |
| Authenticatie, MFA, SAML, rechten, gepubliceerde applicaties, starten of inhoud van de externe sessie | RAS en zijn componenten; buiten het bereik van de Skin Manager. |
De stylesheet kan de header, het aanmeldvenster, de launcher, de zoekfunctie, het kruimelpad en de lijstregels opmaken. JSON is geen paginabouwer: het herschikt geen applicaties, vervangt geen pictogrammen en voegt geen bedrijfsfuncties toe. Het verloop houdt drie stops op 0%, 55% en 100%, onder een hoek van 145 graden. Extra componenten of lay-outwijzigingen vragen om CSS-ontwikkeling en tests op de beoogde build. Vermijd selectors die afhangen van de viewBox van het logo: een daarvan was een tijdelijk doel van het prototype, geen stabiele basis om een farm aan te passen.
Door deze scheiding houdt RAS de controle over de dynamische resources. Ze is bedoeld om wijzigingen aan het RAS Theme mogelijk te maken zonder dat de manager je logo of achtergrond vervangt. De volledige scenario’s voor themawijzigingen en upgrades moeten nog in het lab worden gevalideerd. De elf screenshots tonen het uiterlijk in de geteste build, geen algemene compatibiliteit met toekomstige versies.
Meerdere Gateways, upgrades en herstel
De detectie gebruikt de geïnstalleerde RASAdmin-module: New-RASSession, Get-RASVersion, Get-RASSite, Get-RASGateway -SiteId en Get-RASGatewayStatus -Id. RAS blijft de bron van waarheid; de doelmachines zijn geen handmatig bijgehouden inventaris. Remove-RASSession sluit de sessie. De geverifieerde details van de detectie staan in de documentatie over meerdere Gateways.
Het script controleert elke geselecteerde Gateway voordat het de eerste wijzigt, maakt daarna snapshots, past de wijzigingen toe en verifieert ze. Achter een HALB selecteer je de hele betreffende pool om een inconsistent uiterlijk te voorkomen. Een gespreide uitrol heeft nog steeds een overgangsvenster en leegt de nodes niet automatisch. Mislukt de uitrol, dan gebruikt de compenserende rollback de snapshots van de transactie en weigert hij gelijktijdige wijzigingen van anderen te overschrijven.
Configuratie, status, hashes, transacties, back-ups en logs staan onder %ProgramData%RASInsiderRAS-UserPortal-SkinManager. Controleer na een RAS-update eerst Status en herstel daarna met Re-apply de hook en de stylesheet op basis van de opgeslagen instellingen. Re-apply behoudt de skin van elke Gateway; met Install / Change maak je een pool eenvormig.
.RAS-UserPortal-SkinManager.ps1 -Action Reapply -LicensingServer ras-broker.example.test `
-AllSites -MappingValidated
Om terug te gaan naar de oorspronkelijke presentatie, verwijdert Restore Original de beheerde elementen uit de huidige index. Het zet niet blind een oude index terug over bijgewerkte productbestanden:
.RAS-UserPortal-SkinManager.ps1 -Action Restore -LicensingServer ras-broker.example.test `
-AllSites -MappingValidated
Ongemarkeerde CSS-links, foutieve markeringen en bepaalde afwijkingen worden bewust geweigerd. Bewaar een bestaand prototype en volg de herstelprocedure in plaats van schrijfacties te forceren. Ververs tot slot de browser en controleer de geserveerde CSS en het verwachte uiterlijk.
Wat we echt hebben gevalideerd
Alle elf paletten zijn vanaf de Broker uitgerold naar een aparte Gateway en in de browser vastgelegd. Daarna is Dark Glass hersteld vanuit de opgeslagen configuratie en zijn Re-apply en Status gecontroleerd. De lokale validatie slaagde: 52 fixturecontroles, 17 Pester-tests en PSScriptAnalyzer, plus de Windows-controles op GitHub. De rollbacktests voor meerdere Gateways gebruiken fixtures: een echte HALB, uitrol naar meerdere Gateways, wijzigingen aan het RAS Theme, upgrades en een volledige toegankelijkheidstoets staan nog open. Het script staat de tak 21.2.x en RAS 22.0 TP build 28102 toe; dat betekent niet dat elke toegestane build is getest.
Project en broncode op GitHub · Custom-schema · Paletten in detail · Validatie in het lab
