Question Création en masse des boites sous exchange

Plus d'informations
il y a 12 ans 5 mois #1902 par famghar
Bonjour,

J'ai essyer d'adapter votre script sur mon serveur voici ce que j'ai comme erreur

[code:1]C:\>powershell c:\export.ps1
Ampersand not allowed. The & operator is reserved for future use; use \"&\" to pass ampersand as a string.
At C:\export.ps1:8 char:21
+ strDomainDN =\"ou=\" & <<<< stroucible & \",dc=ROOT\",dc=\"DIRECTORY\"[/code:1]


Merci de votre aide

CDT<br><br>Message édité par: Arnaud, à: 11/03/08 11:09

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

Plus d'informations
il y a 12 ans 5 mois #1903 par Arnaud
Bonjour Famghar et bienvenue dans le forum ;-)

Juste une première chose : pourquoi ne lances tu pas directement ton script directement à partir de la console PowerShell ?

Comme ça tu n'aura qu'à écrire : ./export.ps1

Concernant le script, peux tu le poster afin que tout le monde puisse t'aider ? De plus je n'ai pas le livre sur moi ;)
A première vue, il doit s'agir d'une erreur de syntaxe quelque part. Attention, en PowerShell pour concaténer des chaines il faut utiliser le + et non le &amp;.

Arnaud

Créateur du forum de la communauté PowerShell Francophone

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

Plus d'informations
il y a 12 ans 5 mois #1904 par famghar
Merci pour ta réponse, je l'ai fait sous PowerShell et voici :

[code:1][PS] C:\Documents and Settings\su-amgharfa\Desktop&gt;./export.ps1
The term './export.ps1' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
At line:1 char:12
+ ./export.ps1 &lt;&lt;&lt;&lt;
[PS] C:\Documents and Settings\su-amgharfa\Desktop&gt;[/code:1]
voici mon script :


[code:1]dim fso, MyFile, reptemp, filetext


Stroucible=inputbox(\&quot;Ou spécifiée\&quot;«»)

#Attention à modifier le nom LDAP du domaine
strDomainDN =\&quot;ou=\&quot; &amp; stroucible &amp; \&quot;dc=DIRECTORY\&quot;

#Attention le répertoire c:\temp doit exister
reptemp=\&quot;c:\temp\\&quot;

Filetext=Inputbox(\&quot;fichier temporaire de l'OU cible : \&quot;«»)
Set fso = CreateObject(\&quot;Scripting.FileSystemObject\&quot;«»)

création d'un fichier txt pour la première partie du script, soit le nom des utilisateurs
set MyFile = fso.CreateTextFile(reptemp + filetext + \&quot;.txt\&quot;«»)

Ici un filtre sur les utilisateurs et je récupére leur Distinguishedname
strBase = \&quot;&lt;LDAP://\&quot; &amp; strDomainDN &amp; \&quot;&gt;;\&quot;
strFilter = \&quot;(&amp;(objectclass=user)(objectcategory=person));\&quot;
strAttrs = \&quot;distinguishedname;\&quot;
strScope = \&quot;subtree\&quot;

set objConn = CreateObject(\&quot;ADODB.Connection\&quot;«»)
objConn.Provider = \&quot;ADsDSOObject\&quot;
objConn.Open \&quot;Active Directory Provider\&quot;

Ici lancement de la requêtes et écriture dans le fichier txt dans le c:\temp
set objRS = objConn.Execute(strBase &amp; strFilter &amp; strAttrs &amp; strScope)
objRS.MoveFirst
while Not objRS.EOF
MyFile.WriteLine (objRS.Fields(0).Value)
objRS.MoveNext
wend
MyFile.close


Maintenant avec le fichier txt je récupère les informations utilisateurs par utilisateurs
on error resume next
Dim objConnection, objRecords, objExcel, strQuery, i, objSpread, intRow

Attention le fichier C:\source.xls doit exister
strSheet = \&quot;c:\Sources.xls\&quot;

Set objExcel = CreateObject(\&quot;Excel.Application\&quot;«»)
Set objSpread = objExcel.Workbooks.Open(strSheet)
Set objFSO = CreateObject(\&quot;Scripting.FileSystemObject\&quot;«»)
Set UserListe = objFSO.OpenTextFile(reptemp + Filetext + \&quot;.txt\&quot;«»)

Renseigner le numéro de la première ligne Excel ou vous souhaité écrire les inforamations
i = 3

liste des attributs à récupérer
Do Until UserListe.AtEndofStream
UserLDAP = UserListe.Readline
Set objUser = GetObject(\&quot;LDAP://\&quot; &amp; UserLDAP &amp; \&quot;\&quot;«»)
CNStr = left(UserLDAP, Instr (UserLDAP, \&quot;,\&quot;«») -1)
OuStr = Right(UserLDAP, len(UserLDAP) - Instr (UserLDAP, \&quot;,\&quot;«»))

objExcel.ActiveSheet.Range(\&quot;A\&quot; &amp; i).Value = objUser.LastName
objExcel.ActiveSheet.Range(\&quot;B\&quot; &amp; i).Value = objUser.FirstName
objExcel.ActiveSheet.Range(\&quot;C\&quot; &amp; i).Value = objUser.displayName

i = i + 1
loop



Sauvegarde du fichier Excel
objExcel.ActiveWorkbook.SaveAs(reptemp + Filetext + \&quot;.xls\&quot;«»)
objExcel.ActiveWorkbook.Close
objExcel.Workbooks.Close

msgbox \&quot;fin de récupération des utilisateurs. Le fichiers excel est dans \&quot; + reptemp + Filetext + \&quot;
.xls\&quot;
objExcel.Quit[/code:1]

Je vous remercie d'avance<br><br>Message édité par: Arnaud, à: 11/03/08 11:22

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

Plus d'informations
il y a 12 ans 5 mois #1905 par Arnaud
Oulà je crois que t'es en train de confondre VBScript et PowerShell...

Ton script est du VBScript et non du PowerShell.

Arnaud
PS : je déplace ton post dans la section Entraide pour débutants.<br><br>Message édité par: Arnaud, à: 11/03/08 12:58

Créateur du forum de la communauté PowerShell Francophone

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

Plus d'informations
il y a 12 ans 5 mois #1910 par gremlinsy
En fait, ton script est je pense pas mal, mais il faut que tu renommes ton fichier export.ps1 en export.vbs.

Car effectivement, ça ressemble beaucoup a du code Vbscript.


Par contre les lignes de commentaires en vbs commence par ' et non #

#Attention à modifier le nom LDAP du domaine

et d'autres en n'ont pas:

création d'un fichier

Ceci dit, je pense que c'est un pb de copier coller, car il y a un espace devant ces lignes.

donc en lançant cscript export.vbs, ça devrait fonctionner! :)

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

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