Categories: Powershell

Exchange 2010 CrossForest group Migration

&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2529 " id&equals;"quads-ad2529" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;<p>In an Exchange Crossforest migration the distribution groups can be a very painful operation that would cause loss of time&comma; lots of issues and continues headache if not solved within a timely manner&period;<&sol;p>&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2523 " id&equals;"quads-ad2523" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2525 " id&equals;"quads-ad2525" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2527 " id&equals;"quads-ad2527" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;&NewLine;<p>The migration can be a long boring process that needs to be as accurate as possible to avoid any issue related to members in the group or&sol;and Group’s Primary SMTP details&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>While doing a Crossforest migration I came through through this headache and tried to seek a script that would satisfy my migration’s requirements but only thing I found is the export<a href&equals;"https&colon;&sol;&sol;www&period;google&period;com&sol;url&quest;q&equals;https&percnt;3A&percnt;2F&percnt;2Fgallery&period;technet&period;microsoft&period;com&percnt;2Foffice&percnt;2FExport-all-distribution-707c27eb&amp&semi;sa&equals;D&amp&semi;sntz&equals;1&amp&semi;usg&equals;AFQjCNGi6afzZN6UUXkDUh6JrMLWBBmf-A" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener">Powershell<&sol;a>&nbsp&semi;made by&nbsp&semi;<strong>Satheshwaran Manoharan<&sol;strong>&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p><strong>Export Process&colon;<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>The script exports all groups and their members from the source forest&comma; but to import there’s no option and I had to write my own script&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>To make use of this script first make sure you that you have migrated the Groups with ADMT in the recommended order otherwise the migration would be problematic&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<ul class&equals;"wp-block-list"><li><strong>First<&sol;strong>&colon; Universal Groups<&sol;li><li><strong>Second<&sol;strong>&colon; Global Groups<&sol;li><li><strong>Third<&sol;strong>&colon; Domain Local Groups<&sol;li><&sol;ul>&NewLine;&NewLine;&NewLine;&NewLine;<p>Once groups are migrated to the target forest you can check how they look like through Exchange management shell and whether they have members added or SMTP address set&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image"><a href&equals;"http&colon;&sol;&sol;www&period;google&period;com&sol;url&quest;q&equals;http&percnt;3A&percnt;2F&percnt;2Fmoh10ly&period;website&percnt;2Fwp-content&percnt;2Fuploads&percnt;2F2018&percnt;2F03&percnt;2Fimage-1&period;png&amp&semi;sa&equals;D&amp&semi;sntz&equals;1&amp&semi;usg&equals;AFQjCNEwvIjqiG7KxyDJLzJGd2Qv28Bdow" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener"><img src&equals;"https&colon;&sol;&sol;lh5&period;googleusercontent&period;com&sol;MdITq7utW7a98zULow50oeZINMWMT5WlgG0gTbi-YPwRP7-zG5TCnhDroTUgep2VHlbd0Z3UP4NRhokq98NELaPYuk1adPDHn8JkE0aVGe-3SDiAMlZL&equals;w874" alt&equals;"image"&sol;><&sol;a> &NewLine;&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2528 " id&equals;"quads-ad2528" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine; &NewLine;<&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p>After I checked it apparently shows that group is empty and has no Primary SMTP address associated with it&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p><strong>Import Process&colon;<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>In order to add members during the migration since this is a Hybrid&sol;Coexistence migration not cutover&comma; It took time to migrate users and therefore I have to add non-migrated users in target forest as External Contacts to the Distribution Groups and add migrated users as Mailbox users&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Then after adding the users I have to setup Primary SMTP address for the groups according to the exported CSV file from the Source Forest&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image"><a href&equals;"http&colon;&sol;&sol;www&period;google&period;com&sol;url&quest;q&equals;http&percnt;3A&percnt;2F&percnt;2Fmoh10ly&period;website&percnt;2Fwp-content&percnt;2Fuploads&percnt;2F2018&percnt;2F03&percnt;2Fimage-2&period;png&amp&semi;sa&equals;D&amp&semi;sntz&equals;1&amp&semi;usg&equals;AFQjCNEiq6tv4lJgI731&lowbar;J6vTpHwBCv7Ow" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener"><img src&equals;"https&colon;&sol;&sol;lh4&period;googleusercontent&period;com&sol;OhqvkOTj&lowbar;0epKY6c0cAs1SHuLcsCWmKHs8mAHRPqFlVD8nDj03nKY&lowbar;f1SnjdliLQOSQNt-tuVCVNGSF13tMuV10eOpy0Yedqd3P-Yx4j&lowbar;eebBWCpQw&equals;w874" alt&equals;"image"&sol;><&sol;a><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p>To Import users&comma; I had to setup a CSV file with the following format&colon;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>In this format&comma; the Display name&comma; Alias&comma; RecipientType and PrimarySMTPAddress belong to the User object that’s included in the group meanwhile&comma; The Dgroup is the Distribution group’s Alias and DGSMTP is the Group’s Primary SMTP address&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image"><a href&equals;"http&colon;&sol;&sol;www&period;google&period;com&sol;url&quest;q&equals;http&percnt;3A&percnt;2F&percnt;2Fmoh10ly&period;website&percnt;2Fwp-content&percnt;2Fuploads&percnt;2F2018&percnt;2F03&percnt;2Fimage-3&period;png&amp&semi;sa&equals;D&amp&semi;sntz&equals;1&amp&semi;usg&equals;AFQjCNH4UyLZfEFrwY5nSGFToTaHazU8cw" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener"><img src&equals;"https&colon;&sol;&sol;lh3&period;googleusercontent&period;com&sol;zCIpDY4eyJK1ihH6J2wuF&lowbar;Su5H&lowbar;iu7r2KF6bUw6XJUDmmUoO7Dw8g6ZETJYLTzl4CIoHFkIf6e2FVCl-L-eGaiB9ECqN-RxVMD9i23o80oWjCXGnmPw&equals;w974" alt&equals;"image"&sol;><&sol;a><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p><strong>The following script imports groups members to their relative groups<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&num; If user type is Usermailbox then it’ll be in Target forest as a Contact &num;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&dollar;Users &equals; Import-Csv &OpenCurlyDoubleQuote;C&colon;&bsol;Groups&bsol;dgs&period;csv”<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Foreach &lpar;&dollar;User in &dollar;Users&rpar;&lbrace;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&dollar;GroupAlias &equals; &dollar;User&period;Dgroup<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&dollar;GroupSMTP &equals; &dollar;User&period;DGSMTP<&sol;p>&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2522 " id&equals;"quads-ad2522" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;&NewLine;<p>Write-Host &OpenCurlyDoubleQuote;&dollar;User&period;Alias” has been Added to the Group &dollar;User&period;Dgroup -ForegroundColor Green -BackgroundColor Black<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>if &lpar;&dollar;User&period;RecipientType -Match &OpenCurlyDoubleQuote;UserMailbox”&rpar;&lbrace;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Add-DistributionGroupMember -Identity &dollar;GroupAlias -Member &dollar;User&period;PrimarySMTP -BypassSecurityGroupManagerCheck&rcub;&rcub;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p><strong>Fixing Distribution Groups Primary SMTP Address&colon;<&sol;strong><&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Since distribution groups are mostly imported without Primary SMTP address through ADMT then we’ll have to also make sure that we fix this for our groups&comma; but what if the destination forest has similar groups or the SMTP is used already &quest; In order to avoid any mistake when associating the Primary SMTP address I have created a script that would check distribution groups with null value in their primary SMTP Address and copy the SMTP address to these groups avoiding any overwrite or change of the destination Distribution groups&period;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&num; Setup groups with Primary SMTP Address<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&dollar;Groups &equals; Import-Csv &OpenCurlyDoubleQuote;C&colon;&bsol;Groups&bsol;Group&lowbar;test&period;csv”<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Foreach &lpar;&dollar;Group in &dollar;Groups&rpar;&lbrace;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&dollar;GroupAlias &equals; &dollar;Group&period;dgroup<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>&dollar;GroupSMTP &equals; &dollar;Group&period;DGSMTP<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>if &lpar;&lpar;Get-DistributionGroup &dollar;GroupAlias &vert; &percnt;&lbrace;&dollar;&lowbar;&period;PrimarySmtpAddress&rcub;&rpar; -match &OpenCurlyDoubleQuote;&dollar;GroupSMTP”&rpar; &lbrace;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Write-Host Group &dollar;GroupAlias already has &dollar;GroupSMTP Setup as primary SMTP address -ForegroundColor Yellow -BackgroundColor Red&rcub;else&lbrace;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Set-DistributionGroup -Identity &dollar;GroupAlias -PrimarySmtpAddress &dollar;GroupSMTP -EmailAddressPolicyEnabled &dollar;False<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>Write-Host Group &dollar;GroupAlias has &dollar;GroupSMTP Setup as primary SMTP -ForegroundColor Green -BackgroundColor Black &rcub;&rcub;<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<p>The script will check if the groups has primary SMTP matches the one in the CSV file&comma; if it doesn’t it’ll setup the primary SMTP address for that group with green color like in the below screenshot<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image"><a href&equals;"http&colon;&sol;&sol;www&period;google&period;com&sol;url&quest;q&equals;http&percnt;3A&percnt;2F&percnt;2Fmoh10ly&period;website&percnt;2Fwp-content&percnt;2Fuploads&percnt;2F2018&percnt;2F03&percnt;2Fimage-4&period;png&amp&semi;sa&equals;D&amp&semi;sntz&equals;1&amp&semi;usg&equals;AFQjCNEtAs0lIoLzFC2XsAwMUfBzdoF6KQ" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener"><img src&equals;"https&colon;&sol;&sol;lh4&period;googleusercontent&period;com&sol;tiYXXAirO-bN&lowbar;J3u1gHYF4CJqDruLDKXkA1mXuzKclpkVU9NlRNARrU4VSElq-9KJCVVjTEIg&lowbar;S2U&lowbar;0CyuSAvDh037CA4XI&lowbar;GXh&lowbar;FgyuMiJzPZ9Pzg&equals;w773" alt&equals;"image"&sol;><&sol;a><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p>You can use this script with the same CSV file that you will use for adding members to the groups too &comma; If groups SMTP exists already you’ll get the following error<&sol;p>&NewLine;&NewLine;&NewLine;&NewLine;<figure class&equals;"wp-block-image"><a href&equals;"http&colon;&sol;&sol;www&period;google&period;com&sol;url&quest;q&equals;http&percnt;3A&percnt;2F&percnt;2Fmoh10ly&period;website&percnt;2Fwp-content&percnt;2Fuploads&percnt;2F2018&percnt;2F03&percnt;2Fimage-5&period;png&amp&semi;sa&equals;D&amp&semi;sntz&equals;1&amp&semi;usg&equals;AFQjCNEehbtS4Xl2Hyn0Y3brt8FJ7cKeZg" target&equals;"&lowbar;blank" rel&equals;"noreferrer noopener"><img src&equals;"https&colon;&sol;&sol;lh5&period;googleusercontent&period;com&sol;R3jCxhT1WwA7BTvNw17tzEJdznQGn5Y5dNmuezmWnMPGqrZ9ODg&lowbar;BY2V&lowbar;DaA9mL1aEQ1qx-j83VNcTF2NZu3afwUhVKru0ErI5NwkKZDu&lowbar;9TqciXX&lowbar;E&equals;w773" alt&equals;"image"&sol;><&sol;a><&sol;figure>&NewLine;&NewLine;&NewLine;&NewLine;<p>Note&colon; <&sol;p>&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2524 " id&equals;"quads-ad2524" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;&NewLine;&NewLine;&NewLine;<p>Attached below&comma; You can find the new version of the powershell and the CSV along with it&period; <&sol;p>&NewLine;&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;92 -->&NewLine;<div class&equals;"quads-location quads-ad2526 " id&equals;"quads-ad2526" style&equals;"float&colon;none&semi;margin&colon;0px 3px 3px 3px&semi;padding&colon;0px 0px 0px 0px&semi;" data-lazydelay&equals;"0">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;

moh10ly

Recent Posts

Reset passwords for Active Directory Users

Reset and manage your Active Directory users' Passwords Active Directory is one of the most…

3 years ago

Finding Exchange Database hidden mailboxes. ​

Finding Exchange Database hidden mailboxes. Story:Maybe you have been in this situation before, trying to…

3 years ago

Setting up ADConnect and PTA (Password auth through) servers agents behind proxy

If you're using a Proxy server in your firewall or in your network and have…

3 years ago

Get Report of Active Directory Locked Accounts and Machine they logged in from

Story:I got some clients  that have reported some of their users being locked out and…

3 years ago

Checking and Providing Full and SendAs delegate access on O365 Exchange Online

Delegate Permissions This is a code that I have wrote recently to check if an…

3 years ago

Retrieving attachments from Exchange mailbox using python

Story: I got a request from a client who constantly gets CVs and have to…

4 years ago

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298

Warning: Undefined array key "adsense_ad_type" in /www/wwwroot/www.moh10ly.com/wp-content/plugins/quick-adsense-reloaded/includes/amp-condition-display.php on line 298