info@automize.dk

+45 7171 5353

Support

Windows Virtual Desktop

Gruppebaseret opgave

Contents

  • The Setup
  • Prerequisites
  • Why a Runbook?
  • The Implementation Guide
  • Setup on hybrid worker machine
  • Azure
  • Schedule
  • Runbook Schedule
  • Logic App Schedule
  • Using the script for 2 application groups (or more)
  • Testing if Everyting Works
  • Contact Information and script

Windows Virtual Desktop – Gruppebaseret opgave

Windows Virtual Desktop WVD er en fantastisk ny løsning fra Microsoft, der hjælper partnere og kunder med nemt at administrere og implementere virtuelle desktops og apps til slutbrugere. WVD er i en tidlig tilstand, men i konstant udvikling, men understøtter i øjeblikket ikke gruppebaseret tildeling af brugere. Brugere skal tildeles individuelle til virtuelle skriveborde eller appgrupper.

Hovedparten af ​​vores kunder kører hybridopsætning, hvor brugere og computerkonti er baseret på identitet fra en traditionel Active Directory AD. I den følgende guide vil jeg beskrive, hvordan man dynamisk tildeler brugere til WVD fra medlemskabet af en sikkerhedsgruppe i AD på en sikker måde.

Supportere kan derefter tildele brugere fra “Active Directory Users and Computers”-konsollen uden brug af powershell eller andre 3-partsværktøjer, selvom der findes flere AppGroups, dette er muligt, fordi vi bruger en runbook i azure, der tjekker sikkerhedsgruppen hvert 30. minut eller oftere, hvis det er nødvendigt, så tilføjer det dem eller fjerner dem baseret på deres medlemskab af sikkerhedsgruppen.

The Setup

  • Hybrid Cloud
  • Azure AD Connect Service
  • Two application groups
  • Connection to DC

I vores opsætning kører vi vm’er i azure og Azure AD Connect for at synkronisere brugere mellem AD og AAD, grunden til at gøre dette er, at vores kunde stadig har applikationer, der ikke kun understøtter cloud, så vi flytter alle vm’er til azure og flytte alle de funktioner, vi kan, til en cloud-only-løsning.

Prerequisites

Nu, før vi begynder med opsætningen, skal vi først gennemføre et par forudsætninger.

  • Azure Automation Account
    Du skal oprette en Azure Automation-konto. Dette er tjenesten, der håndterer alle de automatiseringsopgaver, som vi skal udføre.
  • Hybrid worker
    Hvis du ikke har en hybrid worker installeret i dit miljø, så er der ingen forbindelse mellem Azure og din envoirment, det betyder, at runbooken ikke vil være i stand til at køre i dit miljø, og scriptet vil derfor ikke fungere. https://docs.microsoft.com/en-us/Azure/automation/automation-hybrid-runbook-worker
  • Active Directory Service Account

Du skal oprette en tjenestekonto, der har læse- og skrivetilladelser til den sikkerhedsgruppe, som du tilføjer og fjerner brugere til.
Du skal også give den “log på som en tjeneste”-tilladelser på den server, du installerede hybridarbejderen på. Dette kan også gøres med en gruppepolitik https://docs.microsoft.com/en-us/windows /security/threat-protection/security-policy-settings/log-on-as-a-service

Nu, før vi begynder med opsætningen, skal vi først gennemføre et par forudsætninger.

Why a Runbook?

  • Security

Runbooks er mere sikre end for eksempel en planlagt opgave på en normal server, hvis nogen hacker sig ind på din server, så er de i, de kan lukke opgaven ned eller slette den.
Men i azur er der en masse sikkerhed, først og fremmest er der betinget adgang, der er et værktøj, der gør det muligt at nægte adgang eller give adgang baseret på en betingelse, du har sat op, som kunne være placering eller suspenderingsadfærd.


Så er der MFA, så du skal autentificere dig med en separat enhed eller mail.
Så er der endelig PIM (Privileged Identity Management), der gør det muligt for dig at anmode om adgang til ressourcer eller roller, og du kan sætte det op, så din anmodning skal godkendes af en anden før din tildelte adgang


