Je crée actuellement des serveur windows virtuel "à la chaine". J'en ai 14 à faire. Pour chaque machine virtuelle, je monte un disque dur D: (Data) sur lequel je crée une arborescence de dossiers avec des droits NTFS précis.
Mettre les droits NTFS prend vraiment beaucoup de temps. Comme les 14 disques virtuel D: auront la même arborescence et les mêmes droits, j'ai récupéré grace à un petit script powershell les droits NTFS, du premier disque que j'ai fait, dans un fichier CSV.
En revanche, je ne trouve pas le moyen, à partir de ce fichier CSV de faire la manip dans l'autre sens.
Tout est virtuel, donc fichier: je pourrais copier le fichier du DDur D: mais les noms de domaine étant differents cela me donne des erreurs.
Et surtout cela ne me dit pas comment utiliser powersell. Si l'on peut exporter les droits NTFS dans un fichier CSV, on doit pouvoir les importer de la même façon, non ?
Salut, Si je comprend bien, ton problème n'est pas d'allouer les droits NTFS. Ça tu sais comment le faire. C'est plutôt de lire le fichier en format CSV et d'exécuter automatiquement les commandes appropriées. Je ne crois pas que ce soit facile avec les scripts .bat ou .cmd d'extraire les champs de ton fichier CSV. Voici ttout de même un lien qui pourrait t'aider à manipuler les chaînes de ton fichier:
Je n'utilise pas PowerShell sur Windows mais plutôt cmd. Sais-tu comment programmer en Python? Je crois qu'il y a un module CSV dans ce langage. (on peut même passer à côté de ce module) Je te donne un script qui faisait autre chose, mais tu risques de rencontrer des problèmes semblables: - @echo off :: Ce script recherche un dossier dont le nom commence par "Py" et le renomme "Python2" for /f "tokens=*" %%d in ('dir /a:d /b') do ( setlocal enabledelayedexpansion set debut=%%d set debut=!debut:~0,2! if "!debut!" equ "Py" ( ren %%d Python2 ) endlocal ) - Voici un autre script pour lire les favoris de Internet Explorer et les convertir en lien html: - @echo off set orig=%userprofile%\Favorites set dest=%userprofile%\Documents\Web-Pages set file=%dest%\Favoris-ie.html rem del %file% cd %orig% for /f "tokens=*" %%p in ('dir /a-d /b') do ( type "%%p" | sed -e "/^URL=/!d;s/^URL=/<a href=\"/;s/$/\">/" >> %file% echo %%p | sed -e "s+.url *$+</a>+" >> %file% ) cd %src%
- Edité par PierrotLeFou 2 février 2022 à 2:40:33
Le Tout est souvent plus grand que la somme de ses parties.
En fait j'ai un fichier csv avec 4 colonnes : Namefolder, ADGrouporUser, Permission, Inherited.
Je souhaiterai creer un scrip qui lit les lignes une par une et qui affecte au dossier NameFolder, les droit NTF (nom,permission,heritage) grâce au trois autres colonnes.
En powershell, bach ou python, peu importe.
En tout les cas merci pour tes scripts. II me servirons toujours.
Es-tu certaine que tu as Python sur ton ordi? Pour t'en assurer: Control+R > cmd > where python > exit Tu devrais obtenir quelque chose du genre: C:\Users\Administrateur\AppData\Local\Microsoft\WindowsApps\python.exe J'ai d'autres versions de Python sur mon ordi, mais celle-là devrait suffire. Je peux appeler python soit sur cmd soit sur PowerShell. Je te poste le script Python dès que j'aurai le temps. Peux-tu me donner le format de tes commandes? Tu devras enregistrer le script dans ton dossier de travail avec le suffixe *.py
Le Tout est souvent plus grand que la somme de ses parties.
Oui j'ai python sur mon PC et je code dans "Visual studio code" s'il le faut. Je gère essentiellement du réseau et du système et code assez rarement sauf pour tenter d'automatiser des taches répétitives.
Voilà le script qui m'a permis de récupérer les droits NTFS dans un fichier CSV:
C'est un script trouvé sur internet. Je sais qu'il existe un module PowerShell NTFSSecurity, qui pourrait permettre de gérer les droits mais je ne trouve pas d'information pour l'automatisation à partir d'une base de donnée (fichier csv). Je ne trouve que des infos pour mettre ou enlever les droits en ligne de code. Ce qui serait aussi long que le faire en mode graphique...
Merci beaucoup pour le temps que tu passes à me répondre.
Je ne suis pas familier avec la commande net share, j'ai donc placé les deux possibilités. On ne peut pas faire de cd D:/ si notre disque système est C: Si le nom de disque n'est pas mentionné dans le nom de dossier, j'ai prévu de le placer (voir disk) On peut séparer les sous-dossiers avec '\' ou '/' ou même mélanger les deux. Windows l'accepte. Dans ton exemple, les quatre champs comportaient un espace après la virgule. J'espère que ce n'est pas la même chose dans ton fichier CSV.
Tu auras le message: KeyError: 'ADGrouporUser' Tu pourras placer le script dans le dossier de ton choix pourvu que tu saches comment y accéder avec cmd.
Pour appeler cmd en mode administrateur: Control+R > cmd > Shift+Control+Enter Supposons que le script s'appelle script.py et le fichier fichier.csv, tu devras taper en invite de commande (cmd): python script.py fichier.csv Note que le suffixe n'a pas besoin d'être '.csv', j'ai testé avec '.t' (non standard) - import os # Module pour commandes système. import sys # Module pour la ligne de commande. import csv # Module pour fichier CSV. # Extraire les paramètres de la commande. params = sys.argv csvfile = params[1] # Nom du fichier à lire. # Nom du disque si pas dans le fichier. disk = 'D:/' #disk = '' # Si le disque est mentionné. # Lire le fichier CSV with open(csvfile, newline='') as file: reader = csv.DictReader(file) for row in reader: # Si les paramètres sont invoqués par mot clé: os.system(f"net share Namefolder={disk+row['Namefolder']} ADGrouporUser={row['ADGrouporUser']} Permission={row['Permission']} Inherited={row['Inherited']}") # Si les arguments sont positionels: #os.system(f"net share {disk+row['Namefolder']} {row['ADGrouporUser']} {row['Permission']} {row['Inherited']}")
- Edité par PierrotLeFou 3 février 2022 à 3:49:59
Le Tout est souvent plus grand que la somme de ses parties.
Je vais tester tout cela et te tiendrais au courant des resultats obtenus.
Si cela fonctionne, j'essayerai de traduire python en powershell !!!
tout un programme....
Patricia
gestion des droits NTFS
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.