Question Problème TSprofilePath AD

Plus d'informations
il y a 7 ans 3 mois #16865 par Nicolas Guerin
Bonjour voici un script qui marche

[code:1]

import-module activedirectory

#Si chemin = \"lala\" c un chemin local, sinon c'est l'autre (celui avec le lecteur réseaux)

#Chemin connexion lecteur réseau (par exemple I: \\blabla\monservice)
$TShdValue = \"\\lalaa\"

#Chemin d'accès au profil (blabla)
$TSppValue = \"\\test\lala\%username%\"


$ObjFilter = \"(&(objectCategory=person)(objectCategory=User))\"
$objSearch = New-Object System.DirectoryServices.DirectorySearcher
$objSearch.PageSize = 15000
$objSearch.Filter = $ObjFilter
$objSearch.SearchRoot = \"LDAP://ou=Utilisateurs,dc=test,dc=fr\"
$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()
}
[/code:1]

Le problème est que le %username% reste en tant que tel. Hors je veux que ça soit une variable d'environnement et pas une simple chaîne de caractère.


Problème N°2

Je n'arrive pas aussi à récupérer la chaîne de caractère avec la lettre (exemple I: \\test1\service-a]<br><br>Message édité par: Nicolas.18, à: 31/01/14 15:53

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

Plus d'informations
il y a 7 ans 3 mois #16866 par Laurent Dardenne
Salut,
Nicolas.18 écrit:

Le problème est que le %username% reste en tant que tel.

Sous PS utilise $env:username
Nicolas.18 écrit:

Problème N°2

Je n'ai pas compris.

Tutoriels PowerShell

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

Plus d'informations
il y a 7 ans 3 mois #16867 par Nicolas Guerin
En gros je n'arrive pas à récupéré le champs de l'atribu TSprofilePath AD

pour ce qui est de $env:username, ça marche, mais ça récupere mon propre username, or je veux mettre celui de l'utilisateur.


J'ai pensé à utiliser

[code:1]$usersama = $objItemS.sAMAccountName[/code:1]

Mais pour le moment rien.

Je continu mes recherche et mes test

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

Plus d'informations
il y a 7 ans 3 mois #16868 par Laurent Dardenne
Nicolas.18 écrit:

pour ce qui est de $env:username, ça marche, mais ça récupere mon propre username, or je veux mettre celui de l'utilisateur.

ça va mieux en le disant :)
Je n'ai pas d'AD sous la main pour vérifier mais essaie cette syntaxe :
[code:1]$objItemS[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 31/01/14 12:46

Tutoriels PowerShell

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

Plus d'informations
il y a 7 ans 3 mois #16869 par Philippe
Réponse de Philippe sur le sujet Re:Problème TSprofilePath AD
salut nicolas

réessaie ca (sans lettre majuscule)
[code:1]$objItemS.samaccountname[/code:1]

tu pourra avoir orthographe exacte qui marche
avec $Obj.Properties dans ou après ta boucle

ou plus simplement $AllObj[0].Properties juste après ton findall


pour plus explication

$AllObj de type SearchResult contient le membre Properties qui est une collection
cette collection est sensible a la case, contrairement a une propriété.

Laurent pourra peut-être te donner plus d'info

[code:1]$AllObj|gm


TypeName: System.DirectoryServices.SearchResult

Name MemberType Definition
----

Equals Method bool Equals(System.Object obj)
GetDirectoryEntry Method adsi GetDirectoryEntry()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Path Property System.String Path {get;}
Properties Property System.DirectoryServices.ResultPropertyCollection Properties {get;}[/code:1]


[code:1]$AllObj[0].Properties|gm


TypeName: System.DirectoryServices.ResultPropertyCollection

Name MemberType Definition
----

Clear Method System.Void Clear()
Contains Method bool Contains(string propertyName)
CopyTo Method System.Void CopyTo(System.DirectoryServices.ResultPropertyValueCollection[] array, int index), System.Void CopyTo(arra...
Equals Method bool Equals(System.Object obj)
GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Item ParameterizedProperty System.DirectoryServices.ResultPropertyValueCollection Item(string name) {get;}
Count Property System.Int32 Count {get;}
PropertyNames Property System.Collections.ICollection PropertyNames {get;}
Values Property System.Collections.ICollection Values {get;} [/code:1]

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

Plus d'informations
il y a 7 ans 3 mois #16872 par Laurent Dardenne
6ratgus écrit:

Laurent pourra peut-être te donner plus d'info

Je ne vois pas ce que je peux ajouter de plus, si n'est que sur ce type de traitement j'utilise une fonction qui transforme les données et évite de devoir se souvenir des détails d'implémentation. Je sais qu'en entrée les noms de propriétés sont sensible à la casse, en revanche en sortie j'avais un doute, mais si tu le dis je te crois :)

Tutoriels PowerShell

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

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