Så alt i alt, hvis du vil bryde ind, stop denne runbook, hvis alle disse sikkerhedsforanstaltninger er sat op, vil du skulle stjæle en bærbar computer og en telefon, der tilhører den samme person, bruge hans legitimationsoplysninger og en kollega til at bryde ind, oven i købet af, at du skal være på et godkendt sted, og det er en svær opgave, hvis du spørger mig.

  • Fail over
    Hvis du vil, kan du installere flere hybridarbejdere på forskellige servere på tværs af dit miljø, så hvis en server fejler, vil du runbook bare køre på en anden server.
  • Logs and output
    Alt dit output fra dit script gemmes i azurblåt efter hver kørsel, så du kan bare vælge datoen og vælge jobbet og kontrollere alt output, uden at skulle eksportere det til separate csv-filer.
  • All your automation in one place
    I stedet for at have en planlagt opgave på én server og en anden på en anden server, og hver af dem udsender logfiler til forskellige shares, så har du azurblå automatiseringskonti ét sted at have al din automatisering.
  • Other benefits
    Der er masser af fordele ved at bruge azure runbooks, de inkluderer integrationer til andre systemer, implementering af scripts fra azure devops og mange flere. Hvis du er interesseret, kan du læse mere her https://docs.microsoft.com/en-us/ azurblå/automatisering/

The Implementation Guide

Først og fremmest skal vi indsamle nogle oplysninger, for at scriptet kan fungere.

  • TenantName
  • ApplicationGroupName
  • HostPoolName
  • SecurityGroup
  • AADTenantID

Udfyld variablerne med data, der passer til dit miljø, og gem scriptet et sted på din computer, så du kan bruge det til senere.

Setup on hybrid worker machine

Du skal installere to PowerShell-moduler på den samme server, hvor din hybridworker er installeret.

Set-PSRepository -Name "PSGallery" -SourceLocation
"https://www.powershellgallery.com/api/v2" -InstallationPolicy Trusted

Find-Module "Microsoft.RDInfra.RDPowershell" | Install-Module
Add-WindowsFeature RSAT-AD-PowerShell

Set-PSRepository -Name "PSGallery" -SourceLocation
"https://www.powershellgallery.com/api/v2" -InstallationPolicy Untrusted

Når du har kørt disse tre kommandoer, har du installeret de to moduler. Du behøver ikke at konfigurere andet til dit lokale miljø. Kommandoen Add-WindowsFeature bruges til at få Active Directory-modulet installeret. Grunden til at gøre det på denne måde er, at Active Directory-modulet faktisk er en funktion til Windows-serverne.

Azure

  • Gå til den Automation Account, du har oprettet, ved at søge efter Automation Acount i søgefeltet i Azure og vælg den Automation Account, du har oprettet.
  • Gå til fanen legitimationsoplysninger, og tilføj dine WVD-legitimationsoplysninger og din AD-servicekonto, vær opmærksom på, at du muligvis skal bruge Windows-logonnavnet før 2000 på tjenestekontoen, for at det skal fungere.
  • Opret den runbook, hvor dit script skal køre. Tryk på fanen Runbook, og tryk derefter på knappen “Opret en Runbook”.
  • Giv den et navn og vælg PowerShell som runbook-type og tryk derefter på Opret.
  • Indsæt hele scriptet og erstat automatiseringslegitimationsnavnet med variabelnavnet på de legitimationsoplysninger, vi lige har tilføjet.
  • Tryk på Udgiv og scriptet er klar til brug.

Schedule

Der er to måder, vi kan lave en tidsplan på. Vi kan lave en normal runbook-plan, som fungerer perfekt, men den kan kun køre én gang i timen, så hvis du har brug for, at den kører oftere, så skal du lave en logisk app til at køre den for dig. Vi fik runbooken til at køre hvert 30. minut. Jeg vil også give retningslinjer for, hvordan man opretter den logiske app.

Runbook Schedule

At lave en normal runbook-plan er ret ligetil. Du går bare ind i din runbook og vælger Tidsplaner og trykker derefter på knappen “Tilføj en tidsplan”.

Så trykker du bare på knappen “Link en tidsplan” og opretter en ny tidsplan. Derefter giver du den et navn og vælger “Gentagende”. Du kan derefter vælge mængden af ​​tid mellem udførelsen af ​​runbook.

Det næste skridt er meget vigtigt. Du skal trykke på knappen for parametre og køreindstillinger. Vælg derefter hybridarbejderen på kørselsindstillinger, efterfulgt af at vælge hybridarbejderen. Dette er meget vigtigt, for hvis du ikke gør det, vil din runbook køre i Azure, og den vil mislykkes.

