Question liste des users

Plus d'informations
il y a 16 ans 11 mois #317 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:liste des users
Salut Greg,

Je viens de récupérer la machine virtuelle Exchange 2007 (VHD) de chez Microsoft (ici pour ceux que ça intéresse : www.microsoft.com/downloads/details.aspx...c&DisplayLang=en ). Comme ça je verrais mieux comment régler ton problème.

Un truc auquel j'avais pas pensé et que j'aimerais que tu essaies, c'est de réaliser ton action avec la console graphique de management d'Exchange et d'en récupérer la ligne de commande Powershell, tout simplement...
Ainsi en comparant celle qui marche pas avec celle qui marche tu trouveras facilement ton erreur.

Pour info, voici un exemple qui fonctionne :
[code:1]Enable-Mailbox -Identity 'contoso.com/Users/David Campbell' -Alias 'davidcam' -Database 'CN=Mailbox Database,CN=First Storage Group,CN=InformationStore,CN=WS03R2EEEXCHLCS,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com'[/code:1]

Mais pour qu'il marche, il ne faut pas que la boite aux lettres soit déjà associée à l'utilisateur.

Courage Greg, tu touches au but... ;)

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 16 ans 11 mois #320 par greg
Réponse de greg sur le sujet Re:liste des users
Salut Arnaud,


lol, la commande en elle même fonctionne bien. En mettant le meme nombre de paramètre qu'avec le script, mais lorsque je lui applique une variable pour l'utilisateur c'est autre chose...

sinon j'ai un autre script, mais pareil, il me dit qu'il ne peut pas associé l'argument au paramètre Database

Je te montre le code:

[code:1]##Lancer la commande .\Createmailbox.ps1 <nom du fichier CSV>
## <Nom du fichier CSV> peut contenir un chemin d'accès au fichier et peut être mis entre \"\"
## exemple : .\Createmailbox.ps1 \"c:\mbinfo.csv\"
##
## Récupérer le nom du fichier CSV qui est passé en argument du script
## et stocker cette information (nom et chemin) dans la variable 'data'

$data = import-csv $args[0]

## Fonction pour convertir le mot de passe en clair dans le fichier CSV en 'secure string'

function New-SecureString([string] $plainText)
{
$secureString = new-object System.Security.SecureString

foreach($char in $plainText.ToCharArray())
{
$secureString.AppendChar($char)
}

$secureString
}
## Fin de Fonction

## Pour chacune des lignes du fichier exécuter les commandes suivantes. Les données sont récupérées dans l'array $i
foreach ($i in $data)
{
## Transformer le mot de passe en clair en codé à laide de la fonction new-securestring définie plus haut
$ss = new-securestring $i.password
## Construire l'UPN à parti de l'alias combiné avec le fqdn
$upn = $i.alias + \"@\" + $i.fqdn
## Executer la commande Powershell Exchange de création de la mailbox avec les paramètres du fichier CSV
## et les paramètre construit par ce script.
new-mailbox -Password $ss -Database $i.database -UserPrincipalName $upn -Name $i.name -OrganizationalUnit $i.ou
}[/code:1]

Dans la boucle, j'ai juste affiché $i, cela m'affiche bien toutes les propriétés des users, groups etc...

en laissant le code telquel voici l'erreur:

[code:1][PS] C:\>c:\scripts\usercsv.ps1 c:\export.csv
New-Mailbox : Cannot bind argument to parameter 'Database' because it is null.
At C:\scripts\usercsv.ps1:34 char:23
+ new-mailbox -Database <<<< $i.database -UserPrincipalName $upn -Name $i.nam
e -OrganizationalUnit $i.ou
New-Mailbox : Cannot bind argument to parameter 'Database' because it is null.
At C:\scripts\usercsv.ps1:34 char:23
+ new-mailbox -Database <<<< $i.database -UserPrincipalName $upn -Name $i.nam
e -OrganizationalUnit $i.ou
New-Mailbox : Cannot bind argument to parameter 'Database' because it is null.
At C:\scripts\usercsv.ps1:34 char:23
+ new-mailbox -Database <<<< $i.database -UserPrincipalName $upn -Name $i.nam
e -OrganizationalUnit $i.ou
New-Mailbox : Cannot bind argument to parameter 'Database' because it is null.
At C:\scripts\usercsv.ps1:34 char:23
+ new-mailbox -Database <<<< $i.database -UserPrincipalName $upn -Name $i.nam
e -OrganizationalUnit $i.ou[/code:1]

