Showacls.exe et net.exe fournissent la base du script GetAccess.cmd. Celui-ci produit un fichier texte donnant la liste de tous les fichiers et dossiers auxquels l'utilisateur ou le groupe spécifié a accès dans le répertoire spécifié et tous ses sous-répertoires. Quand vous lancez le script, vous devez fournir trois paramètres :
GetAccess.cmd
le nom de l’utilisateur ou
le nom du groupe pour lequel vous effectuez
l’audit (username_or_groupname),
le chemin vers le répertoire
que vous voulez scruter (path_
to_scan) et le nom du fichier de sortie
(outputfile). Vous pouvez inclure le
commutateur /d facultatif si vous voulez
que l’audit ne porte que sur les dossiers
et pas sur les fichiers. Vous pouvez
aussi inclure le commutateur
/verbose facultatif si vous voulez que la
console affiche les actions du script au
fur et à mesure. Ainsi, la commande
qui lance le script a la syntaxe suivante :
GetAccess.cmd
username_or_groupname
path-to-scan outputfile
[/d] [/verbose]
La logique du script est simple. Elle
fonctionne de la manière suivante :
- Le script supprime le fichier de sortie
s’il existe déjà . Pour cela, le script
utilise la commandeIf Exist %outputfile% Del
%outputfile% /q - Le script prépare les commutateurs
pour la commande Dir. Comme le
montre le listing 2, la variable dirflag
définit les commutateurs d’après les
paramètres que vous fournissez
quand vous lancez le script. Le commutateur
/s ordonne à la commande
Dir de montrer tout le contenu, y
compris les sous-répertoires et le
commutateur /b ordonne à la commande
Dir de présenter la sortie
dans le format le plus simple (c’està –
dire, sans information d’en-tête ou
de résumé). Si vous avez défini le paramètre
/d quand vous avez lancé le
script, le script ajoute le commutateur
/ad pour indiquer que vous ne
voulez afficher que les répertoires.
Le script utilise la variable file
folder pour présenter correctement
l’information d’état sur l’écran.
Cette information indique si le script
est en train de traiter des fichiers et
des dossiers ou uniquement des
dossiers. - Le script stocke le nom d’utilisateur
ou le nom de groupe spécifié et
deux noms de groupes intégrés
(c’est-à -dire, Everyone et Authenticated User) dans un fichier temporaire
(%temp%\getaccess.$$$). Le
script utilisera ultérieurement les
noms dans ce fichier conjointement
à showacls.exe pour déterminer si
l’utilisateur ou le groupe spécifié a
accès à un fichier ou dossier.
Comme le montre le listing 3, le
script utilise la commande Net User
pour déterminer si le compte spécifié
est un compte utilisateur ou un
compte groupe. Si la commande Net
User ne renvoie pas une erreur, c’est
qu’on a affaire à un compte utilisateur
; dans le cas contraire, le
compte spécifié est considéré comme
un compte groupe. S’il s’agit
d’un compte utilisateur, le script
passe à l’étape 4. S’il s’agit d’un
compte groupe, le script saute à
l’étape 5. - Quand le compte spécifié est un
compte utilisateur, le script ajoute
au fichier temporaire les groupes
auxquels l’utilisateur appartient. Le
code du listing 1, dont j’ai déjà parlé,
accomplit cette tâche. - Le script obtient les noms des fichiers
et des dossiers (ou des seuls
dossiers si vous avez inclus le commutateur
/d) dans le répertoire spécifié.
Le script utilise la variable dirflag
qu’il a définie précédemment
conjointement aux commandes For
et Dir pour obtenir ces noms :For /f « tokens=* » %%i in (‘Dir
%dirflag% %path_to_scan%’)
Do Call:checkaccess « %%i »La commande For ordonne au script
de prendre chaque ligne dans la sortie
de la commande Dir, de stocker
cette ligne dans la variable %i, et
d’exécuter le code dans le module
:checkaccess pour l’appliquer à
cette ligne. - Les modules :checkaccess et :hasaccess
constituent la partie la plus importante
du script parce qu’ils identifient
les fichiers et les dossiers
auxquels l’utilisateur ou le groupe a
accès. Bien que le code soit important,
il est simple et direct, comme le
montre le listing 4.
Une fois que le script a passé le nom
du fichier ou du dossier au module
:checkaccess, le module stocke
le nom dans une variable nommée
target. Le module :checkaccess fait
ensuite une boucle au travers de
chaque compte dans le fichier temporaire
et lui applique le module :hasaccess.
Le module :hasaccess compare
la sortie de la commande
Showacls pour le fichier ou le dossier
en cours au compte courant
dans le fichier temporaire en filtrant
la sortie par l’intermédiaire de deux
commandes Find.
Si l’une ou l’autre des commandes
Find renvoie un code sortie de 0, il y
a correspondance. Dans ce cas, le
script envoie ce nom de fichier ou
de dossier au fichier de sortie et à
l’écran de console.
Téléchargez cette ressource
Guide de technologie 5G pour l’entreprise
Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.