Question Script nouvel utilisateur AD + dossier personnel dudit nouvel utilisateur

Plus d'informations
il y a 1 an 11 mois #32239 par Adel
Bonjour,

je dois créer un script dans le cadre d'un "devoir" , cela fait des jours que j'essaye mais j'ai vraiment du mal à trouver la logique à adopter, en plus d'être un débutant sur powershell.

Comme le titre l'indique, mon but et de pouvoir créer un nouvel utilisateur ainsi que son dossier perso à chaque fois que j'exécute le script. Et lorsque l'utilisateur ouvre une session, il est sensé trouver son dossier perso connecter sur le lecteur Z de la machine sur laquelle il se connecte.

J'utilise donc une VM Windows Server.


Mon script une fois lancé demande les infos sur le nouvel utilisateur (nom, login, mdp)

$nom = Read-Host "Nom"
$login = Read-Host "Login"
$pwd = Read-Host "Password"

New-AdUser -Name $nom etc...


Et c'est là que je commence à paniquer. Dans la version actuelle je pars sur l'idée de lancer une instruction pour la création d'un dossier qui récupère la variable $nom, seulement il semblerait qu'on ne puisse pas terminer par $ sur la variable pour signifier que c'est un dossier personnel.

Bon du coup l'instruction suivante ce serait de partager ce dossier ?

Je me suis servi de plusieurs cours/tuto, notamment celui-ci pour le partage de dossier www.it-connect.fr/chapitres/creation-dun...e-smb-en-powershell/ et aussi celui ci pour connecter un lecteur réseau www.it-connect.fr/chapitres/creer-un-lec...eseau-en-powershell/

Mais je dois passer à côté d'un truc.

Je joints une capture de mon code encore vide..

Merci d'avance. 
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 11 mois #32240 par Philippe
salut Adel,

alors je vais essayer de trouver ta question !!
>> Bon du coup l'instruction suivante ce serait de partager ce dossier ?
oui bien sur, c'est évident non ? sinon comment y avoir accès depuis un autre ordinateur !
tu ne précise pas  ton niveau en informatique mais on va supposé que tu es tech ou admin system

- - - > petite info ne pas donner de copie d'écran d'un code/texte/erreur c'est illisible après la compression du site,  faire un simple copier coller du texte !!

ATTENTION : tu doit executer le script sur la machine qui accueil le partage

si tu veux mettre un dollars $ à la fin du nom du dossier, c'est possible (mais le $ est utilisé au niveau nom de partage, pas du dossier, pour le rendre invisible dans le voisinage réseau)
ce code fonctionne sans problème chez moi
$dossier = "toto"
New-Item -ItemType Directory -Path  "C:\temp\$dossier$" 
par contre il ne faut rien mettre après le dernier $
si ça ne fonctionne pas, quel version de powershell utilise tu ? peux tu le mettre à jour ? sur quel OS ?
j'ai considéré qu'il y a le $ à la pour le reste des explications 

tu as donc trouver comment faire pour créé un dossier mais tu dois aussi lui donner des droits d'accès à ce dossier ! 
comme l'indique le tuto que tu nous a donner, tu dois installer un module "NTFSSecurity" pour pouvoir faire le job simplement. 
tu n'a besoin de le faire qu'une seule fois, et en dehors du script 
la encore suivant la version de powershell tu risque d'avoir des problèmes, tiens nous au courant
Install-Module NTFSSecurity

ceci fait, tu va pouvoir faire le travail de permission dans ton script : 
Add-NTFSAccess -Path "C:\PartagesPerso\$nom$" -Account "$login@axeplane.loc" -AccessRights Modify
voila ton utilisateur a accès au dossier "localement"

viens enfin le partage 
toujours dans ton tuto il y a la ligne,  :
New-SmbShare -Name $nom -Path "C:\PartagesPerso\$nom$" -ChangeAccess "$login@axeplane.loc" 
ça crée le partage et les droits d'accès à l'utilisateur en modification (changeAccees)
j'ai pas le $ à la fin du partage a toi de voir si tu veux le rendre invisible

mais le plus utile vu la phrase "il est sensé trouver son dossier perso connecter sur le lecteur Z" 
il faut rajouter rajouter la création du lecteur dans le profil AD au moment de la création de l'utilisateur ou après 
new-aduser -Name $nom .....  –HomeDrive "Z" –HomeDirectory "\\nom_du_serveur\$nom" 
il faut mettre le nom du serveur ou ce trouve le partage 
voila j'espère que tu va t'en sortir avec tous ça 
 

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 11 mois #32241 par Adel
Tout d'abord merci infiniment d'avoir pris le temps de répondre.
Je m'en vais donc creuser toutes ces précieuses informations et reviendrai vers toi en cas de souci, ou même simplement pour faire part de mon avancée.

Je vais cependant répondre à certaines parties de ton message qui m'interpellent.

salut Adel,

alors je vais essayer de trouver ta question !!
>> Bon du coup l'instruction suivante ce serait de partager ce dossier ?
oui bien sur, c'est évident non ? sinon comment y avoir accès depuis un autre ordinateur !
tu ne précise pas  ton niveau en informatique mais on va supposé que tu es tech ou admin system
[/quote]