Logic App Schedule

Med en logik-app vil det være muligt at køre runbooken hvert minut, men først skal du oprette en servicekonto, der kan køre logik-appen for os. Det er ligegyldigt, hvilken type konto det er, så længe MFA er deaktiveret for kontoen, ellers vil den ikke kunne køre runbook.

  • Når kontoen er oprettet, skal vi give nogle rettigheder til vores automatiseringskonto, det gør vi ved at gå til vores automatiseringskonto og vælge adgangskontrol og trykke på knappen Tilføj til højre.
  • Vælg Automation Operator, vælg tjenestekontoen, vælg Gem. Nu er din servicekonto blevet uddelegeret rettigheder.
  • Du skal så gøre det samme for den ressourcegruppe, hvor automationskontoen er gemt. Læsertilladelser fungerer fint.
  • Gå til fanen Logic Apps, og tryk på knappen Tilføj.
  • Giv det et navn, vælg dit abonnement, ressourcegruppe og hvor du vil have det gemt.
  • Når du åbner din logik-app for første gang, vil den se sådan ud. Vælg gentagelsesindstillingen.
  • Nu skal du indstille timeren til det, du foretrækker, og trykke på knappen “Tilføj ny parameter” og vælge din tidszone.
  • Så trykker du på “Nyt trin” og vælger “Opret job (Azure automation)”

Nu skal du vælge den lejer, hvor din automatiseringskonto er gemt og derefter logge ind med den konto, vi oprettede før.

  • Udfyld derefter dit abonnement, ressourcegruppe, automatiseringskonto og runbook-navn. Feltet, du skal være opmærksom på, er Hybrid-automationsarbejdergruppen, fordi du skal indtaste det manuelt.
  • Tryk på knappen Gem. Du vender tilbage til hovedskærmen, og tryk derefter på “Kør trigger” og “Gentagelse” for at udføre et job, for at sikre dig, at det virker.
  • Du vil være i stand til at se, om det virker, ved at tjekke, om status for jobbet er lykkedes.

Using the script for 2 application groups (or more)

Hvis du vil bruge det til mere end én applikation, så er det virkelig nemt at konfigurere, først og fremmest skal du give din AD-servicekonto læse- og skrivetilladelser på den nye sikkerhedsgruppe, som du har oprettet, eller du kan lave en ny tjeneste tage højde for denne specifikke sikkerhedsgruppe, hvis du vil gøre den endnu mere sikker. så bliver du nødt til at kopiere denne del af scriptet.

  • Inkluderer disse 2 variabler og erstatter dem med den nye sikkerhedsgruppe og den nye applikationsgruppe.
  • Så kan du bare blive ved med at kopiere og indsætte, indtil du har den mængde, du skal bruge.
  • Hvis du gerne vil se et eksempel på dette, kan du gå til dette link for at tjekke det ud:
  • https://github.com/dani9335/wvdaddgroupmember/blob/master/add-multiplememberstoappgroups.ps1

Testing If Everyting Works

For at sikre, at alt fungerer, kan du gøre et par forskellige ting for at teste det.

  • Først og fremmest skal du tilføje nogen til din gruppe i Active Directory. Udfør derefter runbook i automatiseringskontoen. Tryk på startknappen, eller, hvis du bruger en Logic-app, klik på “Kør trigger”.
  • Gå derefter til automatiseringskontoen og vælg fanen job, og klik på den seneste.
  • Gå til fanen “Alle logfiler”, og du burde være i stand til at se outputtet for alle logfiler. Brug den til at bekræfte, om jobbet er vellykket, eller om du har brug for at fejlsøge scriptet.
  • Husk altid, at hvis adgangskoder til en af ​​dine tjenestekonti udløber, vil dit script ikke virke.

Contact Information and script

If you run into any problem or have questions, you can reach me at dpg@automize.dk and I will reply as soon as possible.

You will find the script below:
https://github.com/dani9335/wvdaddgroupmember/blob/master/add-appgroupmember.ps1

Want to hear more about group based assignments on Windows Virtual Desktop?

Daniel Pagh Greve
dpg@automize.dkFind script on GitHub

Vil du vide mere?

Er du interesseret i at høre, er du meget velkommen til at kontakte os på mail eller telefon. Du kan også bruge vores kontaktformular

info@automize.dk

+45 7171 5353