Question
Comparer user et computer dans active directory
- Fred
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 10 ans 7 mois #20538
par Fred
Réponse de Fred sur le sujet Re:Comparer user et computer dans active directory
Et voilaaaa ....après pas mal de recherche ... et après avoir parcouru tous les posts que j'ai pu concernant powershell ou d'ailleurs j'ai pu m'apercevoir que Laurent Dardenne est un peu a powershell ce qu'est Michael jackson a la Pop Music ... J'ai enfin réussi a finir mon script ... Bon il reste des petits trucs a peaufiner ... mais déja une chose est sure ... il fonctionne ^^
Je le met ici au cas ou des gens serait interessés:
[code:1]#========test de la connexion avec le serveur ou se situe la sauvegarde =========#
$testcnx= Test-Connection XXX.XXX.XXX.XXX
if ($testcnx){Write-Host \"Connexion serveur ok\"} else {exit}
#========import du module AD et test si utilisateur et pc sont bien liés dans AD=========#
Import-Module ActiveDirectory
$description= Get-ADComputer $env:computername -properties * | select -Expandproperty Description
$username= Get-ADUser $env:username -properties * | select -Expandproperty Name
$ismycomputer= $description.IndexOf($username, [System.StringComparison]::OrdinalIgnoreCase) -ne -1
if ($ismycomputer){Write-Host \"verification utilisateur ok\"} else {exit}
#======== Message voulez vous sauvegarder =========#
$YES=6;$NO=7
$shell=new-object -com wscript.shell
$ret=$shell.popup(\"Voulez-vous sauvegarder?\",0,\"Sauvegarde en cours\",4+32)
if ($ret -eq $YES) {Write-Host \"Sauvegarde en cours\"} else {exit}
#======== creation du chemin de sauvegarde si il n'existe pas encore =========#
$localusername=$env:username
$destination=cheminduserveur\Sauvegarde\$localusername\
if (-Not($destination)) {new-item -path E:\Sauvegarde\ -name $localusername -itemtype directory}
#======== sauvegarde de bureau favoris et mes documents =========#
$source1=\"$env:HOMEPATH\Documents\"
$destination1=\"E:\Sauvegarde\$localusername\Documents\"
robocopy $source1 $destination1 /MIR /COPYALL /sec
$source2=\"$env:HOMEPATH\Favorites\"
$destination2=\"E:\Sauvegarde\$localusername\Favorites\"
robocopy $source2 $destination2 /MIR /COPYALL /sec
$source3=\"$env:HOMEPATH\Desktop\"
$destination3=\"E:\Sauvegarde\$localusername\Desktop\"
robocopy $source3 $destination3 /MIR /COPYALL /sec
#
envois mail
#
send-mailmessage -to Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -from Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -subject \"SAUVEGARDE EFFECTUEE\" -body \"sauvegarde effectuée avec succès\" -SmtpServer smtpint.mondomaine[/code:1]
Laurent, j'ai essayé de voir au niveau gestion des messages d'erreurs mais je pense que je vais encore avoir besoin de tes lumieres ...notamment pour la partie finale concernant l'envoi du mail.
Pour l'instant l'idée c'est que si le script arrive jusqu'a la sauvegarde, il envoi un mail \"sauvegarde ok\".
Mais je suppose que tu voulais dire qu'il faut aussi gerer les cas ou ca ne fonctionne pas et savoir pourquoi ?
par exemple pas de connexion réseau = envoi mail \"pas de connexion réseau\".
Je suis en train d'y travailler mais de la façon dont j'ai tourné le script c'est pas évident... parce que ca voudrait dire qu'au lieu du else que j'utilise il faudrait que je lui dise d'indiquer que c'est KO + envoi du mail.<br><br>Message édité par: fred31200, à: 23/07/15 17:04
Je le met ici au cas ou des gens serait interessés:
[code:1]#========test de la connexion avec le serveur ou se situe la sauvegarde =========#
$testcnx= Test-Connection XXX.XXX.XXX.XXX
if ($testcnx){Write-Host \"Connexion serveur ok\"} else {exit}
#========import du module AD et test si utilisateur et pc sont bien liés dans AD=========#
Import-Module ActiveDirectory
$description= Get-ADComputer $env:computername -properties * | select -Expandproperty Description
$username= Get-ADUser $env:username -properties * | select -Expandproperty Name
$ismycomputer= $description.IndexOf($username, [System.StringComparison]::OrdinalIgnoreCase) -ne -1
if ($ismycomputer){Write-Host \"verification utilisateur ok\"} else {exit}
#======== Message voulez vous sauvegarder =========#
$YES=6;$NO=7
$shell=new-object -com wscript.shell
$ret=$shell.popup(\"Voulez-vous sauvegarder?\",0,\"Sauvegarde en cours\",4+32)
if ($ret -eq $YES) {Write-Host \"Sauvegarde en cours\"} else {exit}
#======== creation du chemin de sauvegarde si il n'existe pas encore =========#
$localusername=$env:username
$destination=cheminduserveur\Sauvegarde\$localusername\
if (-Not($destination)) {new-item -path E:\Sauvegarde\ -name $localusername -itemtype directory}
#======== sauvegarde de bureau favoris et mes documents =========#
$source1=\"$env:HOMEPATH\Documents\"
$destination1=\"E:\Sauvegarde\$localusername\Documents\"
robocopy $source1 $destination1 /MIR /COPYALL /sec
$source2=\"$env:HOMEPATH\Favorites\"
$destination2=\"E:\Sauvegarde\$localusername\Favorites\"
robocopy $source2 $destination2 /MIR /COPYALL /sec
$source3=\"$env:HOMEPATH\Desktop\"
$destination3=\"E:\Sauvegarde\$localusername\Desktop\"
robocopy $source3 $destination3 /MIR /COPYALL /sec
#
envois mail
#
send-mailmessage -to Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -from Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -subject \"SAUVEGARDE EFFECTUEE\" -body \"sauvegarde effectuée avec succès\" -SmtpServer smtpint.mondomaine[/code:1]
Laurent, j'ai essayé de voir au niveau gestion des messages d'erreurs mais je pense que je vais encore avoir besoin de tes lumieres ...notamment pour la partie finale concernant l'envoi du mail.
Pour l'instant l'idée c'est que si le script arrive jusqu'a la sauvegarde, il envoi un mail \"sauvegarde ok\".
Mais je suppose que tu voulais dire qu'il faut aussi gerer les cas ou ca ne fonctionne pas et savoir pourquoi ?
par exemple pas de connexion réseau = envoi mail \"pas de connexion réseau\".
Je suis en train d'y travailler mais de la façon dont j'ai tourné le script c'est pas évident... parce que ca voudrait dire qu'au lieu du else que j'utilise il faudrait que je lui dise d'indiquer que c'est KO + envoi du mail.<br><br>Message édité par: fred31200, à: 23/07/15 17:04
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 7 mois #20541
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Comparer user et computer dans active directory
fred31200 écrit:

fred31200 écrit:
Il faut s'assurer que ce que tu réalises soit un automatisme de tâche et pas un générateur de tâches de support.
fred31200 écrit:
fred31200 écrit:
Pour la v2 tu peux créer des fonctions( réutilisation du code), l'objectif n'est pas de tout gérer mais de pouvoir analyser/comprendre rapidement la cause d'une erreur.
Par exemple si tu ne peux envoyer de mail, il n'existe aucun log en local qui puissent t'aider.
Tu peux déjà créer une fonction autour des appels à Robocopy, à toi de décider si tu arrêtes le traitement à la première erreur.
C'est gentil, mais abondance de posts n'est pas abondance de talentj'ai pu m'apercevoir que Laurent Dardenne est un peu a powershell ce qu'est Michael jackson a la Pop Music
fred31200 écrit:
Oui, enfin surtout pour ceux-celles qui vont maintenir ton script.Mais je suppose que tu voulais dire qu'il faut aussi gerer les cas ou ca ne fonctionne pas et savoir pourquoi ?
Il faut s'assurer que ce que tu réalises soit un automatisme de tâche et pas un générateur de tâches de support.
fred31200 écrit:
Si tu as + réseaux...par exemple pas de connexion réseau = envoi mail \"pas de connexion réseau\".
fred31200 écrit:
Tout à fait.Je suis en train d'y travailler mais de la façon dont j'ai tourné le script c'est pas évident...
Pour la v2 tu peux créer des fonctions( réutilisation du code), l'objectif n'est pas de tout gérer mais de pouvoir analyser/comprendre rapidement la cause d'une erreur.
Par exemple si tu ne peux envoyer de mail, il n'existe aucun log en local qui puissent t'aider.
Tu peux déjà créer une fonction autour des appels à Robocopy, à toi de décider si tu arrêtes le traitement à la première erreur.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Comparer user et computer dans active directory