C'est vrai, j'ai juste précisé "devoir". Je suis en fin de formation, et le dernier projet que je dois rendre couvre certains domaines vus jusqu'à présent comme la config de Windows Server+ install de rôles et services, Active Directory, stratégies de groupe... et bien entendu du powershell que j'utilise quasiment pour la première fois, d'où mes questions un peu bêtes haha


ATTENTION : tu doit executer le script sur la machine qui accueil le partage

Oui, j'ai disque (E:\) qui sert justement de stockage pour les partages communs aux différents services de l'entreprise ainsi qu'aux dossiers perso.


si tu veux mettre un dollars $ à la fin du nom du dossier, c'est possible (mais le $ est utilisé au niveau nom de partage, pas du dossier, pour le rendre invisible dans le voisinage réseau)
ce code fonctionne sans problème chez moi
$dossier = "toto"
New-Item -ItemType Directory -Path  "C:\temp\$dossier$" 

par contre il ne faut rien mettre après le dernier $

Ah je crois y voir plus clair, car je faisais appel à la variable du nom de l'utilisateur...
Du coup je crée une nouvelle variable comme dans votre exemple pour le nom du partage ? Je voulais que chaque utilisateur trouve un dossier à son nom.
Donc si j'ai bien compris je rajouterai une question de type
$partage = Read-Host "Nom du dossier perso"

Et je ferai appel à cette variable pour l'instruction de la création du dossier et du choix de son nom c'est bien ça ?

si ça ne fonctionne pas, quel version de powershell utilise tu ? peux tu le mettre à jour ? sur quel OS ?

Je pense que cela va fonctionner grâce à ces explications, mais après vérification de la version ça me sort : 5.1.20348.643

j'ai considéré qu'il y a le $ à la fin pour le reste des explications 

tu as donc trouver comment faire pour créé un dossier mais tu dois aussi lui donner des droits d'accès à ce dossier ! 
comme l'indique le tuto que tu nous a donner, tu dois installer un module "NTFSSecurity" pour pouvoir faire le job simplement. 
tu n'a besoin de le faire qu'une seule fois, et en dehors du script 
la encore suivant la version de powershell tu risque d'avoir des problèmes, tiens nous au courant
Install-Module NTFSSecurity

ceci fait, tu va pouvoir faire le travail de permission dans ton script : 
Add-NTFSAccess -Path "C:\PartagesPerso\$nom$" -Account "$login@axeplane.loc" -AccessRights Modify
voila ton utilisateur a accès au dossier "localement"

Dans mon cas je peux (dois?) mettre la variable $partage$ non ? Sachant que la variable "$nom" est déjà utilisé pour le "-name" .


Quoi qu'il en soit y'a déjà assez de matière pour que je puisse avancer un peu, là il est un peu tard donc si je finis pas ça dans la nuit je reviendrai demain avec mon code, merci encore pour le temps consacré à m'aider ! !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 11 mois #32242 par Adel
Bon du coup voici mon code, il fonctionne, sauf la connexion du lecteur Z pour l'utilisateur, je ne sais pas ce qui coince, le dossier existe bien car je peux y aller via le chemin \\SRV1\nomdupartage$ mais le lecteur Z n'apparait pas dans "Ce PC" :/

#variables

$nom = Read-Host "Nom"
$login = Read-Host "Login"
$pwd = Read-Host "Password"
$partage = Read-Host "Nom du dossier partagé"


#commande de création nouvel utilisateur 

New-AdUser -Name $nom -SamAccountName $login -UserPrincipalName $login@axeplane.loc -AccountPassword (ConvertTo-SecureString -AsPlainText $pwd -Force) -ChangePasswordAtLogon $true -HomeDrive "z" -HomeDirectory "\\SRV1\$partage$" -Enabled $true



#Création d'un dossier perso au nom de l'utilisateur

New-Item -Path "E:\PartagesPerso\$partage$" -ItemType Directory


#Droit d'accès/Permission

Add-NTFSAccess -Path "E:\PartagesPerso\$partage$" -Account "$login@axeplane.loc" -AccessRights Modify


#Partage du dossier

New-SmbShare -Name $partage$ -Path "E:\PartagesPerso\$partage$" -ChangeAccess "$login@axeplane.loc" 



Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 11 mois #32243 par Bob
Salut Adel je pense qu'on est étudiant au même endroit vu ton script (axeplane) 

J'ai aussi fini le script mais y'a un truc qui me manque, quand on crée l'user on doit aussi l'intégrer à son unité d'organisation (RH, Marketing etc).

Avec une ligne simple -Path "OU=RH,DC=axeplane,DC=LOC" dans New-ADUser cela fonctionne mais c'est pas ce qui est demandé (pas d'info en brut) on doit rendre cela interactif bref, j'imagine qu'il faut utiliser une variable $ou et la coupler avec un read host mais je vois pas, quelqu'un peut m'aider ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 11 mois #32244 par Bob
C'est bon j'ai fini par trouver, tout simplement -Path "OU=$OU,DC=axeplane,DC=LOC"

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.138 secondes
Propulsé par Kunena