![]() |
|
1. Introduction aux procédures de Backup, Restore et Roaming |
| 2. Backup des fichiers de configuration | ||
| 3. Restauration des fichiers de configuration | ||
| 4. Roaming des fichiers de configuration |
1. Introduction aux procédures de Backup, Restore et Roaming |
|
|
Desktop Manager offre la possibilité de manipuler les fichiers de configuration du client Notes afin de les sauvegarder (Backup), de les restaurer (Restore) plus tard sur le poste et de les transférer (Roaming) sur un autre poste afin que l'utilisateur puisse continuer à travailler dans un environnement connu. Les procédures de Backup, Restore et Roaming sont interdépendantes car les fichiers restaurés ou transférés sur une nouvelle machine sont ceux précédemment sauvegardés par la procédure de backup. Il faut donc mettre en place des procédures symétriques, c'est à dire sauvegarder avant les fichiers que l'on souhaite restaurer plus tard. Ces procédures sont souples car non seulement elles peuvent manipuler n'importe quels fichiers de configuration (à vous de définir ce que vous voulez sauvegarder et restaurer) mais aussi car elles sont basées non pas sur du paramétrage rigide mais sur un langage de programmation que vous pourrez adapter à vos besoins et à vos contraintes.
Toutes ces procédures utilisent les Pre-Session Script (pour le Roaming) et les Post-Session Script (pour le Backup et le Restore) afin de manipuler les fichiers de configuration Notes en dehors de la session Notes de l'utilisateur (avant pour le Pre-Script, après pour le Post-Script). Ces fichiers de Script (DskMgrPre.ini et DskMgrPost.ini) sont définis dans les documents de Profile et déployés sur les postes client lors de l'application des Profiles. Pour plus d'information sur la création des fichiers de Script et leur déploiement sur les postes des utilisateurs, se reporter à la section 5.1 : Programmez des Scripts en utilisant l'API Script de Desktop Manager de la documentation.
Nous définissons les termes de Backup, Restore et Roaming comme suit :
|
Backup
|
Sauvegarde d'une partie des fichiers de configuration du client Notes, soit vers un disque réseau, soit sur le disque de la machine. Il est possible de conserver plusieurs sauvegardes (une par jour sur les X derniers jours) | |
|
Restore
|
Restauration de la configuration Notes précédemment sauvegardée, avec la possibilité de restaurer la configuration d'une date antérieure (pas forcément la dernière) | |
|
Roaming
|
Copie des fichiers de configuration sur un poste qui n'est pas celui où les données ont été sauvegardées. Généralement, il faut recopier les fichiers les plus récemment sauvegardés |
La procédure de Backup doit être adapté à l'utilisation des fichiers sauvegardés. Si l'objectif est d'offrir un service de restauration de fichiers avec un historique de X jours, la procédure de Backup doit sauvegarder les fichiers utiles dans des répertoires horodatés, en conservant les X derniers répertoires et purger les plus anciens. Dans le cas d'une restauration de fichiers, on choisit habituellement de sauvegarder les fichiers sur le disque dur local au PC de l'utilisateur. Si la procédure de Backup est mise en place dans une optique de Roaming, il n'y a pas besoin de conserver un historique sur plusieurs jours car seule la sauvegarde la plus récente sera utilisée. Dans ce dernier cas de figure, les fichiers sont sauvegardé sur un disque réseau, afin qu'ils soient accessibles depuis la nouvelle machine. La procédure de Backup est automatique, elle est effectuée tous les jours à la fin de la session Notes, par le composant DskMgr.exe, quand les fichiers ne sont plus modifiés par le client Notes.
Les fichiers habituellement sauvegardés sont les suivants :
- Le fichier Names.nsf
- Le fichier Bookmark.nsf
- Le fichier Desktop.ndk
- Le fichier Notes.ini
- Le fichier ID de l'utilisateur
La procédure de Restore vise à réparer une configuration Notes qui a été endommagée (corruption de fichiers, suppression accidentelle de données...). C'est pour cela que l'on restaure généralement la configuration sauvegardée à une date antérieure, quand la configuration était encore correcte. C'est généralement l'utilisateur qui fait une demande de restauration de ses fichiers auprès de la cellule du Helpdesk. C'est également l'utilisateur qui indique la date de restauration souhaitée, parmi celles disponibles. La procédure de Restore est donc une action visant à satisfaire une demande utilisateur. Elle n'est jamais automatique.
Elle se décompose en une série d'actions utilisateur et helpdesk :
- L'utilisateur contacte le Helpdesk pour signaler un problème ou demander une restauration de sa configuration.
- La personne du Helpdesk crée une Tâche pour restaurer les fichiers de configuration. Il accède à la liste des dates de sauvegarde disponibles pour cet utilisateur. Il valide la date avec l'utilisateur, coche l'option de redémarrage du client Notes et enregistre la Tâche.
- L'utilisateur clique sur l'îcone de la base Desktop Manager du serveur ou redémarre son client Notes.
- L'application Desktop Manager démarre, la Tâche est exécutée, le client Notes est arrêté automatiquement. Le programme DskMgr.exe restaure les fichiers et redémarre le client Notes.
- L'utilisateur saisit son mot de passe et peut travailler avec une configuration restaurée.
La procédure de Roaming est un mécanisme complexe à mettre en oeuvre car il y a plusieurs champs d'application possibles :
- Machine Maître : L'utilisateur dispose d'une machine principale et les fichiers de cette machine sont sauvegardés. Exceptionnellement, il peut devoir travailler sur un autre poste (machine secondaire). Il faut donc recopier les fichiers de configuration sur la machine secondaire pour qu'il puisse y travailler. Aucune sauvegarde n'est effectuée de la machine secondaire. Les fichiers sauvegardés viennent donc d'une seule source et les fichiers de configuration de la machine source ne sont jamais écrasés par les fichiers de la machine secondaire.
- Multi-Machines : L'utilisateur dispose de deux machines, qu'il utilise autant l'une que l'autre. Dès qu'il travaille sur une machine, il veut récupérer automatiquement la configuration la plus récente. Les deux machines sont donc au même niveau et leurs fichiers de configuration sont sauvegardés. A chaque démarrage du client Notes sur une des deux machines, la procédure de Roaming vérifie la présence de fichiers plus récents et, si besoin, les remplace par les nouveaux.
La complexité de la procédure de Roaming vient également du fait que les fichiers ne sont pas restaurés sur la même configuration. Il faut donc modifier les noms des fichiers et leur emplacement mais également modifier le contenu du fichier Notes.ini pour refaire pointer le client Notes sur les bonnes données (Location=). La procédure de Roaming doit être à la fois automatique (ni rien recopier si la configuration actuelle est la bonne) et tournée vers l'utilisateur (demande d'une validation avant d'écraser la configuration actuelle) si une action de mise à jour doit être entreprise.
2. Backup des fichiers de configuration |
|
|
Le répertoire Backup
Le backup des fichiers de configuration consiste donc à recopier certains des fichiers de configuration Notes vers un répertoire du disque de l'utilisateur (Backup Folder) ou sur le réseau (Roaming Folder). Afin de faciliter la localisation de ces deux répertoires, le document User contient deux champs permettant de stocker ces valeurs et d'y faire référence plus tard en utilisant les mot clés @BackupFolder et @RoamingFolder.
Les champs Backup Folder et Roaming Folder du documents User sont présents dans la section Desktop Manager Settings / Desktop Manager Options :
Les valeurs de ces deux champs peut être saisies manuellement dans les documents User ou modifiées en masse via le bouton présent dans la plupart des vues d'Audit de la base Desktop Manager. Ces deux champs existent aussi dans les documents de Setup et les valeurs seront transférées dans les documents User des nouveaux utilisateurs utilisant ce Setup.
Le répertoire Backup est généralement local à la machine afin de bénéficier d'un temps accès rapide et d'un large espace disque. Le répertoire Roaming est généralement sur un disque réseau, afin de pouvoir y accéder depuis d'autres machines. Aucun de ces deux répertoires ne doit se trouver dans la sous-arborescence du répertoire Data Notes, car les fichiers de configuration étant copiés par le système, ils conservent leurs attributs Notes comme le ReplicaID. Il ne faut donc pas plusieurs fichiers ayant le même ReplicaID sous l'arborescence Data du client Notes.
Le Script Post-Session
Une fois le répertoire de backup défini pour les utilisateurs, il suffit de placer les lignes de code du Post-Script dans un des documents Profile (section Execute Script / Post-Session Script) et de cocher l'option Activate a Post-Session Script :
Ces lignes seront transférées dans le fichier DskMgrPost.ini lors de l'application du Profile et à la fin de la session Notes, après la fermeture du client Notes, le composant DskMgr.exe traitera les commandes du fichier DskMgrPost.ini afin de sauvegarder les fichiers dans le répertoire Backup. Pendant ce traitement, une fenêtre avec une barre de progression est affichée à l'écran :
Si la sauvegarde des fichiers couvre une période de plusieurs jours, le répertoire backup sera composé d'un ensemble de sous-répertoires contenant chacun les fichiers sauvegardés pour une journée. Les noms des sous-répertoires contiendront la date de sauvegarde afin de faciliter leur identification :
: Le chemin du répertoire Backup est d:\Backup\Notes\ et les noms des sous-répertoires sont Date_2009_03_26, Date_2009_03_27 et Date_2009_03_28.
Audit du contenu du répertoire Backup
Lors de l'Audit de la configuration Notes du poste par Desktop Manager, l'application va collecter les fichiers présents sous le répertoire Backup. Ces données sont conservées dans le document Notes Install, dans la section Notes Files / Backup Folder :
Exemple de Script pour le backup des fichiers
Le Script suivant est un exemple de Backup des fichiers de configuration Notes (names.nsf, bookmark.nsf, desktop.ndk et notes.ini) avec création de sous-répertoires et conservation de 5 jours d'historique. Cela autorise une restauration des fichiers via une Tâche.
| 1 | #### Init : Don't do anything if there is no Backup Folder | |
| 2 | backup_folder$ = "@BackupFolder" | |
| 3 | If (backup_folder$ = "") Goto END | |
| 4 | ||
| 5 | #### We BACKUP the Notes files | |
| 6 | error$ = SetWindowTitle("Backuping Notes Files...") | |
| 7 | ||
| 8 | ## Prepare Backup sub folder | |
| 9 | year$ = GetCurrentDate("Year") | |
| 10 | month$ = GetCurrentDate("Month") | |
| 11 | day$ = GetCurrentDate("Day") | |
| 12 | backup_path$ = "backup_folder$\Date_year$_month$_day$\" | |
| 13 | ||
| 14 | ## Copy the files | |
| 15 | error$ = CopyFile("@NotesDataFolder\Names.nsf","backup_path$\Names.nsf") | |
| 16 | error$ = CopyFile("@NotesDataFolder\Bookmark.nsf","backup_path$\Bookmark.nsf") | |
| 17 | error$ = CopyFile("@DesktopPath","backup_path$\@DesktopName") | |
| 18 | error$ = CopyFile("@NotesIniPath","backup_path$\Notes.ini") | |
| 19 | ||
| 20 | ## Purge older Backup folders | |
| 21 | error$ = PurgeFolder("backup_folder$","5") |
|
| 22 | END: |
Commentaires :
| Lignes 2 et 3 | On récupère le chemin du répertoire backup via le mot clé @BackupFolder. Si celui-ci est vide, il n'y a rien à faire, on quitte le script. | |
| Ligne 6 | On change le message de la fenêtre qui est affichée à l'utilisateur. | |
|
Lignes 9 à 12 |
On récupère la date du jour (année, mois et jour) et on crée le nom du sous-répertoire en utilisant la date (Date_YYYY_MM_DD) et le chemin du répertoire backup. | |
|
Lignes 15, 16 |
On copie les fichiers présents dans le répertoire data (@NotesDataFolder) : Names.nsf et Bookmark.nsf | |
| Ligne 17 | On copie le fichier Desktop.ndk. Comme son nom dépend du client Notes (Desktop5.dsk, Desktop6.ndk, Desktop8.ndk...), on utilise les mots clés @DesktopPath et @DesktopName. | |
| Ligne 18 | On copie le fichier Notes.ini. Comme sa localisation n'est pas connue d'avance, on utilise le mot clé @NotesIniPath. | |
| Ligne 21 | On purge le répertoire Backup en ne conservant que les 5 sous-répertoires les plus récents. |
Cet exemple est donné à titre pédagogique, afin de comprendre les mécanismes de base à mettre en place pour une sauvegarde de fichiers. Pour disposer d'un Script utilisable, se reporter à l'exemple du Script donné dans la section suivante (cf : Restauration des fichiers de configuration).
Si le Script devait également être utilisé pour mettre en place du Roaming, il conviendrait également de copier les fichiers vers le répertoire Roaming. On y inclurait donc les lignes suivantes :
| 23 | #### Roaming : Don't do anything if there is no Roaming Folder | |
| 24 | roaming_folder$ = "@RoamingFolder" | |
| 25 | If (roaming_folder$ != "") Then | |
| 26 | ## Copy the files to network drive | |
| 27 | error$ = CopyFile("@NotesDataFolder\Names.nsf","roaming_folder$\Names.nsf") | |
| 28 | error$ = CopyFile("@NotesDataFolder\Bookmark.nsf","roaming_folder$\Bookmark.nsf") | |
| 29 | error$ = CopyFile("@DesktopPath","roaming_folder$\@DesktopName") | |
| 30 | error$ = CopyFile("@NotesIniPath","roaming_folder$\Notes.ini") | |
| 31 | EndIf | |
| 32 | ||
| 33 | END: |
3. Restauration des fichiers de configuration |
|
|
Création de la Tâche de restauration
La restauration des fichiers de configuration Notes passe par la création d'une Tâche Mono-Utilisateur par un administrateur ou une personne du Helpdesk en utilisant le bouton présent dans les vues d'Audit et dans les vues Tâche. Comme pour toute Tâche, il faut commencer par renseigner le nom de la personne cible, ce qui connecte à la tâche le résultat de l'audit du poste de l'utilisateur. Il faut se positionner dans la section Execute Script / Restore Files et cocher l'option Restore Backed Up Files :
Il faut ensuite sélectionner la date de restauration souhaitée, parmi celles disponibles dans le document d'audit Notes Install. Les dates affichées dans la fenêtre correspondent aux noms des sous-répertoires présents dans le répertoire Backup. C'est pour cette raison qu'il est souhaitable que les noms des sous-répertoires contiennent la date de sauvegarde des fichiers (cf : Backup des fichiers de configuration) :
Pour finaliser la Tâche, il suffit de modifier les préférences dans la section Task Options afin de forcer la fermeture du client Notes et son redémarrage après la restauration des fichiers. Il peut être intéressant également de ne pas appliquer les Profile et la phase d'Audit afin d'accélérer la fermeture du client. Il est de toute façon inutile de modifier (Profile) et d'auditer (Audit) une configuration Notes qui va être remplacée par de nouveaux fichiers. Les options à cocher sont les suivantes :
Pour démarrer la Tâche, l'utilisateur peut cliquer sur l'icone de la base Desktop Manager présente sur son espace de travail, ou redémarrer son client Notes, si Desktop Manager est configuré pour démarrer à chaque démarrage du client Notes.
Restauration des fichiers
Lorsque la Tâche de restauration des fichiers est exécutée, elle se contente de créer un fichier texte DskMgrRestore.ini contenant le nom du sous-répertoire sélectionné. Ce sous-répertoire contient les fichiers à restaurer. Le fichier DskMgrRestore.ini est créé dans le même répertoire que les fichiers DskMgr.ini et DskMgrPost.ini.
La restauration des fichiers est traitée par le composant DskMgr.exe quand celui-ci exécute les commandes du fichier de Script DskMgrPost.ini, à la fin de la session Notes. Le fichier DskMgrPost.ini contient à la fois les commandes sauvegarde des fichiers (Backup) mais aussi les commandes de restauration des fichiers (Restore). Comme il faut généralement restaurer ce qui a été précédemment sauvegarder, la symétrie des commandes est évidente. Ensuite, si une restauration est demandée, c'est qu'il n'y a pas besoin de sauvegarder les fichiers, car ils vont être écrasés par d'autres.
Le fichier de Script DskMgrPost.ini contient donc généralement 4 parties principales :
- Le code qui détermine si un répertoire backup existe pour cet utilisateur
- Le code qui détermine s'il faut effectuer une sauvegarde (Backup) ou une restauration (Restore)
- Le code qui effectue la sauvegarde des fichiers si c'est cela qui est demandé
- Le code qui effectue la restauration des fichiers si c'est cela qui est demandé
La plupart du temps, c'est la sauvegarde qui est effectuée. La restauration des fichiers d'une date antérieure ne se fait que si une Tâche a été spécifiquement créée pour cela.
Exemple de Script pour la sauvegarde et la restauration des fichiers
Le Script suivant est un exemple de Backup et de Restore des fichiers de configuration Notes. Il reprend les éléments déjà introduits dans le Script de Backup et ajoute la détection de type d'action (Backup ou Restore) et la restauration des fichiers.
| 1 | #### Init : Don't do anything if there is no Backup Folder | |
| 2 | backup_folder$ = "@BackupFolder" | |
| 3 | If (backup_folder$ = "") Goto END | |
| 4 | ||
| 5 | ##################################################################### | |
| 6 | #### Do we Backup or Restore the files ? | |
| 7 | restore_folder$ = GetRestoreFolder() | |
| 8 | If (restore_folder$ = "") Then | |
| 9 | ################################################################# | |
| 10 | #### We BACKUP the Notes files | |
| 11 | error$ = SetWindowTitle("Backuping Notes Files...") | |
| 12 | ||
| 13 | ## Prepare Backup sub folder | |
| 14 | year$ = GetCurrentDate("Year") | |
| 15 | month$ = GetCurrentDate("Month") | |
| 16 | day$ = GetCurrentDate("Day") | |
| 17 | backup_path$ = "backup_folder$\Date_year$_month$_day$\" | |
| 18 | ||
| 19 | ## Copy the files | |
| 20 | error$ = CopyFile("@NotesDataFolder\Names.nsf","backup_path$\Names.nsf") | |
| 21 | error$ = CopyFile("@NotesDataFolder\Bookmark.nsf","backup_path$\Bookmark.nsf") | |
| 22 | error$ = CopyFile("@DesktopPath","backup_path$\@DesktopName") | |
| 23 | error$ = CopyFile("@NotesIniPath","backup_path$\Notes.ini") | |
| 24 | ||
| 25 | ## Purge older Backup folders | |
| 26 | error$ = PurgeFolder("backup_folder$","5") | |
| 27 | Else | |
| 28 | ################################################################# | |
| 29 | #### We RESTORE the Notes files | |
| 30 | error$ = SetWindowTitle("Restoring Notes Files...") | |
| 31 | restore_path$ = "backup_folder$\restore_folder$" | |
| 32 | ||
| 33 | ## Copy the files | |
| 34 | error$ = CopyFile("restore_path$\Names.nsf","@NotesDataFolder\Names.nsf") | |
| 35 | error$ = CopyFile("restore_path$\Bookmark.nsf","@NotesDataFolder\Bookmark.nsf") | |
| 36 | error$ = CopyFile("restore_path$\@DesktopName","@DesktopPath") | |
| 37 | error$ = CopyFile("restore_path$\Notes.ini","@NotesIniPath") | |
| 38 | EndIf | |
| 39 | ||
| 40 | ## End of Script | |
| 41 | END: |
Commentaires :
La sélection entre la sauvegarde et la restauration des fichiers se fait à la ligne 7, en utilisant la fonction GetRestoreFolder. Celle-ci recherche la présence d'un fichier DskMgrRestore.ini (créé par la Tâche de restauration) et en extrait le chemin du sous-répertoire où récupérer les fichiers à restaurer. Si le fichier DskMgrRestore.ini n'existe pas, c'est qu'aucune Tâche de restauration n'a été exécutée. Le Script va donc s'exécuter en mode sauvegarde des fichiers (Backup). Si le fichier est présent et que le sous-répertoire qu'il contient est valide, le Script va s'exécuter en mode restauration des fichiers (Restore).
Les parties du Script gérant la sauvegarde des fichiers (lignes 9 à 26) et la restauration des fichiers (lignes 28 à 37) sont symétriques. On restaure les fichiers précédemment sauvegardés. La partie Backup est un peu plus complexe car elle doit construire le nom du sous-répertoire où copier les fichiers (lignes 13 à 17) et gérer la purge du répertoire (ligne 26).
4. Roaming des fichiers de configuration |
|
|
Le roaming des fichiers sur un poste passe par la mise en place d'un Script Post-Session pour le backup des fichiers de configuration Notes dans un répertoire lié à l'utilisateur. Ce répertoire devra se situer sur un disque réseau afin que la sauvegarde effectuée sur un poste puisse être accessible depuis un autre poste. La première question à trancher est donc de trouver un espace de stockage commun à l'ensemble des postes que l'on veut contrôler. Il faut ensuite mettre en place, via un document Profile, le Script de Post-Session qui va copier les fichiers de configuration dans cet espace de stockage. Il est possible de déclarer ce répertoire au niveau de la ficher User, dans le champ Roaming Folder et d'y faire référence depuis les fichiers de Script au travers du mot clé @RoamingFolder. Le plus facile à mettre en oeuvre est un chemin où le nom de l'utilisateur n'apparait pas, et qui est le même pour tout le monde (ex : u:\Notes\Data\Backup\). Pour écrire le script de backup des fichiers de configuration, se reporter à la section Backup des fichiers de configuration.
Lors de la sauvegarde des fichiers, il est intéressant de créer dans le répertoire Roaming un fichier de paramétrage indiquant le nom des fichiers recopiés. Cela présente un intérêt pour les fichiers dont le nom peut changer entre deux configurations (desktop.dsk, user.id, base mail). Lors de la recopie de ces fichiers de configuration, le code de Script de Roaming utilisera le contenu de ce fichier pour localiser les fichiers dans le répertoire de Roaming. Le contenu du fichier de paramétrage pourrait ressembler à cela :
names=Names.nsf
bookmark=Bookmark.nsf
desktop=Desktop6.ndk
userid=mjohnson.id
notesini=Notes.ini
Le code pour générer le contenu d'un tel fichier (param.txt) au fur et à mesure de la copie des fichiers vers le répertoire roaming est le suivant :
## Copy the files
error$ = CopyFile("@NotesDataFolder\Names.nsf","roaming_folder$\Names.nsf")
error$ = SetFilePrefVar("roaming_folder$\param.txt","names","Names.nsf")
error$ = CopyFile("@NotesDataFolder\Bookmark.nsf","roaming_folder$\Bookmark.nsf")
error$ = SetFilePrefVar("roaming_folder$\param.txt","bookmark","Bookmark.nsf")
error$ = CopyFile("@DesktopPath","roaming_folder$\@DesktopName")
error$ = SetFilePrefVar("roaming_folder$\param.txt","desktop","@DesktopName")
error$ = CopyFile("@UserIDPath","roaming_folder$\@UserIDName")
error$ = SetFilePrefVar("roaming_folder$\param.txt","userid","@UserIDName")
error$ = CopyFile("@NotesIniPath","roaming_folder$\Notes.ini")
error$ = SetFilePrefVar("roaming_folder$\param.txt","notesini","Notes.ini")
La recopie des fichiers sauvegardés (roaming), en lieu et place des fichiers de configuration actuels, passe par la mise en place d'un fichier de Script Pre-Session. Celui-ci se déclare dans un document Profile, au niveau de la section Execute Script / Pre-Session Script :
Les commandes de ce fichier de Pre-Script (DskMgrPre.ini) seront exécutées au démarrage du client Notes, par le composant nDskMgrHook.dll, avant la demande d'authentification. Il est donc possible de recopier les fichiers de configuration avant que Notes n'y accède. Il est également possible d'imaginer une architecture où la recopie des fichiers passerait par une action manuelle de l'utilisateur, en cliquant sur un raccouci de l'espace de travail Windows qui lancerait l'exécution du Script de roaming via le DskMgr.exe (option -SCRIPT). Quelque soit la méthode choisie, Desktop Manager doit être installé sur le poste et le ou les fichiers de roaming déjà présents.
Le fichier DskMgrPre.ini est recherché sur le disque dans les chemins possibles des fichiers Ini de l'utilisateur (répertoire temporaire, répertoire des données utilisateur, répertoire d'installation de l'Exe). Pour une exécution du fichier de Pre-Session Script sur une machine où l'utilisateur ne s'est jamais connecté, il est possible de déployer un Pre-Session Script dans un répertoire autre que ceux par défaut et d'indiquer le chemin de ce fichier à l'aide de la variable DskMgrPrePath du fichier Notes.ini (ex : DskMgrPrePath=u:\Notes\Data\Backup\DskMgrPre.ini). Cette variable est prioritaire par rapport aux chemins par défaut. Il est possible d'utiliser des variables d'environnement Windows (%variable%) ou les Notes @Keywords (@NotesDataFolder ou @NotesProgramFolder) dans la valeur à placer dans le Notes.ini (ex : DskMgrPrePath=%UserProfile\DskMgr\DskMgrPre.ini).
Au regard de toutes les possibilités offertes par les commandes du Script et la diversité des installations Notes, il est difficile de donner un Script générique qui fonctionnera partout et qui répondra immédiatement aux besoins exprimés. Nous fournissons ci-dessous les éléments nécessaires à l'ébauche d'un Script de Roaming.
Le fichier de Script DskMgrPre.ini contient donc généralement 5 parties principales :
- Le code qui détermine s'il existe un répertoire Roaming pour cet utilisateur
Il s'agit de vérifier que le mot clé @RoamingFolder est bien renseigné pour cet utilisateur et que le répertoire existe bien (drive réseau connecté...).
- Le code qui vérifie si cet utilisateur a déjà utilisé cette machine
Dans le cas où l'utilisateur n'a jamais utilisé cette machine, la copie des fichiers de configuration doit être proposée. Pour déterminer si l'utilisateur a déjà utilisé cette machine précédemment, il est possible de vérifier qu'il n'existe aucun fichier User.id appartement à l'utilisateur dans le répertoire Data du client Notes (ou dans le répertoire hébergeant les ID). On teste l'existence du fichier avec la fonction IsFileExist. Le nom du fichier User.id de l'utilisateur est récupérable au moment du Backup avec le keyword @UserIdName et stockable dans un fichier de paramétrage (param.txt) à l'aide de la fonction SetFilePrefVar. On teste donc la présence du fichier UserID de l'utilisateur dans le répertoire Data Notes avec le code suivant :
notes_data_path$ = GetNotesKeyword("@NotesDataFolder")
If (notes_data_path$ = "") Goto END
user_id$ = GetFilePrefVar("roaming_folder$\param.txt","userid")
If (user_id$ = "") Goto END
is_file_exist$ = IsFileExist("notes_data_path$\user_id$")
If (is_file_exist$ = "0") Goto FIRST_INSTALL
- Le code qui vérifie si les fichiers de configuration sauvegardés dans le répertoire Roaming sont plus récents que les fichiers de configuration actuels
Il n'est intéressant de proposer une restauration que si les fichiers de configuration à recopier sont plus récents que ceux déjà en place. Il est possible de tester cela en comparant la date de modification des fichiers similaires (fonction GetFileLastModifDate) comme le bookmark.nsf :
notes_data_path$ = GetNotesKeyword("@NotesDataFolder")
If (notes_data_path$ = "") Goto END
bookmark_config_date$ = GetFileLastModifDate("notes_data_path$\Bookmark.nsf")
bookmark_roaming_date$ = GetFileLastModifDate("roaming_folder$\Bookmark.nsf")
If (bookmark_roaming_date$ > bookmark_config_date$) Goto COPY_FILES
- Le code qui demande à l'utilisateur s'il veut recopier sur le poste les fichiers de configuration
Contrairement à une procédure de restauration qui fait suite à une demande de l'utilisateur, la recopie des fichiers pour le roaming n'est pas forcément attendue par l'utilisateur démarrant son client Notes. Il convient donc de lui demander l'autorisation avant d'écraser sa configuration actuelle. Les étapes précédentes doivent permettent de valider le besoin d'écraser la configuration actuelle par une nouvelle. Il ne faut rien demander s'il n'y a rien à faire sur le poste. La demande à l'utilisateur se fait au moyen de la fonction MessageBox.
answer$ = MessageBox("Restore Notes Files","Do you want to restore the files ?","YESNO")
If (answer$ = "NO") Goto END
- Le code qui copie les fichiers et qui reconfigure le Notes.ini
La recopie des fichiers de configuration passe par des appels à la fonction CopyFile. Pour les fichiers dont le nom n'est pas constant (Desktop, fichier UserID), le chemin du fichier source (dans le répertoire de roaming) sera créé en recherchant le nom du fichier dans le fichier de paramétrage (fonction GetFilePrefVar) :
notes_data_path$ = GetNotesKeyword("@NotesDataFolder")
If (notes_data_path$ = "") Goto END
user_id$ = GetFilePrefVar("roaming_folder$\param.txt","userid")
If (user_id$ = "") Goto END
error$ = CopyFile("roaming_folder$\user_id$","notes_data_path$\user_id$")
Il conviendra ensuite de lier les fichiers recopiés aux valeurs associées dans le Notes.ini. Pour le fichier UserID, il faut modifier la variable KeyFilename à l'aide de la fonction SetNotesIniVar :
error$ = SetNotesIniVar("KeyFileName",user_id$)

Back to Top
Commentaires
0 commentaire
Cet article n'accepte pas de commentaires.