IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Vérifier si un dossier est accessible en lecture+écriture ?


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2020
    Messages : 36
    Par défaut Vérifier si un dossier est accessible en lecture+écriture ?
    Bonjour à tous,

    Je voudrais rajouter une condition au script ci-dessous pour qu'il vérifie si le dossier de destination, en plus d'exister, est bien accessible en lecture/écriture avant de démarrer la copie des données.

    Voici mon code :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    set BackupDest=D:\backup
     
    for /f "tokens=*" %%I in ('dir /a:d-h /b "%HomeDrive%\users\*" ^| findstr /b /e /i /l /v /g:"%~dp0exclude_users.txt"') do if exist "%BackupDest%\%%~nI\" (
     
    echo -----------------------------------------
    echo      Sauvegarde du profil : %%~nXI
    echo -----------------------------------------
    echo
     
    xcopy "%%~nXI\Desktop" "%BackupDest%\%%~nXI\Desktop\" /e /i /y
    xcopy "%%~nXI\Documents" "%BackupDest%\%%~nXI\Documents\" /e /i /y
     
    )
     
    pause
    exit
    Existe-t-il un moyen simple de faire cela en essayant de conserver le code actuel dans la mesure du possible ?

    Merci d'avance pour votre précieuse aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Tu peux vérifier les permissions avec la commande ICACLS, voilà ce que ça pourrait donner :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1,2 delims=:" %%A in ('icacls %BackupDest% ^| find "%USERNAME%"') do echo %%B | findstr "F M" && echo Droits de lecture-écriture : OK"

  3. #3
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2020
    Messages : 36
    Par défaut
    Comment puis-je intégrer cela dans mon script et faire en sorte que si des dossiers ne sont pas accessible en lecture+écriture, afficher un message ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Le script est à exécuter avec le clic-droit (exécuter en tant qu'administrateur) :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    chcp 28591 >nul
     
    set BackupDest=D:\backup
    set "exclude=Default Administrateur Public Users"
     
    cd /d %HomeDrive%\Users || exit /b 1
     
    for /f "delims=" %%I in ('2^>nul dir /ad /b ^| findstr /i /v "%exclude%"') do (
     
    	set backup=0
    	if exist "%BackupDest%\%%~I" (
     
    		for /f "tokens=1,2,* delims=:\" %%A in ('2^>nul icacls "%BackupDest%\%%~I" ^| find /i "%COMPUTERNAME%"') do (
     
    			if /i "%%B"=="%USERNAME%" (echo %%C | findstr "F M" >nul && call :sauvegarde "%%~I")
    		)
     
    	if !backup! NEQ 1 (call :permission "%%~I")
     
    	)
     
    )
     
    echo. & pause
    exit /b 0
     
    rem
     
    :sauvegarde
     
    echo.
    echo -----------------------------------------
    echo      Sauvegarde du profil : %~1
    echo -----------------------------------------
    echo.
     
    xcopy "%~1\Desktop" "%BackupDest%\%~1\Desktop\" /e /i /y
    xcopy "%~1\Documents" "%BackupDest%\%~1\Documents\" /e /i /y
     
    set backup=1
     
    goto :eof
     
    rem
     
    :permission
     
    echo. & echo ##### L'utilisateur actuel [%USERNAME%] ne possède pas de permission sur le dossier "%BackupDest%\%~1"
    echo. & echo ##### Continuer la sauvegarde ?
    echo. & pause
     
    call :sauvegarde "%~1"
     
    goto :eof

Discussions similaires

  1. [AC-2010] Vérifier si un dossier est déjà ouvert via l'explorer Windows XP
    Par MWBGC dans le forum VBA Access
    Réponses: 3
    Dernier message: 08/02/2015, 18h54
  2. Réponses: 4
    Dernier message: 26/04/2011, 16h08
  3. Vérifier qu'un contrôle est accessible ou non dans la page
    Par stroumfs dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/11/2009, 16h55
  4. Vérifier qu'un dossier est vide
    Par coincoin22 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 26/07/2007, 16h58
  5. [Excel] Vérifier si un classeur est en lecture seule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/01/2006, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo