Question
Création en masse des boites sous exchange
- famghar
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 16 ans 1 mois #1902
par famghar
Création en masse des boites sous exchange a été créé 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
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.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 1 mois #1903
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Création en masse des boites sous exchange
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 &.
Arnaud
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 &.
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.
- famghar
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 16 ans 1 mois #1904
par famghar
Réponse de famghar sur le sujet Re:Création en masse des boites sous exchange
Merci pour ta réponse, je l'ai fait sous PowerShell et voici :
[code:1][PS] C:\Documents and Settings\su-amgharfa\Desktop>./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 <<<<
[PS] C:\Documents and Settings\su-amgharfa\Desktop>[/code:1]
voici mon script :
[code:1]dim fso, MyFile, reptemp, filetext
Stroucible=inputbox(\"Ou spécifiée\"«»)
#Attention à modifier le nom LDAP du domaine
strDomainDN =\"ou=\" & stroucible & \"dc=DIRECTORY\"
#Attention le répertoire c:\temp doit exister
reptemp=\"c:\temp\\"
Filetext=Inputbox(\"fichier temporaire de l'OU cible : \"«»)
Set fso = CreateObject(\"Scripting.FileSystemObject\"«»)
création d'un fichier txt pour la première partie du script, soit le nom des utilisateurs
set MyFile = fso.CreateTextFile(reptemp + filetext + \".txt\"«»)
Ici un filtre sur les utilisateurs et je récupére leur Distinguishedname
strBase = \"<LDAP://\" & strDomainDN & \">;\"
strFilter = \"(&(objectclass=user)(objectcategory=person));\"
strAttrs = \"distinguishedname;\"
strScope = \"subtree\"
set objConn = CreateObject(\"ADODB.Connection\"«»)
objConn.Provider = \"ADsDSOObject\"
objConn.Open \"Active Directory Provider\"
Ici lancement de la requêtes et écriture dans le fichier txt dans le c:\temp
set objRS = objConn.Execute(strBase & strFilter & strAttrs & 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 = \"c:\Sources.xls\"
Set objExcel = CreateObject(\"Excel.Application\"«»)
Set objSpread = objExcel.Workbooks.Open(strSheet)
Set objFSO = CreateObject(\"Scripting.FileSystemObject\"«»)
Set UserListe = objFSO.OpenTextFile(reptemp + Filetext + \".txt\"«»)
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(\"LDAP://\" & UserLDAP & \"\"«»)
CNStr = left(UserLDAP, Instr (UserLDAP, \",\"«») -1)
OuStr = Right(UserLDAP, len(UserLDAP) - Instr (UserLDAP, \",\"«»))
objExcel.ActiveSheet.Range(\"A\" & i).Value = objUser.LastName
objExcel.ActiveSheet.Range(\"B\" & i).Value = objUser.FirstName
objExcel.ActiveSheet.Range(\"C\" & i).Value = objUser.displayName
i = i + 1
loop
Sauvegarde du fichier Excel
objExcel.ActiveWorkbook.SaveAs(reptemp + Filetext + \".xls\"«»)
objExcel.ActiveWorkbook.Close
objExcel.Workbooks.Close
msgbox \"fin de récupération des utilisateurs. Le fichiers excel est dans \" + reptemp + Filetext + \"
.xls\"
objExcel.Quit[/code:1]
Je vous remercie d'avance<br><br>Message édité par: Arnaud, à: 11/03/08 11:22
[code:1][PS] C:\Documents and Settings\su-amgharfa\Desktop>./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 <<<<
[PS] C:\Documents and Settings\su-amgharfa\Desktop>[/code:1]
voici mon script :
[code:1]dim fso, MyFile, reptemp, filetext
Stroucible=inputbox(\"Ou spécifiée\"«»)
#Attention à modifier le nom LDAP du domaine
strDomainDN =\"ou=\" & stroucible & \"dc=DIRECTORY\"
#Attention le répertoire c:\temp doit exister
reptemp=\"c:\temp\\"
Filetext=Inputbox(\"fichier temporaire de l'OU cible : \"«»)
Set fso = CreateObject(\"Scripting.FileSystemObject\"«»)
création d'un fichier txt pour la première partie du script, soit le nom des utilisateurs
set MyFile = fso.CreateTextFile(reptemp + filetext + \".txt\"«»)
Ici un filtre sur les utilisateurs et je récupére leur Distinguishedname
strBase = \"<LDAP://\" & strDomainDN & \">;\"
strFilter = \"(&(objectclass=user)(objectcategory=person));\"
strAttrs = \"distinguishedname;\"
strScope = \"subtree\"
set objConn = CreateObject(\"ADODB.Connection\"«»)
objConn.Provider = \"ADsDSOObject\"
objConn.Open \"Active Directory Provider\"
Ici lancement de la requêtes et écriture dans le fichier txt dans le c:\temp
set objRS = objConn.Execute(strBase & strFilter & strAttrs & 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 = \"c:\Sources.xls\"
Set objExcel = CreateObject(\"Excel.Application\"«»)
Set objSpread = objExcel.Workbooks.Open(strSheet)
Set objFSO = CreateObject(\"Scripting.FileSystemObject\"«»)
Set UserListe = objFSO.OpenTextFile(reptemp + Filetext + \".txt\"«»)
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(\"LDAP://\" & UserLDAP & \"\"«»)
CNStr = left(UserLDAP, Instr (UserLDAP, \",\"«») -1)
OuStr = Right(UserLDAP, len(UserLDAP) - Instr (UserLDAP, \",\"«»))
objExcel.ActiveSheet.Range(\"A\" & i).Value = objUser.LastName
objExcel.ActiveSheet.Range(\"B\" & i).Value = objUser.FirstName
objExcel.ActiveSheet.Range(\"C\" & i).Value = objUser.displayName
i = i + 1
loop
Sauvegarde du fichier Excel
objExcel.ActiveWorkbook.SaveAs(reptemp + Filetext + \".xls\"«»)
objExcel.ActiveWorkbook.Close
objExcel.Workbooks.Close
msgbox \"fin de récupération des utilisateurs. Le fichiers excel est dans \" + reptemp + Filetext + \"
.xls\"
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.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 1 mois #1905
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Création en masse des boites sous exchange
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
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
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.
- PASCAULT
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 16 ans 1 mois #1910
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Création en masse des boites sous exchange
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 #
donc en lançant cscript export.vbs, ça devrait fonctionner!
Car effectivement, ça ressemble beaucoup a du code Vbscript.
Par contre les lignes de commentaires en vbs commence par ' et non #
et d'autres en n'ont pas:#Attention à modifier le nom LDAP du domaine
Ceci dit, je pense que c'est un pb de copier coller, car il y a un espace devant ces lignes.création d'un fichier
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.075 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Création en masse des boites sous exchange