অ্যাক্টিভ ডিরেক্টরী ব্যবহারকারীর ভিত্তিতে একাধিক প্রাপককে পাওয়ারশেল স্ক্রিপ্ট থেকে ই-মেইল প্রেরণ করুন


1

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা আমি গতিশীলভাবে কিছু তথ্য সম্বলিত একটি ইমেল প্রেরণ করতে চাই এবং সংস্থায় কারা এই স্ক্রিপ্টটি চালাচ্ছে তার উপর ভিত্তি করে নির্দিষ্ট লোকের কাছে যেতে চাই সক্রিয় স্ক্রিনটি অ্যাক্টিভ ডিরেক্টরিতে।

আমার কাছে কোডের অন্য একটি অংশ রয়েছে যা সনাক্ত করে যে কোন ইউইউর বা পরিষেবা অ্যাকাউন্টটি এ থেকে এটি চালাচ্ছে এই প্রশ্নের প্রয়োজনে সে সম্পর্কে চিন্তা করবেন না।

আমার এখন অবধি যা কিছু আছে তা হ'ল:

function SendEmail 
{ 
Send-MailMessage -To $Recipients -From "Info <noreply@domain.com>" -Subject "Account Report" -Body $Body -SmtpServer smtpserver.domain.com
}

 $To = Get-ADUser -Filter "(Name -like '*')" -Properties Name, EmailAddress -Searchbase $OUDetected | Format-List EmailAddress | Out-String

আমি সেন্ড-মেলমেজেজ সেমিডলেট ব্যবহার করার চেষ্টা করছি তবে ইমেলগুলি প্রাপকদের নির্দিষ্ট ফরম্যাটে প্রেরণ করতে হবে।

একক প্রাপক হ'ল:

"John Doe <doe.john@domain.com>"

একাধিক প্রাপকদের এইরকম দেখতে হবে:

"John Doe<doe.john@domain.com>", "Jane Doe <doe.jane@domain.com>"

Trick টু ফর্ম্যাটটিতে ফলাফলটি হিসাবে সমস্যাটি তখন জটিল trick

ইমেল ঠিকানা: doe.john@domain.com

ইমেল ঠিকানা: doe.jane@domain.com

এই ফর্ম্যাটটি উপরে বর্ণিত হিসাবে একাধিক প্রাপক উদাহরণে রূপান্তর করা দরকার।

আমি কীভাবে ডেটা সঠিকভাবে দখল করব, এটিকে ফর্ম্যাট করব এবং সেন্ড-মেইলমেজ পাঠাতে যে ফর্ম্যাটটি ব্যবহার করতে পারে তা যে ফর্ম্যাটে থাকে তা নিশ্চিত হওয়ায় আমি ক্ষতিতে আছি।

টিএল; ডিআর - এমন একটি উপায় থাকা দরকার যা প্রতিটি ব্যবহারকারী (গুলি) এর অ্যাক্টিভ ডিরেক্টরেটারিতে প্রদত্ত OU- র ইমেল ঠিকানা (গুলি) ধরে এবং সেই / সেই ইমেল ঠিকানা (গুলি) ফর্ম্যাট করে যাতে এটি প্রেরণ-মেলমেজ ব্যবহার করে প্রেরণ করতে পারে

উত্তর:


1

অ্যাক্টিভ ডিরেক্টরী ব্যবহারকারীর ভিত্তিতে একাধিক প্রাপককে পাওয়ারশেল স্ক্রিপ্ট থেকে ই-মেইল প্রেরণ করুন

এই ফর্ম্যাটটি উপরে বর্ণিত হিসাবে একাধিক প্রাপক উদাহরণে রূপান্তর করা দরকার।

আমি কীভাবে ডেটা সঠিকভাবে দখল করব, এটিকে ফর্ম্যাট করব এবং সেন্ড-মেইলমেজ পাঠাতে যে ফর্ম্যাটটি ব্যবহার করতে পারে তা যে ফর্ম্যাটে থাকে তা নিশ্চিত হওয়ায় আমি ক্ষতিতে আছি।

