Récupération d'info servant de variable ( dos)

Fermé
litacan - 19 juil. 2022 à 00:46
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 20 juil. 2022 à 20:29

Bonjour,

je voudrais récupérer le nom d'un utilisateur dans une variable qui sera la même dans un bat.
je pense que ça devrait être possible mais je ne vois pas comment faire... ( mon niveau de programmation est très bas, voir inexistant )

ça devrait donner un truc du genre...

@echo off
echo Entrer le nom de l'utilisateur :
set /p Utilisateur=

echo %USERNAME%

MD "\\PC-SALON\test$\%USERNAME%\test"
iCACLS  "\\PC-SALON\test$\%USERNAME%\scan" /deny %USERNAME%:(DE)

le bat me demande bien le nom d’utilisateur mais rien

Si quelqu'un a la solution :)
Merci d'avance


Windows / Firefox 102.0

A voir également:

2 réponses

brucine Messages postés 18374 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 27 décembre 2024 2 726
19 juil. 2022 à 08:33

Bonjour,

sur la forme, ta ligne echo est redondante, écrire:

set /p Utilisateur=Entrer le nom de l'utilisateur:

Sur le fond, la variable système %USERNAME% retourne le nom utilisateur de la machine à partir de laquelle le script est lancé alors que tu définis une variable personnalisée Utilisateur qui est celui du poste cible.

Tu dois donc remplacer dans ce qui suit %USERNAME% par %Utilisateur%

Par contre, dans le contexte, il n'y a pas de raison que l'action soit rien: il y aura probablement création d'un dossier sur la machine, mais pas celui que tu veux.

Il faut également envisager l'hypothèse où ce dossier existe déjà, la première ligne devant alors être:

IF NOT EXIST (chemin) MD (Chemin)

Enfin, après avoir rappelé que ICACLS doit être exécuté à partir d'un compte administrateur ou en avoir pris possession, à tester, je ne suis pas certain de l'interprétation du caractère $ dans un batch, si ça ne fonctionne pas malgré la correction précédente, il faudra tester sur un autre dossier pour verrouiller cette hypothèse, et utiliser un caractère d'échappement si la conclusion est bien que $ est l'objet du délit.

Les tests éventuels doivent être menés en commentant echo off (REM @echo off) et en introduisant une ligne pause après chaque instruction pour localiser les erreurs éventuelles.

0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
Modifié le 20 juil. 2022 à 20:30

Bonjour,

Je ne pense pas que la commande MD/MKDIR supporte les chemins UNC.

Il faut en passer par les commandes PUSHD/POPD si le partage est accessible sans avoir besoin de s'authentifier.

S'il y a besoin d'authentification alors il faut utiliser NET USE pour créer un lecteur réseau.



0