FSLogix und Azure Virtual Desktop

Dominic Böttger

May 3, 2023

 • 

5

 min read

Blog

>

FSLogix und Azure Virtual Desktop

FSLogix und Azure Virtual Desktop: Automatisierte Bereitstellung leicht gemacht

Die Herausforderung

Bisher war es nicht gerade einfach, FSLogix mit Azure AD-Cloud-Identitäten zu verwenden. Das lag daran, dass FSLogix keine direkte Unterstützung für den Zugriff auf das Dateisystem über Azure AD-Cloud-Identitäten bot. Doch in besagtem Blogartikel wurde ein PowerShell-Code entwickelt, der genau das ermöglicht. Wir haben diesen Code noch weiter verbessert, um die automatische Bereitstellung von FSLogix-Freigaben in AVD mithilfe von BICEP zu realisieren.

Die Lösung: PowerShell trifft auf BICEP

Der von uns verbesserte PowerShell-Code legt Registry-Einträge an, speichert Anmeldeinformationen für den Dateiserver und passt Sicherheitseinstellungen an, um einen reibungslosen Betrieb von FSLogix in AVD-Umgebungen zu gewährleisten. Zusätzlich enthält der Code auch Windows Defender-Ausnahmen für FSLogix. Das ist schon ziemlich cool, oder?

Um das PowerShell-Skript in die Bereitstellung virtueller Maschinen einzubinden, haben wir den folgenden BICEP-Code erstellt:

bicepCopy code

      
resource virtualMachines_name_Microsoft_CustomScriptExtension 'Microsoft.Compute/virtualMachines/extensions@2021-07-01' = if (fslogixfileserver != '' && fslogixconnectionstring != '' && fslogixuser != '' && fslogixsecret != '' && fslogixsharename != '') {
  parent: vm
  name: 'Microsoft.CustomScriptExtension'
  location: location
  properties: {
    publisher: 'Microsoft.Compute'
    type: 'CustomScriptExtension'
    typeHandlerVersion: '1.10'
    autoUpgradeMinorVersion: true
    protectedSettings: {
      fileUris: [
        'https://raw.githubusercontent.com/INSPIRATIONlabs/InfrastructureAutomation/main/AvDFsLogixDeploy.ps1'
      ]
      commandToExecute: 'powershell.exe -ExecutionPolicy Unrestricted -File AvDFsLogixDeploy.ps1 -fileserver ${fslogixfileserver} -profileshare ${fslogixconnectionstring} -user ${fslogixuser} -secret ${fslogixsecret} -sharename ${fslogixsharename}'
    }
  }
}
      
    

Copy


Dieser BICEP-Code erstellt eine CustomScriptExtension-Ressource für die virtuellen Maschinen. Die Bedingung if (fslogixfileserver != '' && fslogixconnectionstring != '' && fslogixuser != '' && fslogixsecret != '' && fslogixsharename != '') stellt sicher, dass die Ressource nur erstellt wird, wenn alle erforderlichen Parameter für das FSLogix-Skript angegeben sind. Der commandToExecute enthält die Befehlszeile, die das PowerShell-Skript mit den entsprechenden Parametern ausführt.

Ein unterhaltsames Beispiel

Stell dir vor, du hast eine Firma, die auf Cloud-Computing setzt und Azure Virtual Desktop für ihre Mitarbeiter verwendet. Du möchtest, dass jeder Mitarbeiter seine eigenen Einstellungen und Dateien hat, die auf jedem virtuellen Desktop verfügbar sind, auf den er zugreift. FSLogix ist die perfekte Lösung für diese Anforderung, aber die Einrichtung kann kompliziert sein. Genau hier kommt unser automatisiertes Bereitstellungsskript ins Spiel!

Das PowerShell-Skript

Nun werfen wir einen Blick auf das angepasste PowerShell-Skript, das für die automatisierte Bereitstellung von FSLogix-Freigaben verwendet wird:

cssCopy code

       
# Based on the work of Marcel and his article: https://blog.itprocloud.de/Using-FSLogix-file-shares-with-Azure-AD-cloud-identities-in-Azure-Virtual-Desktop-AVD/# Modified by: Dominic Böttger

## Add Parameters for the script all parameters are mandatory
# - fileServer: The name of the file server
# - profileShare: The connection string to the profile share
# - user: The user name to access the file server
# - secret: The password to access the file server
param(
    [Parameter(Mandatory=$true)]
    [string]$fileserver,
    [Parameter(Mandatory=$true)]
    [string]$profileshare,
    [Parameter(Mandatory=$true)]
    [string]$user,
    [Parameter(Mandatory=$true)]
    [string]$secret,
    [Parameter(Mandatory=$true)]
    [string]$sharename
)

New-Item -Path "HKLM:\SOFTWARE" -Name "FSLogix" -ErrorAction Ignore
New-Item -Path "HKLM:\SOFTWARE\FSLogix" -Name "Profiles" -ErrorAction Ignore
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "AccessNetworkAsComputerObject" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "CCDLocations" -Value $profileshare -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "DeleteLocalProfileWhenVHDShouldApply" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "Enabled" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "FlipFlopProfileDirectoryName" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "HealthyProvidersRequiredForRegister" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "IsDynamic" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "KeepLocalDir" -Value 0 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "SizeInMBs" -Value 40000 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "VolumeType" -Value "VHDX" -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "PreventLoginWithFailure" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "PreventLoginWithTempProfile" -Value 1 -force
New-Item -Path "HKLM:\SOFTWARE\Policies" -Name "FSLogix" -ErrorAction Ignore
New-Item -Path "HKLM:\SOFTWARE\Policies\FSLogix" -Name "ODFC" -ErrorAction Ignore
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\FSLogix\ODFC" -Name "AccessNetworkAsComputerObject" -Value 1 -force
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\FSLogix\ODFC" -Name "        
      
    

Copy



Das Skript besteht aus mehreren Teilen:

  1. Es definiert die Parameter, die für die Konfiguration der FSLogix-Dateifreigaben erforderlich sind, wie den Dateiserver, die Verbindungszeichenfolge zur Profilfreigabe, den Benutzernamen und das Passwort für den Zugriff auf den Dateiserver sowie den Namen der Freigabe.
  2. Anschließend erstellt es die notwendigen Registrierungseinträge für die FSLogix-Einstellungen.
  3. Es speichert die Anmeldeinformationen für den Dateiserver, so dass das System diese für den Zugriff auf die FSLogix-Dateifreigaben nutzen kann.
  4. Schließlich fügt es Windows Defender-Ausnahmen für FSLogix hinzu, um sicherzustellen, dass der Virenschutz die Leistung der virtuellen Desktops nicht beeinträchtigt.

Fazit

Die Kombination von BICEP und PowerShell bietet eine leistungsstarke und flexible Möglichkeit, FSLogix-Dateifreigaben in Azure Virtual Desktop automatisch bereitzustellen und zu konfigurieren. Mit diesem Ansatz können Unternehmen die Vorteile von FSLogix nutzen, ohne sich um die Komplexität der manuellen Konfiguration kümmern zu müssen. Das spart Zeit und Ressourcen und ermöglicht es, sich auf wichtigere Aufgaben zu konzentrieren. Probier es aus und erlebe, wie einfach es sein kann, FSLogix und Azure Virtual Desktop zu kombinieren!

Dominic Böttger

Author

INSPIRATIONLABS

Technologie inspiriert durch Euer Potenzial!
Wir gestalten IT so, dass Teams endlich ihr ganzes Potenzial nutzen können.

Jetzt oder nie!

Unsere Kund:innen

Kontaktiere uns

Du hast eine Frage oder Interesse an einem unverbindlichen Erstgespräch? Schreib uns!

Vielen Dank, wir haben Deine Anfrage erhalten und melden uns bald!
Oops! Something went wrong while submitting the form.