Meilleur auteur de réponses
Ajout en powershell des attributs AD pour les sections TSE

Question
-
Bonjour messieurs, mesdames
Depuis peu je me suis pencher sur la création d'un script powershell pour l'import d'utilisateurs depuis un fichiers CSV , avec la création d'OU, et de sous OU.La création du script est quasi final, car je voudrais ajouter les paramètres TSE dans les profil AD créer auparavant.
J'ai trouver le Script parfait sur internet, seul petit "bémol" je ne sais comment faire remonter l'attribut %username% et la lettre du lecteur, car par défaut il me met la lettre "Z".
Voici le dit script:
$TShdValue = "\\Serveur\Partage$\" $TSppValue = "\\Serveur\Partage1$" $ObjFilter = "(&(objectCategory=person)(objectCategory=User))" $objSearch = New-Object System.DirectoryServices.DirectorySearcher $objSearch.PageSize = 15000 $objSearch.Filter = $ObjFilter $objSearch.SearchRoot = "LDAP://OU=$USRACT,OU=$USRSTAND,OU=$USR,OU=$OU,DC=$DC,DC=$DCL" $AllObj = $objSearch.FindAll() foreach ($Obj in $AllObj) { $objItemS = $Obj.Properties $UserDN = $objItemS.distinguishedname $user = [ADSI] "LDAP://$userDN" $user.psbase.invokeSet("TerminalServicesProfilePath",$TSppValue) $user.psbase.invokeSet("TerminalServicesHomeDirectory",$TShdValue) $user.setinfo() }
Si quelqu'un a une solution, je suis largement preneur.
Script tester sur un 2012R2
D'avance merci de votre réponse
- Modifié Weber Jonathan lundi 23 février 2015 14:56
Réponses
-
salut Emmanuel
essai ceci :
$user.psbase.invokeSet("TerminalServicesHomeDrive","Z:")
- Marqué comme réponse Teodora Sharkova lundi 23 février 2015 13:04
Toutes les réponses
-
-
Bonjour messieurs, mesdames
Depuis peu je me suis pencher sur la création d'un script powershell pour l'import d'utilisateurs depuis un fichiers CSV , avec la création d'OU, et de sous OU.La création du script est quasi final, car je voudrais ajouter les paramètres TSE dans les profil AD créer auparavant.
J'ai trouver le Script parfait sur internet, seul petit "bémol" je ne sais comment faire remonter l'attribut %username% et la lettre du lecteur, car par défaut il me met la lettre "Z".
Voici le dit script:
$TShdValue = "\\Serveur\Partage$\" $TSppValue = "\\Serveur\Partage1$" $ObjFilter = "(&(objectCategory=person)(objectCategory=User))" $objSearch = New-Object System.DirectoryServices.DirectorySearcher $objSearch.PageSize = 15000 $objSearch.Filter = $ObjFilter $objSearch.SearchRoot = "LDAP://OU=$USRACT,OU=$USRSTAND,OU=$USR,OU=$OU,DC=$DC,DC=$DCL" $AllObj = $objSearch.FindAll() foreach ($Obj in $AllObj) { $objItemS = $Obj.Properties $UserDN = $objItemS.distinguishedname $user = [ADSI] "LDAP://$userDN" $user.psbase.invokeSet("TerminalServicesProfilePath",$TSppValue) $user.psbase.invokeSet("TerminalServicesHomeDirectory",$TShdValue) $user.setinfo() }
Si quelqu'un a une solution, je suis largement preneur.
Script tester sur un 2012R2
D'avance merci de votre réponse
Bonjour Jonathan,
Regarde du côté des attributs Homedirectory et HomeDrive. Je pense que ça peut t'aider.
-
-
salut Emmanuel
essai ceci :
$user.psbase.invokeSet("TerminalServicesHomeDrive","Z:")
- Marqué comme réponse Teodora Sharkova lundi 23 février 2015 13:04
-
-
une solution :
foreach ($Obj in $AllObj) { $objItemS = $Obj.Properties $UserDN = $objItemS.distinguishedname $user = [ADSI] "LDAP://$userDN" $dossier = $TShdValue + $Obj.Properties.samaccountname $user.psbase.invokeSet("TerminalServicesProfilePath",$TSppValue) $user.psbase.invokeSet("TerminalServicesHomeDirectory",$dossier) $user.psbase.invokeSet("TerminalServicesHomeDrive","Z:") $user.setinfo() }
- Modifié 6ratgus lundi 23 février 2015 11:53
-
-
-
-
oups petit soucis, je viens de faire un test sur une maquette, et chose très bizarre, tous mes users on le même chemin profil et base...... vu qu'avant j'avais tester avec un user...
y'aurait'il une boucle qui prendrais le paramètre de mon derniers user?
-
-
Hello
Oui je suis nul excuser moi...
le voic au complet :
# !!! Variable a changer en fonction du domaine client !!! $OU="CONTOSO" $DC="contoso" $DCL="local" # Ne pas toucher !!!! $GRP="Groupes" $APP="Applications publiées" $RES="Ressources" $SEC="Sécurité" $PART="Partages" $GLOB="Globaux" $LOCA="Locaux" $SERV="Serveurs" $RES2="Ressources" $CONT="Contacts" $IMP="Imprimantes" $PC="PC" $PORT="Portables Commerciaux" $SRVM="Serveurs Membres" $SRVAD="Autres Serveurs" $SRVTS="Serveurs TSE" $USR="Utilisateurs" $ADM="Administrateurs" $ADMTS="Admins TSE" $ADMSOFT="Admins Soft" $USRSTAND="Utilisateurs Standards" $USRACT="Utilisateurs Actifs" $USRINA="Utilisateurs Inactifs" $USRTS="Utilisateurs TSE" # Import du module Active Directory Import-Module ActiveDirectory # Création de L'OU principal New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$OU" # Création des sous OU Groupes New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$GRP" -Path ("OU=$OU,DC=$DC,DC=$DCL") # OU Groupes New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$APP" -Path ("OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$RES" -Path ("OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$SEC" -Path ("OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") # OU Groupes/Sécurité New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$PART" -Path ("OU=$SEC,OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$GLOB" -Path ("OU=$PART,OU=$SEC,OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$LOCA" -Path ("OU=$PART,OU=$SEC,OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$SERV" -Path ("OU=$SEC,OU=$GRP,OU=$OU,DC=$DC,DC=$DCL") # OU Ressources New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$RES2" -Path ("OU=$OU,DC=$DC,DC=$DCL") # OU Ressources/ New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$CONT" -Path ("OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$IMP" -Path ("OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$PC" -Path ("OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") # OU Ressources/portables commerciaux New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$PORT" -Path ("OU=$PC,OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") # OU Ressources/Serveurs Membres New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$SRVM" -Path ("OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$SRVAD" -Path ("OU=$SRVM,OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$SRVTS" -Path ("OU=$SRVM,OU=$RES2,OU=$OU,DC=$DC,DC=$DCL") # OU Utilisateurs New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$USR" -Path ("OU=$OU,DC=$DC,DC=$DCL") # OU Utilisateurs/ New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$ADM" -Path ("OU=$USR,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$ADMTS" -Path ("OU=$USR,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$ADMSOFT" -Path ("OU=$USR,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$USRSTAND" -Path ("OU=$USR,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$USRTS" -Path ("OU=$USR,OU=$OU,DC=$DC,DC=$DCL") # OU Utilisateurs/Utilisateurs standards/ New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$USRACT" -Path ("OU=$USRSTAND,OU=$USR,OU=$OU,DC=$DC,DC=$DCL") New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion 0 "$USRINA" -Path ("OU=$USRSTAND,OU=$USR,OU=$OU,DC=$DC,DC=$DCL") ################# Import des Users par rapport au CSV ################# (Import-Csv .\newsusers.csv -Delimiter ’;’) | foreach-object { New-ADUser -Name $_.DisplayName -UserPrincipalName ($_.GivenName.Substring(0,1)+$_.Surname + “@$DC.$DCL”) -SamAccountName ($_.GivenName.Substring(0,1)+$_.Surname) -GivenName $_.GivenName -DisplayName $_.DisplayName -Initials ($_.GivenName.Substring(0,1)+$_.Surname.Substring(0,1)) -SurName $_.Surname -Description $_.description -Path ("OU=$USRACT,OU=$USRSTAND,OU=$USR,OU=$OU,DC=$DC,DC=$DCL") -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru -ScriptPath $_.ScriptPath } $TShdValue = "\\DC01\Bases$\" $TSppValue = "\\DC01\Profils$\" $TSDrives = "X:" $DossierBase = $TShdValue + $Obj.Properties.samaccountname $DossierProfil = $TSppValue + $Obj.Properties.samaccountname $ObjFilter = "(&(objectCategory=person)(objectCategory=User))" $objSearch = New-Object System.DirectoryServices.DirectorySearcher $objSearch.PageSize = 15000 $objSearch.Filter = $ObjFilter $objSearch.SearchRoot = "LDAP://OU=$USRACT,OU=$USRSTAND,OU=$USR,OU=$OU,DC=$DC,DC=$DCL" $AllObj = $objSearch.FindAll() foreach ($Obj in $AllObj) { $objItemS = $Obj.Properties $UserDN = $objItemS.distinguishedname $user = [ADSI] "LDAP://$userDN" $user.psbase.invokeSet("TerminalServicesProfilePath","$DossierProfil") $user.psbase.invokeSet("TerminalServicesHomeDirectory","$DossierBase") $user.psbase.invokeSet("TerminalServicesHomeDrive","$TSDrives") $user.setinfo() }
- Modifié Weber Jonathan mardi 24 février 2015 07:33
-
-