Question
Modification TSprofilePath AD
- Gilles
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 21
- Remerciements reçus 0
il y a 10 ans 10 mois #17056
par Gilles
Réponse de Gilles sur le sujet Re:Modification TSprofilePath AD
Bonjour,
j'ai un problème similaire je n'arrive pas à mettre à jour le champ \"TSprofilePath\".
Quelqu'un peut-il poster un début de code car je n'arrive pas à resoudre mon problème.
Cordialement
Gilles<br><br>Message édité par: Palpelune34, à: 21/02/14 13:09
j'ai un problème similaire je n'arrive pas à mettre à jour le champ \"TSprofilePath\".
Quelqu'un peut-il poster un début de code car je n'arrive pas à resoudre mon problème.
Cordialement
Gilles<br><br>Message édité par: Palpelune34, à: 21/02/14 13:09
Connexion ou Créer un compte pour participer à la conversation.
- Franck B-A
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
il y a 10 ans 10 mois #17060
par Franck B-A
Réponse de Franck B-A sur le sujet Re:Modification TSprofilePath AD
Je l' utilise dans un script de migration.
La partie suivante devrait aider :
(ajouter et modifier vos variables)
[code:1]
#
#
# 2: DEBUT Bloc Ajout des Droits #
#
#
#
$AddACL = {
$GetUser = Get-ADUser \"$homes\"
$UserCNX = $GetUser.UserPrincipalName
try { $ace = New-Object Security.AccessControl.FileSystemAccessRule( \"$UserCNX\", \"FullControl\", \"ContainerInherit, ObjectInherit\", \"None\", \"Allow\"«») }
catch { $ace -eq $null }
if ($ace -ne $null) {
$acl = Get-Acl $RepCible
$acl.AddAccessRule($ace)
Set-Acl $RepCible $acl
Write-Host -ForegroundColor DarkGreen \"ajout ACL OK sur $RepCible\"
}
Else {Write-Host -ForegroundColor RED \"Erreur sur ajout ACL\" }
#### Suppression TerminalServicesProfilePath
$TSppValue = \"\"
$user.psbase.invokeSet(\"TerminalServicesProfilePath\",$TSppValue)
$user.setinfo()
Write-Host \"TerminalServicesProfilePath supprimé\" `n
#### fin TerminalServicesProfilePath
}
#
try { $UserDN = (([adsisearcher]\"(&(samaccountname=$homes)(objectcategory=user))\"«»).FindOne()).Properties[\"distinguishedname\"] }
catch { $UserDN -ne $null }
if ($UserDN -eq $null){ Write-Host -foregroundcolor RED \"Utilisateur $homes introuvable\" `n ;return }
# vérification Groupe de REDIR dans l'AD #
#.........................................#
Else { Write-Host -foregroundcolor Green \" Migration de $homes \"
try { $GrpDN = (([adsisearcher]\"(&(samaccountname=$GrpREDIR)(objectclass=group))\"«»).FindOne()).Properties[\"distinguishedname\"] }
catch { $GrpDN -ne $null}
if ($GrpDN -eq $null) {Write-Host -foregroundcolor RED \"Groupe introuvable\" `n ;return }
Else {
$User = [ADSI](\"LDAP://$DCName/\" + $UserDN)
$group = [ADSI](\"LDAP://$DCName/\" + $GrpDN)
try { $AddUser =$group.member -contains $UserDN}
catch { $AddUser }
if ($AddUser){ write-host -foregroundcolor DarkGreen \"L'utilisateur $homes est deja dans le groupe $GrpREDIR \" }
Else {
$GrpDN = (([adsisearcher]\"(&(samaccountname=$GrpREDIR)(objectclass=group))\"«»).FindOne()).Properties[\"distinguishedname\"]
$group = [ADSI](\"LDAP://$DCName/\" + $GrpDN)
$group.add(\"LDAP://$DCName/\" + $UserDN)
$group.SetInfo()
write-host \"L'utilisateur $homes appartient maintenant au groupe $GrpREDIR \" }
&$AddACL | Out-Null
[/code:1]
La partie suivante devrait aider :
(ajouter et modifier vos variables)
[code:1]
#
#
# 2: DEBUT Bloc Ajout des Droits #
#
#
#
$AddACL = {
$GetUser = Get-ADUser \"$homes\"
$UserCNX = $GetUser.UserPrincipalName
try { $ace = New-Object Security.AccessControl.FileSystemAccessRule( \"$UserCNX\", \"FullControl\", \"ContainerInherit, ObjectInherit\", \"None\", \"Allow\"«») }
catch { $ace -eq $null }
if ($ace -ne $null) {
$acl = Get-Acl $RepCible
$acl.AddAccessRule($ace)
Set-Acl $RepCible $acl
Write-Host -ForegroundColor DarkGreen \"ajout ACL OK sur $RepCible\"
}
Else {Write-Host -ForegroundColor RED \"Erreur sur ajout ACL\" }
#### Suppression TerminalServicesProfilePath
$TSppValue = \"\"
$user.psbase.invokeSet(\"TerminalServicesProfilePath\",$TSppValue)
$user.setinfo()
Write-Host \"TerminalServicesProfilePath supprimé\" `n
#### fin TerminalServicesProfilePath
}
#
try { $UserDN = (([adsisearcher]\"(&(samaccountname=$homes)(objectcategory=user))\"«»).FindOne()).Properties[\"distinguishedname\"] }
catch { $UserDN -ne $null }
if ($UserDN -eq $null){ Write-Host -foregroundcolor RED \"Utilisateur $homes introuvable\" `n ;return }
# vérification Groupe de REDIR dans l'AD #
#.........................................#
Else { Write-Host -foregroundcolor Green \" Migration de $homes \"
try { $GrpDN = (([adsisearcher]\"(&(samaccountname=$GrpREDIR)(objectclass=group))\"«»).FindOne()).Properties[\"distinguishedname\"] }
catch { $GrpDN -ne $null}
if ($GrpDN -eq $null) {Write-Host -foregroundcolor RED \"Groupe introuvable\" `n ;return }
Else {
$User = [ADSI](\"LDAP://$DCName/\" + $UserDN)
$group = [ADSI](\"LDAP://$DCName/\" + $GrpDN)
try { $AddUser =$group.member -contains $UserDN}
catch { $AddUser }
if ($AddUser){ write-host -foregroundcolor DarkGreen \"L'utilisateur $homes est deja dans le groupe $GrpREDIR \" }
Else {
$GrpDN = (([adsisearcher]\"(&(samaccountname=$GrpREDIR)(objectclass=group))\"«»).FindOne()).Properties[\"distinguishedname\"]
$group = [ADSI](\"LDAP://$DCName/\" + $GrpDN)
$group.add(\"LDAP://$DCName/\" + $UserDN)
$group.SetInfo()
write-host \"L'utilisateur $homes appartient maintenant au groupe $GrpREDIR \" }
&$AddACL | Out-Null
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Gilles
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 21
- Remerciements reçus 0
il y a 10 ans 10 mois #17080
par Gilles
Réponse de Gilles sur le sujet Re:Modification TSprofilePath AD
Merci pour ton aide hélas j'ai toujours un message d'erreur.
Voila un extrait de mon code je ne trouve pas d'ou peux venir le problème j'ai comme l'impression qu'il me manque quelque chose.
#
Configuration Terminal Serveur
$chemintspro = '\\serveur\profil$\'+ $comptewin;
$chemintshom = '\\serveur1\homedir$\'+ $comptewin;
$lettretsdri = \"U:\";
#
Activation du compte
$objUser.psbase.invoke('AccountDisabled', $false);
#
Chemin Accès au Homedir
#$user.psbase.invokeSet(\"TerminalServicesHomeDirectory\",$chemintshom);
#
Chemin Accès au Profil
$objUser.psbase.InvokeSet(\"TerminalServicesProfilePath\",$chemintspro);
#
Lettre du répertoire Homedir
#$user.psbase.invokeSet(\"TerminalServicesHomeDrive\",$lettretsdri);
$objUser.SetInfo();
Voila un extrait de mon code je ne trouve pas d'ou peux venir le problème j'ai comme l'impression qu'il me manque quelque chose.
#
Configuration Terminal Serveur
$chemintspro = '\\serveur\profil$\'+ $comptewin;
$chemintshom = '\\serveur1\homedir$\'+ $comptewin;
$lettretsdri = \"U:\";
#
Activation du compte
$objUser.psbase.invoke('AccountDisabled', $false);
#
Chemin Accès au Homedir
#$user.psbase.invokeSet(\"TerminalServicesHomeDirectory\",$chemintshom);
#
Chemin Accès au Profil
$objUser.psbase.InvokeSet(\"TerminalServicesProfilePath\",$chemintspro);
#
Lettre du répertoire Homedir
#$user.psbase.invokeSet(\"TerminalServicesHomeDrive\",$lettretsdri);
$objUser.SetInfo();
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Franck B-A
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
il y a 10 ans 10 mois #17081
par Franck B-A
Réponse de Franck B-A sur le sujet Re:Modification TSprofilePath AD
et si tu déclare tes variables telles quelles :
(pour tester si cela fonctionne avec 1 compte)
[code:1]$chemintspro = \"\\CheminUNCduServeur\partageProfil\NomDuCompte\"
$chemintshom = \"\\CheminUNCduServeur\partageHome\NomDuCompte\"
$lettretsdri = \"U:\"[/code:1]<br><br>Message édité par: bigkifran, à: 24/02/14 14:10
(pour tester si cela fonctionne avec 1 compte)
[code:1]$chemintspro = \"\\CheminUNCduServeur\partageProfil\NomDuCompte\"
$chemintshom = \"\\CheminUNCduServeur\partageHome\NomDuCompte\"
$lettretsdri = \"U:\"[/code:1]<br><br>Message édité par: bigkifran, à: 24/02/14 14:10
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 10 ans 10 mois #17082
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Modification TSprofilePath AD
Salut,
le message d'erreur indique qu'une interface COM appelées n'existe pas.
D’après ce post il faut enregistrer la DLL tsuserex.dll. A tester donc.
le message d'erreur indique qu'une interface COM appelées n'existe pas.
D’après ce post il faut enregistrer la DLL tsuserex.dll. A tester donc.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gilles
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 21
- Remerciements reçus 0
il y a 10 ans 10 mois #17087
par Gilles
Réponse de Gilles sur le sujet Re:Modification TSprofilePath AD
Merci pour vos réponses.
Je viens de vérifier j'ai bien cette dll sur mes serveurs AD.
Je dois faire une déclaration dans powershell de cette dll ? Car je ne sais pas comment faire.
Je viens de vérifier j'ai bien cette dll sur mes serveurs AD.
Je dois faire une déclaration dans powershell de cette dll ? Car je ne sais pas comment faire.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.120 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Modification TSprofilePath AD