Et voici ce qu'il y a dans $i:

[code:1]DN : CN=aix1,OU=Aix,OU=DirectionsRegionales,OU=Agences,
DC=gestor,DC=fr
objectClass : user
ou :
distinguishedName : CN=aix1,OU=Aix,OU=DirectionsRegionales,OU=Agences,
DC=gestor,DC=fr
instanceType : 4
whenCreated : 20070420085907.0Z
whenChanged : 20070507122552.0Z
uSNCreated : 25729
uSNChanged : 29969
name : aix1
objectGUID : X'f9d093c41424cc4495bb1f19b8d71d11'
objectCategory : CN=Person,CN=Schema,CN=Configuration,DC=gestor,DC=
fr
dSCorePropagationData :
cn : aix1
givenName : aix1
displayName : aix1
memberOf : CN=GG_Aix,OU=Aix,OU=DirectionsRegionales,OU=Agence
s,DC=gestor,DC=fr
userAccountControl : 512[/code:1] etc.... avec d'autre users et groupes

Il arrive bien a récupérer les info du fichier csv...<br><br>Message édité par: greg, à: 9/05/07 17:25

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

Plus d'informations
il y a 16 ans 11 mois #326 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:liste des users
Bonjour Greg,

Je pense maintenant avoir compris l'erreur.
En fait, comme il y a un espace dans le nom qu'on lui passe en paramètre, il faut mettre des guillemets... Mais pas n'importe lesquels : 'les simples quotes'.

Essaie de mettre ta variable qui contient l'identité de ton utilisateur comme ceci : [code:1]\&quot;`'$i`'\&quot;[/code:1]
Ainsi le résultat sera : [code:1]'Mon Utilisateur'[/code:1]

Soit:
[code:1]Enable-Mailbox -Identity \&quot;`'$i.properties.Name`'\&quot; -Database 'SVREXCHANGE\First Storage Group\Mailbox Database'[/code:1]

Profites en aussi pour remplacer les guillemets doubles par des guillemets simples afin de se rapprocher le plus possible de la commande résultante de la console graphique (car elle fonctionne).

Vérifies également s'il ne faut pas spécifier obligatoirement le paramètre -Alias et que la valeur pour le paramètre -Database est bien la bonne.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 16 ans 11 mois #353 par greg
Réponse de greg sur le sujet Re:liste des users
Hello,

Je suis en formatin cette semaine, mais j'ai trouvé une autre solution pour la création auto de Bals exchange, via un fichier csv...

a+

greg

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

Plus d'informations
il y a 16 ans 11 mois #354 par greg
Réponse de greg sur le sujet Re:liste des users
greg écrit:

Hello,

Je suis en formation cette semaine, mais j'ai trouvé une autre solution pour la création auto de Bals exchange, via un fichier csv...

a+

greg

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

Plus d'informations
il y a 16 ans 1 mois #1721 par Czajkowski
Réponse de Czajkowski sur le sujet Re:liste des users
Arnaud écrit:

Bonsoir Greg,

Tout d'abord merci pour le message laissé dans le livre d'or, ça fait toujours plaisir :P

D'autre part pour ce que tu cherches à faire, Robin voulais en fait écrire ceci :
[code:1]
foreach ($i in $complist) {
$i.properties.samaccountname
}
[/code:1]


Hello,

J'aimerais reprendre ce sript mais j'aimerais avoir également l'OU de chaque utilisateur et sortir les resultats vers un fichier (txt ou xls).

J'ai essayé avec |Out-File mais ca ne fonctionne pas.
Avez vous une piste svp?

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

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