Convertir les dossiers virtuels dans Remote Desktop Manager
Méthode manuelle
La suppression des dossiers virtuels peut se faire en modifiant manuellement chaque dossier virtuel, en enregistrant les modifications et en les convertissant en dossiers réels. Cependant, ce processus devient long lorsqu'il s'agit d'un nombre important de dossiers virtuels, car il faut convertir chacun d'eux manuellement.
Méthode PowerShell
Lancez Remote Desktop Manager en tant qu'administrateur en cliquant avec le bouton droit sur l'application et en choisissant Exécuter en tant qu'administrateur.
Sélectionnez les coffres de l'espace de travail dans lesquels vous souhaitez convertir tous les dossiers virtuels dans le volet de navigation.
Ajoutez une nouvelle entrée.
Allez à Session – PowerShell pour créer une entrée de session PowerShell.
Nommez l'entrée et choisissez le dossier dans lequel vous souhaitez la créer.
Réglez l'entrée à Script intégré.
Cliquez sur Modifier le script intégré.
Ajoutez le script suivant :
# Check if Remote Desktop Manager PS module is installed if (-not (Get-Module Devolutions.PowerShell -ListAvailable)) { Install-Module Devolutions.PowerShell -Scope CurrentUser } $beforeAllGroups = Get-Date $vaults = Get-RDMVault foreach ($vault in $vaults) { Set-RDMCurrentRepository -Repository $vault $vaultname = $vault.Name Write-Host "Current Vault is $vaultname" # Get all entries' folder path $sessions = Get-RDMSession $allGroups = @() foreach ($session in $sessions) { # Split the group folder location for each shortcut $tempFolder = $session.Group $shortcuts = $tempFolder.split(';') foreach ($shortcut in $shortcuts) { $folder = $shortcut if ($folder) { $levels = $folder.split('\') $nblevels = 1 $Groupfolder = "" foreach ($level in $levels) { $name = $level if ($nblevels -eq 1) { $Groupfolder = $name } else { $Groupfolder = "$Groupfolder\$name" } $item = New-Object PSObject -Property @{ Name = $name Group = $Groupfolder Levels = $nbLevels } $allGroups += $item $nblevels++ } } } } # Get all folders that exist in the database $groups = Get-RDMSession | Where-Object { $_.ConnectionType -eq "Group" } $realGroups = @() foreach ($group in $groups) { # Split the group folder location for each shortcut $tempFolder = $group.Group $shortcuts = $tempFolder.split(';') foreach ($shortcut in $shortcuts) { $folder = $group.Group if ($folder) { $levels = $folder.split('\') $nbLevels = $levels.Count $name = $group.Name $item = New-Object PSObject -Property @{ Name = $name Group = $folder Levels = $nbLevels } $realGroups += $item } } } # Sort arrays and extract virtual folders $realGroups = $realGroups | Sort-Object -Property Levels, Name, Group -Unique $allGroups = $allGroups | Sort-Object -Property Levels, Name, Group -Unique $results = $allGroups | Where-Object { $realGroups.Group -notcontains $_.Group } $results = $results | Sort-Object -Property Levels, Name, Group -Unique # Convert virtual folders in the database foreach ($group in $results) { $name = $group.Name $folder = $group.Group try { $session = New-RDMSession -Name $name -Group $folder -Type Group -SetSession -ErrorAction Stop Update-RDMUI } catch { # Split the parent folder $tempFolder = $folder.Replace("\$name", '') $parents = $tempFolder.split('\') foreach ($parent in $parents) { try { $exist = Get-RDMSession -Name $parent -ErrorAction Stop } catch { $name = $parent $index = $parents.IndexOf($parent) $folder = "" for ($item = 0; $item -le $index; $item++) { if ($item -gt 0) { $folder += "\" } $folder += $parents[$item] } $session = New-RDMSession -Name $name -Group $folder -Type Group -SetSession Update-RDMUI Write-Host "Virtual folder $name has been successfully created in the database!" } } $name = $group.Name $folder = $group.Group $session = New-RDMSession -Name $name -Group $folder -Type Group -SetSession Update-RDMUI } Write-Host "Virtual folder $name has been successfully created in the database!" } } $afterCreatingGroups = Get-Date Write-Host "Time taken to convert virtual folders: $(($afterCreatingGroups).Subtract($beforeAllGroups).Seconds) second(s)"Cliquez sur OK pour appliquer le script.
Cliquez sur OK pour enregistrer les paramètres de l'entrée et fermer la fenêtre.
Cliquez sur Ouvrir la session pour exécuter l'entrée.
Le script convertira maintenant tous les dossiers virtuels dans les coffres de l'espace de travail.
Mis à jour
Ce contenu vous a-t-il été utile ?