Export d'une BD complète en xml via un script

Export d'une BD complète en xml via un script

avatar

Bonjour,
Je me demande s'il existe un script pour faire des exports de base de données (notamment une base Maria Db) vers un fichier xml et ma problématique revient à faire cela de façon automatique et périodique.

All Comments (17)

avatar

Bonjour,

Oui c'est possible avec Powershell
Les commandes devraient ressembler à :
# extraire toutes les connections :
$Sessions = Get-RDMSession
Export-RDMSession -IncludeCredentials -Path <Votre Chemin d'Accès> -Sessions $Sessions -XML

Étant donné qu'il s'agit d'un script Powershell, il est assez simple de le lancer à partir d'une tâche planifiée.
Technicalités

  • Vous devez avoir RDM installé sur la machine qui lancer la tâche
  • RDM doit être configuré sur la source de données avec un compte sans 2FA et ne nécessitant aucune interactions (pour des raisons évidentes), et ayant toutes les permissions requises
  • N'oubliez pas d'importer le module powershell (par default Import-Module "C:\Program Files (x86)\Devolutions\Remote Desktop Manager\RemoteDesktopManager.PowerShellModule.psd1"
  • Vous pouvez ajouter un parametre -Password a la cmdlet Export-RDMSession (recommandé)


En espérant que ce soit d'une aide suffisante.

Cordialement,

Alex Belisle

avatar

Svp j'ai ça comme erreur :
undefined
Le chemin daccès c'est bien celui dans le quel l'appli RDM utilisée se trouve ?

avatar

Bonjour,
Effectivement, la commande Import-Module "C:\Program Files (x86)\Devolutions\Remote Desktop Manager\RemoteDesktopManager.PowerShellModule.psd1" doit s'exécuter avec succès pour que les commandes soient accessibles.
à titre de test, vous pouvez à partir de RDM utiliser Tools -> Powershell (RDM CmdLet) et voir si vous vous rendez plus loins.
undefined
Merci de nous tenir au courant!

Cordialement,

Alex Belisle

avatar

Oui merci j'y avais pas fait attention.
Du coup si je veux adapter le code pour pouvoir spécifier le nom du fichier de sortie et sa destination ?

avatar

Bonjour,

Les commandes Powershell pour lancer un invite sont standard (pour un chemin d'accès, ou pour un mot de passe sur le fichier, ce que je recommande chaudement), vous n'aurez aucun mal à les trouver, Powershell est largement documenté.

Merci!

Cordialement,

Alex Belisle

avatar

Bonjour,
c'est noté par contre j'ai cette erreur qui revient lorsque j'importe le module adéquat depuis une vm :
undefined

comment peut on faire

avatar

Bonjour,

Lorsque RDM est installé dans son emplacement par défaut, nous n'Avons techniquement rien à faire en plus pour que ca fonctionne.
Cependant, lorsqu'install custom, ou en portable, il s'y trouve des fichiers à débloquer.
J'utilise la méthode suivante pour le faire:
dir <chemin d'acces de Remote desktop manager>\* | unblock-file -verbose

Merci de me confirmer que ca fonctionne.

Cordialement,

Alex Belisle

avatar

Bonjour,
ça fonctionne effectivement et aussi faut avoir au moins powershell 3.0
Merci

avatar

Bonjour!

Merci de votre retour, n'hésitez pas à nous revenir si vous avez d'autres questions ou soucis!

Cordialement,

Alex Belisle

avatar

Bonjour,
En effet, je constate que toutes mes données ne sont pas exportées (quand j'execute sans -Pasword); je ne sais pas si c'est parce que je ne passe pas l'utilisateur et le mot de passe et du coup j'ai l'impression d'avoir un export partiel de la source de données sans tenir copte de celles autorisées par chaque utilisateur. Je ne sais pas s'il s'agit d'une limite.
En rajoutant par contre -Password à la cmdlet Export-RDMSession (sans préciser d'options pour l'utilisateur), j'ai un export que je trouve non exploitable (données sur une seule ligne).

avatar

Bonjour,

L'option "-password" est utilisée pour définir un mot de passe sur le fichier .RDM.
Ce mot de passe encrypte le fichier, et c'est la raison pour laquelle si vous ouvrez le fichier par un éditeur de text, le format est inutilisable.

Est-ce que vos sessions manquantes sont des Credentials entries? (avez-vous ajouté le -IncludeCredentials dans la commande)

Merci de nous tenir au courant.

Cordialement,

Alex Belisle

avatar

Bonjour,
En effet, les Credentials entries sont inclues par contre les groupes de securité non. Y'a t'il une option pour inclure ces derniers?

Merci

avatar

Bonjour,

Tout d'abord, les groupes de sécurité pour définir les permissions ne sont plus recommandées, à ne pas confondre avec les Rôles.
Je suggère donc de profiter de cette "migration" pour s'en défaire.
De plus, lors de la réimportation, si cette option était cochée, la cible ne comportant pas les même GUID de Groupe de sécurité (à moins d'actions supplémentaires), l'importation comportera plusieurs erreurs disant que les groupes de sécurité n'existent plus.

Lorsque vous exporter, je suggérerais d'utiliser un profil Administrateur de la source de données.

Cordialement,

Alex Belisle

avatar

Bonjour,
C'est effectivement avec un profil administrateur que j'observe un manque d'entrées dans le fichier exporté. Je ne sais pas s'il faut renseigner les user et mot de passe du compte administrateur dans le script pour avoir toutes les entrées.
Merci

avatar

Bonjour,

Techniquement, le Module Powershell chargera le profile de l'utilisateur courant de RDM.
Par example , si vous avez l'option de toujours demander la source de données au démarrage de RDM, en chargeant le module vous serez également invité à choisir votre source de données.

Est-ce que les entrées manquantes sont toujours les même? (si oui de quel type d'entrées parlons-nous?)
Est-ce que faire l'exportation de tout manuellement par l'application contient ses entrées manquantes?

Merci de nous laisser savior.

Cordialement,

Alex Belisle

avatar

Bonjour,
Je ne vois pas les entrées qui manquent mais j'arrive à voir une différence du nombre d'entrées entre les exports faits à la main et ceux fait via le script powershell.
Il s'agit du même nombre à chaque fois.

Merci

avatar

Bonjour,

Si vous faites références au compte qui se trouve à côté de la barre de recherche, il ne prend pas en compte les dossiers.
Voyez plutôt dans Help -> Diagnostic, Onglet Data source. Vous y verrez le compte détaillé des sessions, vous pouvez donc calculer Total - Folders, et vous devriez arrivez au nombre indiqué dans la barre état.
forum image

forum image
En espérant que ca explique les différences que vous notées.

Cordialement,

Alex Belisle