অ্যাক্টিভডাইরেক্টরিতে প্রদত্ত ওইউতে প্রতিটি ব্যবহারকারীর ইমেল ঠিকানা (এস) ধরে এবং সেই / সেই ইমেল ঠিকানা (এস) ফর্ম্যাট করে যাতে এটি প্রেরণ-মেইলমেসেজ ব্যবহার করে প্রেরণ করতে পারে

নীচে কমা বিচ্ছিন্ন মানগুলিতে আউটপুট পেতে সেই অ্যাকাউন্টগুলির ইমেল ঠিকানা বৈশিষ্ট্যের জন্য নুল মানগুলি বাদ দিয়ে পাওয়ারশেল যুক্তি দেওয়া আছে your

আপনি পরীক্ষিত এবং নিশ্চিত করেছেন যে এই ফর্ম্যাটটি আপনার পরিবেশে প্রত্যাশার মতো কাজ করে আপনি যে যুক্তিটি ব্যবহার করবেন না সে সম্পর্কে উদ্বিগ্ন হন না (উদাঃ $OUDetected)।

  • অনুগ্রহ করে নোট করুন Send-MailMessageযে -Toপ্যারামিটার সহ ফর্ম্যাটটি doe.john@domain.com,doe.jane@domain.comকেবলমাত্র স্থানীয় মেইলবক্স অংশের সাথে প্রতিটি ইমেল ঠিকানা এবং কমা দ্বারা পৃথক করা ডোমেন নাম যথেষ্ট is

আমি আমার কাজের উদাহরণ নীচে রাখব এবং আপনি যা দিয়েছিলেন এবং কীভাবে আমি এটি নিশ্চিত করতে সক্ষম হয়েছি তার ভিত্তিতে আমি আপনার উদাহরণটি নীচে রেখে দেব।

আপনার উদাহরণ (আমার কাজের যুক্তি যুক্ত সহ)

function SendEmail 
{ 
Send-MailMessage -To $Recipients -From "Info <noreply@domain.com>" -Subject "Account Report" -Body $Body -SmtpServer smtpserver.domain.com
}

 $To = (Get-ADUser -Filter "(Name -like '*')" -Properties Name, EmailAddress -Searchbase $OUDetected | Where-Object {$_.EmailAddress -ne $null} | Select -ExpandProperty EmailAddress) -join "," | Out-String

আপনার উদাহরণ (ঠিকানাগুলিতে ইটারেটেড)

function SendEmail 
{
Send-MailMessage -To $To -From "Info <noreply@domain.com>" -Subject "Account Report" -Body $Body -SmtpServer smtpserver.domain.com
}

$ToAddresses = Get-ADUser -Filter "(Name -like '*')" -Properties Name, EmailAddress -Searchbase $OUDetected | 
Where-Object {$_.EmailAddress -ne $null} | Select -ExpandProperty EmailAddress

ForEach ($ToAddress in $ToAddresses) {
   $To = $ToAddress
   SendEmail
}

আমার কাজের উদাহরণ

(Get-ADUser -Filter "(Name -like '*')" -Properties Name, EmailAddress | Where-Object {$_.EmailAddress -ne $null} | Select -ExpandProperty EmailAddress) -join "," | Out-String

এই পুনরাবৃত্তি এটি করেছে! আমি একাধিক প্রাপকদের এটি পাঠাতে সক্ষম হয়েছি। দুর্ভাগ্যক্রমে তারা স্বতন্ত্র ইমেল হিসাবে প্রেরণ করে তবে এটি প্রেরণ না করেই অনেক ভাল। আপনার বারবার সহায়তার জন্য আপনাকে ধন্যবাদ! সম্পাদনা করুন: আসলে লুপটি পরিবর্তন $ToAddressকরা $Toএবং foreachলুপটি ব্যবহার না করা আমাকে সমস্ত প্রাপকদের কাছে প্রেরণ করেছে। আবার ধন্যবাদ!
cyborgcommando0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.