Question lister adresses mail en fonction nom du PC

Plus d'informations
il y a 9 ans 5 mois #22483 par erik
bonjour,
l'organisation pour laquelle je travaille utilise Active Directory, Exchange et SCCM sur des serveurs Win 2008 R2.
Suite déploiement de programmes, via SCCM, j'ai une liste de pc qui sont en attente fermeture de session. Pour écrire aux utilisateurs afin de leur re répeter qu'ils doivent fermer leur session j'ai besoin de trouver leurs adresses mails. (la solution fermeture forcée de la session via shutdown ... a été refusée)

Dans excel, à partir liste des postes et avec la fonction \"concatener\", j'ai crée les lignes de commandes DOS, qui donne le nom de la session ouverte :
wmic.exe /node:nomPC1 ComputerSystem Get UserName >> getusername-lot1.txt
wmic.exe /node:nomPC2 ComputerSystem Get UserName >> getusername-lot1.txt


dans le fichier texte obtenu, le résultat est de la forme :
UserName
domaine\TOTO05
UserName
domaine\TITI01


En bidouillant, toujours dans Excel, je peux ne retenir que la liste
TOTO05
TITI01


Ensuite, via excel, je fabrique les lignes de commandes PS suivantes :
(avant d'exécuter ces lignes, je passe \"Import-Module -name ActiveDirectory\")
Get-aduser -identity \"TOTO05\" -properties * | select mail >> ad.mail_lot1.txt
Get-aduser -identity \"TITI01\" -properties * | select mail >> ad.mail_lot1.txt


dans le fichier texte, le résultat est de la forme :
mail
----
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

mail
----
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.


Je retourne encore dans Excel pour enlever le texte \"mail
---- \"
et ne garder que les adresses mail que je peux ensuite copier dans outlook.

J'ai 26 lots à traiter de cette manière. C'est pourquoi je vous sollicite pour avoir un script PS qui prenne en entrée la liste des PC et qui me donne dans un autre fichier la liste des adresses mail trouvées dans l'AD.

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

Plus d'informations
il y a 9 ans 5 mois #22497 par Philippe
salut erik0000

(la solution fermeture forcée de la session via shutdown ... a été refusée)

je comprend le soucis j'ai la même peur des \"cadres dirigeants\"

comme je pense que tu devra exécuté la manip plusieurs fois je t'ai adapté un script pour tous faire d'un coup

je suis parti sur le fais que tu faisait le wmic.exe de nuit a une heure ou les utilisateurs ne sont pas au travail !
le script fait :
- la liste des machine d'une OU, tu peut enlevé Searchbase si tu veut prendre tous le pc et serveur du domaine
- il vérifie si l'ordinateur est allumé
- récupère le nom de l'utilisateur connecté (ton wmic.exe ...)
- récupère le mail de l'utilisateur
- et enfin envoie un mail a l'utilisateur connecté (a toi d'adapté le corps du message :
[code:1]# liste des ordinateurs dans l'ou indiqué
$computers = Get-ADComputer -Filter {(name -like \"*\"«»)} -Searchbase \"OU=sous_OU,OU=ton_ou,DC=domaine,DC=lan\" | select name | Sort-Object name

foreach ($computer in $computers) {
if (Test-Connection $computer -Quiet -Count 2) {
# recupération de l'utilisateur en connecté
$loginad = Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName $computer

$mail = \"\"

if ($loginad.UserName.Length -gt 0) {
# on ne garde que le nom (la deuxieme partie)
$login = ($loginad.UserName -split \"\\\"«»)[1]

# on recupére l'adresse email de l'utilisateur
$mail = (Get-aduser -identity $login -Properties mail).mail

Send-MailMessage -To $mail -from \&quot;Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. <le service info>\" -Body \"Arrêté votre p... de machine le soir !`nVous faire ch... !\"
}
}
[/code:1]
il faut lancé le script par exemple à minuit et il fait tous tout seul !!!

si tu a plusieurs utilisateurs de connecté sur une machine ça marche pas, et j'ai pas encore trouvé la solution
attention si tu ne filtre pas dans une OU (Searchbase) et que tu a des serveurs utilisé en TSE, les utilisateurs encore connecté recevront peut etre un message !

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

Plus d'informations
il y a 9 ans 5 mois #22499 par erik
bonsoir Siragus :)

C'est une super idée ce que tu proposes là.
Je vais tester avec mon propre compte pour commencer :-)
Peut être que je vais modifier le \&quot;body\&quot; par un contenu qui ne m'envoie pas pointer chez Paûl E :laugh:

La récup du nom de session peut être faite de en journée, car dans cette boutique les PC sont, en principe, éteint la nuit ;)

Mon but est que les sessions soient fermées pour que SCCM puisse bosser.

Comme je pensais faire mails depuis Outlook, j'envisageais joindre pdf officiellement validé par la com qui rappelle aux usagers qu'il faut qu'ils ferment leur session afin que certains programmes s'installent.
Existe t-il une commande qui permette également d'ajouter une PJ ?


Bonne nuit

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

Plus d'informations
il y a 9 ans 5 mois #22500 par Philippe
salut erik0000

Existe t-il une commande qui permette également d'ajouter une PJ ?

oui bien sur
sur ce blog il y a l'exemple 2 qui donne la syntaxe
au passage tu pourra rajouter un sujet et surtout le nom du serveur de mail(smtp) sinon ton mail ne part pas !!! j'ai un peu oublié tous ça :blush:


[code:1]Send-MailMessage -to $gestionaire1 -From $mailexpediteur -Subject \&quot;Script SCCM\&quot; `
-Body $body -Attachments \&quot;C:\logs scripts\SCCM.txt\&quot;`
-SmtpServer $serveurmail -Encoding [System.Text.Encoding]::UTF8 [/code:1]
l'encoding c'est pour les caractères accentués

Je vais tester avec mon propre compte pour commencer

une astuce pour les tests, comme tu a vu la commande pour récupéré la liste des PC contient un filtre
il suffit de mettre le nom de ton pc devant l'étoile, ou les premieres lettres d'un groupe de PC

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

Plus d'informations
il y a 9 ans 1 mois #23117 par erik
merci pour votre aide
finalement j'ai utilisé un rapport SCCM qui me donnait le nom AD d'un utilisateur en face d'un numéro de machine.
Avec ça j'ai pu trouver les adresses mails des utilisateurs que je visais et je leur ai fait un mail (en mettant tout le monde en CCi )

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

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