If you have installed FIM Self Service Password Reset (SSPR), chances are that management will want to know what sort of return they are getting on their investment. One way to determine ROI on FIM SSPR is to look at the number of phone calls the Help Desk receives for password resets before and after its deployment. However, management will likely want more concrete evidence that it’s the deployment of SSPR that is lowering the number of calls. In this blog posting I will show you how to report on SSPR use without the need for the full scale FIM Reporting feature.
This is a scripted solution that utilizes the FIMAutomation snap-in which is installed automatically when you install the FIM Service. Therefore, you must run the script from the server that hosts the FIM service or install the snap-in on another machine. If you would like to run from another machine, see the following link http://social.technet.microsoft.com/wiki/contents/articles/14550.how-to-run-fim-2010-powershell-cmdlets-on-non-fim-machine.aspx.
In this scenario, management has asked the following questions:
- How frequently is SSPR being used for password resets and password unlocks? Note: The ability to unlock is a feature that became available with MIM 2016.
- How many users have registered for SSPR?
- How many users have not registered for SSPR?
- Names of users not registered and any other relevant information about those users.
I’ve developed a solution that will answer those questions by doing the following:
- Send a weekly email to management to include the following:
- An embedded HTML table that includes a list of users who have not registered for SSPR to include the user’s first name, last name, account name, employee ID, account type, manager, and email address
- The number of users who have registered for SSPR
- The number of users who have NOT registered for SSPR
- The number of successful password resets/account unlocks in the past 30 days
- An attachment that contains the same data found in the embedded table to allow management to sort and filter on the data
- An attachment that contains all previous reported number of successful password reset/unlocks in the past 30 days. Each report as a separate line and date in the file.
- Saves all data to a file directory of choice.
Here is a screen shot of the e-mail output:

Here is a screen shot of the attachment that contains all previous reports on the number of successful password reset or account unlocks in the past 30 days.

Here is a screen shot of the attachment that lists the users who have NOT registered for SSPR.

Now that we have seen what we can accomplish using the FIMAutomation Snap-in, we’ll step through the script that makes up the solution:
Set FIM Resource Management Service Address
First we set the FIM Resource Management Service address. The FIM cmdlet that we will be utilizing requires this “URI” parameter in order to connect to the FIM Service. Note: If you are running the script remotely, you will need to use the server name in place of “localhost”.
set-variable -name URI -value "http://localhost:5725/resourcemanagementservice" -option constant
Add FIMAutomation PSSnapin
Next, we add the FIMAutomation PSSnapin (if not already loaded):
If(@(Get-PSSnapin | Where-Object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {Add-PSSnapin FIMAutomation}
Get Object ID for the “Password Reset AuthN Workflow” Work Flow
The FIM Cmdlet that we will be utilizing requires that we use the FIM ObjectID when referencing objects we will be querying. We get the object IDs by searching on the FIM Display Name. The reason we need the object ID for the “Password Reset AuthN Workflow” is because we will be filtering for users who have this workflow associated with the “AuthN Workflow Registered” attribute on their user account. If the work flow is present (as in the screen shot below) it indicates that they have registered for SSPR.

The code to get the ObjectID for the “Password Reset” AuthN Workflow’ is below:
# Get Object ID for 'Password Reset AuthN Workflow' WF $AuthN_Filter = "/WorkflowDefinition[DisplayName='Password Reset AuthN Workflow']" $AuthN_Export = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($AuthN_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue $AuthN_ObjectID = (($AuthN_Export.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "ObjectID"}).value).split(":")[2]
Get Object ID for the “_Standard Users” Set
We don’t want to report on all user objects in the portal because it will likely include user objects that would not register for SSPR like service accounts, administrator accounts, or shared mailboxes. Management will only want to know about accounts that should be registering for SSPR. So in the code below we are finding the ObjectID for our custom set that contains only standard user accounts.
# Get Object ID for '_Standard Users' Set $StandardUser_Filter = "/Set[DisplayName='_Standard Users']" $StandardUser_Export = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($StandardUser_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue $StandardUser_ObjectID = (($StandardUser_Export.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "ObjectID"}).value).split(":")[2]
Get Object ID for the “Anonymous users can reset their password” MPR
In order to count the number of users who have successfully reset or unlocked their accounts using SSPR, we will need to query the FIM Search History for requests where the applied policy rule is the “Anonymous users can reset their password” MPR. This is the MPR that gets applied only when a user attempts to reset their password or unlock their user account using SSPR.
# Get Object ID for 'Anonymous users can reset their password' MPR $ResetPasswordMPR_Filter = "/*[DisplayName='Anonymous users can reset their password']" $ResetPasswordMPR_Export = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($ResetPasswordMPR_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue $ResetPasswordMPR_ObjectID = (($ResetPasswordMPR_Export.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "ObjectID"}).value).split(":")[2]
Establish Filters for Objects that will be Queried
Next we establish filters for our PowerShell query:
$RegisteredUsers_Filter = "/Person[AuthNWFRegistered = '$AuthN_ObjectID']" $NotRegisteredUsers_Filter = "/Person[(ObjectID = /Set[ObjectID = '$StandardUser_ObjectID']/ComputedMember) and (not(AuthNWFRegistered = '$AuthN_ObjectID'))]" $PasswordResetRequests_Filter = "/Request[ManagementPolicy='$ResetPasswordMPR_ObjectID'and RequestStatus='Completed']"
Export FIM Config
Then we export the data from FIM:
$UsersRegistered_Export = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($RegisteredUsers_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue $UsersNotRegistered_Export = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($NotRegisteredUsers_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue $PasswordResetRequests_Export = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($PasswordResetRequests_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue
Build Array
Then we build an array which is essentially a table in PowerShell which will contain information about the users that we exported:
# Build a table of users containing Display Name, Account Name, and Account Type properties for users who have NOT registered for SSPR [array]$UsersNotRegistered = $Null foreach($Object in $UsersNotRegistered_Export) { $ResetPassNotRegistered = New-Object PSObject $UserDisplayName = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "DisplayName"}).Value) $UserAccountName = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "AccountName"}).Value) $UserAccountType = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "AccountType"}).Value) $UserEmployeeType = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "EmployeeType"}).Value) $UserDepartment = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "Department"}).Value) $UserEmail = (($Object.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq "Email"}).Value) $ResetPassNotRegistered | Add-Member NoteProperty "Display Name" $UserDisplayName $ResetPassNotRegistered | Add-Member NoteProperty "Account Name" $UserAccountName $ResetPassNotRegistered | Add-Member NoteProperty "Account Type" $UserAccountType $ResetPassNotRegistered | Add-Member NoteProperty "Employee Type" $UserEmployeeType $ResetPassNotRegistered | Add-Member NoteProperty "Department" $UserDepartment $ResetPassNotRegistered | Add-Member NoteProperty "Email" $UserEmail $UsersNotRegistered += $ResetPassNotRegistered }
Export Users Not Registered to CSV
The code below allows us to export the list of users who have not registered for SSPR. It appends the date and time to the end of the file name so that reports are not overwritten.
#Set variables $TodaysDate = Get-Date -uformat "%Y_%m_%d_%H_%M" $FileNameNotRegistered = "SSPR_NotRegistered_" + $TodaysDate + ".csv" $CSV_Location_UsersNotRegistered = "C:\FIM_SSPR_Reporting\Reports\" + $FileNameNotRegistered #Export CSV $UsersNotRegistered | export-csv -NoTypeInformation -path $CSV_Location_UsersNotRegistered
Next we export the count of users registered and NOT registered for SSPR as well as the number of successful password resets and unlocks in the last 30 days and appends the output as a row to an existing CSV file.
#Set variables $CSV_Location_Count = "C:\FIM_SSPR_Reporting\Reports\SSPR_UserCounts.csv" #Export CSV new-object PSObject -Property @{ Not_Registered = $UsersNotRegistered_Export.Count ; Registered = $UsersRegistered_Export.Count ; ResetRequestsLast30Days = $PasswordResetRequests_Export.count ; Date = $TodaysDate } | export-csv $CSV_Location_Count -NoTypeInformation -append
Email to Management
And finally, we send emails containing the information collected. We use some HTML coding to give the email a professional appearance.
#Style formatting for HTML Table $a = "<style>" $a = $a + "BODY{background-color:#F5F5F5}" $a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: #004987;border-collapse: collapse;width:100%;}" $a = $a + "TH{border-width: 2px;padding: 10px;border-style: solid;border-color: #FFFFFF;background-color:#004987;font-size:large;color:#FFFFFF}" $a = $a + "TD{border-width: 2px;padding: 10px;border-style: solid;border-color: #FFFFFF;background-color:#B0C4DE;}" $a = $a + "</style>"
#Set variables $SMTP = "corpdc01.corp.local" $to = "bla@blah.com" $From = "NoReply@.corp.local" $Subject = "FIM SSPR Report" $DateForEmail = get-date -DisplayHint Date $DateForEmailTrimmed = ($DateForEmail | Out-String).Trim() $Body = "<H2>FIM SSPR Report</H2>" $CurObjectRegisteredCount = $CurObjectRegistered.Count | out-string $CurObjectNotRegisteredCount = $CurObjectNotRegistered.Count | out-string $CurObjectPasswordResetRequestsCount = $CurObjectPasswordResetRequests.Count | out-string $Pre = "This email report contains both metric and end user data related to FIM SSPR as of " + "$DateForEmailTrimmed." + "<br/><br/>" + ` "<b>Number of users registered for SSPR:</b> " + "$CurObjectRegisteredCount" + "<br/>" + ` "<b>Number of users not registered for SSPR:</b> " + "$CurObjectNotRegisteredCount" + "<br/>" + ` "<b>Number of password resets in the last 30 days:</b> " + "$CurObjectPasswordResetRequestsCount" + "<br/><br/>" + ` "The table below lists all users who have not registered for SSPR. There are two CSV files attached to this email. One contains the same data found " + ` "in the table below and the other contains the historical metric data for trend analysis. " + ` "All reports are stored on the FIM Sync Server at C:\FIM_SSPR_Reporting\Reports." + "<br/><br/>" | out-string $BodyHTML = $UsersNotRegistered | ConvertTo-Html -Head $a -PreContent $Pre -Body $Body $BodyString = $BodyHTML | out-string
#Send mail send-MailMessage -SmtpServer $SMTP -To $To -From $From -Subject $Subject -Body $BodyString -BodyAsHtml -Attachments $CSV_Location_UsersNotRegistered, $CSV_Location_Count
Testing HTML Output
Rather than send an email to test your HTML output, you can out to a local HTML file:
$BodyString | Out-File c:\temp\out.html
Download Complete Script
You may download the complete script here: FIM SSPR Reporting Script. Remember to change the file name to .ps1. Also, the user running the script must have read properties to all objects in FIM.
Hi Paulo,
Thanks for script & it is working perfectly.
Could you please help me with script to retrieve the user who registered to FIM self service with in last 30 days.
# Get Object ID for ‘Password Reset AuthN Workflow’ WF
$AuthNFilter = “/WorkflowDefinition[DisplayName=’Password Reset AuthN Workflow’]”
$AuthNExport = export-fimconfig -uri $URI –onlyBaseResources -customconfig ($AuthN_Filter) -ErrorVariable Err -ErrorAction SilentlyContinue
$AuthNObjectID = (($AuthN_Export.ResourceManagementObject.ResourceManagementAttributes | Where-Object {$_.AttributeName -eq “ObjectID”}).value).split(“:”)[2]
Kindly Help.
Thanks in advance.
Tips effectively taken.!
http://canadianpharmaciescubarx.com/
online pharmacies canada
canadian pharmacies that ship to us
canadian pharmacies online prescriptions
global pharmacy canada
Thanks a lot. A good amount of posts.
http://canadianonlinepharmacynnm.com/
canada pharmacy online orders canadian drugs board of pharmacy canadian pharcharmy
canadian online pharmacies prescription drugs
canadian online pharmacy reviews
pharmacy prescription
drugs from canada
cheap prescription drugs
buy prescription drugs canada
Thanks! Good information.
http://canadianpharmaciescubarx.com/
canada drug pharmacy north west pharmacy canada canadian family pharmacy canadian pharmacy
canadapharmacy com
no 1 canadian pharcharmy online
overseas pharmacy forum
global pharmacy canada
online pharmacy no prescription needed
canadian rx
Many thanks, Valuable information.
http://canadianpharmaciescubarx.com/
no prescription pharmacies canadianpharmacy prescription drugs online without doctor global pharmacy canada
canadadrugs.com pharmacy
canada online pharmacies
drugs without prescription
northwest pharmacy
top rated online canadian pharmacies
online canadian pharcharmy
This is nicely expressed! !
https://nicktambone.com/
pharmacy tech canada drugs online mexican pharmacies shipping to usa trust pharmacy canada
canadian drugs without prescription
online rx pharmacy
online prescription drugs
king pharmacy
canadianpharmacy
canadian rx pharmacy online
Amazing many of wonderful facts.
https://nicktambone.com/
canadapharmacyonline.com london drugs canada online pharmacy canada canadianpharmacy
online pharmacy no prescription needed
buy prescription drugs without doctor
prescription online
canadian family pharmacy
canadian cialis
international pharmacy
Valuable postings. Kudos!
http://talahicc.com/
meds online canadian pharmaceuticals online online canadian pharmacy canadian pharmacies-24h
canada drug
king pharmacy
canadian pharmacies
reputable canadian mail order pharmacies
canada pharmacy online no script
canadian pharmacies online prescriptions
Good data, Kudos.
http://canadianpharmaciescubarx.com/
prescription cost comparison london drugs canada medication costs canadian pharmacies without an rx
canada pharmacy online
canadian pharmacy viagra brand
canadian drugs
best online pharmacies canada
online discount pharmacy
best online pharmacies no prescription
Thanks, Numerous posts!
http://canadianpharmaciescubarx.com/
canadian pharmacy no prescription needed canadian online pharmacies canada pharmacy no prescription canada pharmaceutical online ordering
no prescription pharmacies
canada drugs
buy drugs online
canada drugs online
meds online
canadian drugs without prescription
Wonderful forum posts. Thank you.
http://talahicc.com/
canadadrugs canadian pharmacy prescription drugs without doctor approval online pharmacies canada
reputable canadian mail order pharmacies
online pharmacies no prescription
best price prescription drugs
rx price comparison
canada online pharmacy
canadian pharmacies top best
Nicely put, With thanks!
http://canadianpharmacysilo.com/
canada drug canadian pharmacies that ship to us compare prescription prices canada pharmacy online
rx pharmacy
prescription drugs prices
canadian rx pharmacy online
northwest pharmacy canada
canadian pharmacies online
board of pharmacy
Kudos! I enjoy this!
http://www.canadianpharmacymsn.com/
pharmacy tech canadian pharcharmy pharmacy online northwestpharmacy
prescription cost
canadian pharmacy viagra brand
canadian discount pharmacy
pharmacy online store
online canadian pharmacy
best canadian pharmacies
Kudos! Loads of facts!
http://canadianpharmacymim.com/
candrugstore com online pharmacies of canada best price prescription drugs canada drug
canadian drug stores online
safeway pharmacy
buy prescription drugs online
us pharmacy no prior prescription
pharmacy cost comparison
global pharmacy canada
Nicely put. Many thanks.
http://canadianpharmacyntx.com/
online prescription drugs trust pharmacy canada global pharmacy canada northwest pharmacy
legitimate canadian mail order pharmacies
canada online pharmacy
canadian prescription drugs
canadian drugs without prescription
canadadrugs.com pharmacy
canadapharmacyonline.com
Many thanks. An abundance of forum posts.
http://canadianpharmaciescubarx.com/
canadian pharmacies that are legit canadianpharmacy drugs from canada canadian pharmacies-24h
king pharmacy
online pharmacies no prescription
canada pharmacy online
cheap drugs online
best online pharmacy stores
cheap prescription drugs
Amazing content. Many thanks!
http://canadianpharmacyntx.com/
online drugstore london drugs canada online canadian discount pharmacy canada pharmaceutical online ordering
canadian pharmacy viagra brand
internet pharmacy
best canadian mail order pharmacies
online pharmacy without a prescription
no prior prescription required pharmacy
online drugs
Valuable forum posts. Thank you!
http://canadianonlinepharmacynnm.com/
online pharmacy canadian pharmacies that ship to us best canadian mail order pharmacies canada pharmaceutical online ordering
us pharmacy no prior prescription
best canadian prescription prices
drugs for sale
online pharmacies
canadian prescription drugs
price prescription drugs
Kudos. Loads of stuff!
http://talahicc.com/
prescription drug cost canada drugs canada drugs online canadian pharmacies without an rx
cialis canadian pharmacy
best non prescription online pharmacies
top rated canadian pharmacies online
northwest pharmacy
price prescription drugs
prescription drugs online without
Thank you. Loads of write ups!
http://canadianpharmacysilo.com/
pharmacy prices canadian pharcharmy online pharmacy usa london drugs canada
canada pharmacies online pharmacy
canadian pharcharmy online
canada pharmacies online
price prescription drugs
no prescription online pharmacy
costco pharmacy pricing
You actually stated it effectively.
http://canadianpharmaciescubarx.com/
buy prescription drugs from canada canada online pharmacies prescription drugs without prior prescription canadian pharmacies that ship to us
canadian meds
pharmacy tech
pharmacies in canada
canada drug
top rated online canadian pharmacies
online pharmacy without prescription
Seriously loads of excellent tips!
http://www.canadianpharmacymsn.com/
drug stores near me canadian cialis prescription drug assistance canadian pharmacies-24h
online drugstore
best online pharmacies canada
canadian pharmacy viagra brand
legitimate online pharmacies
online pharmacy without prescription
canadian pharmacies online
Incredible quite a lot of terrific material!
http://canadianpharmaciescubarx.com/
canada pharmacies online pharmacy canada drugs prescription drugs online without doctor canada pharmacy
best canadian pharmacies
onlinecanadianpharmacy.com
canada drug
rx price comparison
pharmacy prescription
canadian pharmacy king
You said it adequately.!
http://canadianpharmaciesnnm.com/
canadapharmacy com online pharmacies canada online discount pharmacy canadian drugs
best canadian prescription prices
canadian pharmacy 365
buy drugs online
canadian pharmacies without prescriptions
medical information online
prescription drug cost
Whoa lots of beneficial tips.
https://nicktambone.com/
prescription pricing canada drug canadian pharcharmy online online pharmacies of canada
canadian pharmacy reviews
canadian prescription drugstore
online drugs
no prescription online pharmacy
cheap drugs online
pharmacy near me
You have made your stand pretty clearly!.
http://canadianonlinepharmacynnm.com/
canadian drugs canada online pharmacies canada drugs online north west pharmacy canada
canadian online pharmacy reviews
canada pharmacies
canada drugs pharmacy
price prescription drugs
canadian prescription
mail order pharmacies
This is nicely said! .
http://www.canadianpharmacymsn.com/
mail order pharmacy trust pharmacy canada canadian drug store canadian pharmacy online
canada pharmacy
drugs without prescription
mail order pharmacy
visit poster’s website
pharmacy online store
discount prescription drug
You said it very well..
http://canadianpharmacysilo.com/
prescription cost canada pharmacy online canadian pharmacies aarp approved canadian online pharmacies
online pharmacy no prescription
mexican pharmacy online
prescription drugs online without
canada pharmacy online no script
prescription drug price comparison
canada drugs
Really loads of useful info!
http://canadianpharmacymim.com/
canada drugs online pharmacy canada pharmacy online prescription cost comparison canadianpharmacy
canadian pharmacy king
best price prescription drugs
northwest pharmacy canada
canadian drug stores online
prescription drug assistance
no 1 canadian pharcharmy online
You mentioned this terrifically!
http://canadianonlinepharmacynnm.com/
best canadian prescription prices canada pharmacy online canada pharmacy online orders canada pharmaceuticals online
canada pharmacies online pharmacy
ed meds online
pharmacy tech
candrugstore com
canadian drugstore
canadian pharmacies that are legit
Cheers. Plenty of tips.
http://canadianpharmacysilo.com/
mail order pharmacy canadian pharmacy international pharmacy canadian drugs
the canadian pharmacy
pharmacies near me
buy prescription drugs canada
canadian pharmacy meds
<a href="http://mirabiliatour.blogspot.com/ask?q=+Wonderful+material%2C+Many+thanks.+http%3A%2F%2Fcanadianpharmacyntx.com%2F+discount+prescription+drugs+online+canadian+drugs+legitimate+canadian+mail+order+pharmacies+%5Burl%3Dhttps%3A%2F%2Fnicktambone.com%2F%5Daarp+approved+canadian+online+pharmacies%5B%2Furl%5D+%0D%0Abest+non+prescription+online+pharmacies+%0D%0Acanada+pharmacies+%0D%0Abuying+drugs+canada+%0D%0Amexican+pharmacies+online+%0D%0Ainternational+pharmacies+that+ship+to+the+usa+%0D%0Aonline+pharmacy+no+prescription+needed&submit=ask”>buy prescription drugs from canada
canadian prescription drugstore
Regards, I value it.
http://canadianpharmacyntx.com/
canada drug pharmacy canada pharmacy cialis online canadian pharcharmy
overseas pharmacy forum
best non prescription online pharmacies
mexican pharmacies online
northwest pharmacy
discount pharmacy online
mexican online pharmacies
You actually mentioned that wonderfully.
http://canadianonlinepharmacynnm.com/
online pharmacy no prescription canada pharmacy no prior prescription required pharmacy canada pharmacy
drug costs
buy prescription drugs without doctor
candrugstore com
canada drugs online
canadian pharmacy meds
pharmacy online store
Truly tons of awesome facts.
http://canadianpharmacysilo.com/
mail order pharmacy canadian online pharmacies no prescription pharmacies canadian pharmacy online
buy cialis
pharmacy online store
northwest pharmacy canada
no prior prescription required pharmacy
canadian pharmacy no prescription
canadian pharmacy
Thanks, Good stuff!
http://canadianpharmaciescubarx.com/
northwest pharmacy canada trust pharmacy canada canadian family pharmacy canada drugs
online pharmacies canada
compare prescription prices
top rated online canadian pharmacies
costco pharmacy pricing
canada drug prices
us pharmacy no prior prescription
Cheers. Numerous data.
http://canadianpharmacyntx.com/
canadian pharmacies online pharmacies canada drug stores near me canadianpharmacy
overseas pharmacies
mexican pharmacies shipping to usa
prescription drug price comparison
canadapharmacy com
canadian pharmacy online
onlinecanadianpharmacy.com
Tips very well utilized.!
https://nicktambone.com/
mexican pharmacy online canadian cialis us pharmacy no prior prescription canadian cialis
canada pharmacies online
prescription cost
online canadian pharmacies
canada drugs online
buy drugs online
cheap drugs online
Nicely put. Appreciate it.
http://talahicc.com/
medical information online northwest pharmacy web medical information canada pharmacy online
canada drug pharmacy
best online pharmacies canada
onlinecanadianpharmacy.com
mexican pharmacy online medications
canadian online pharmacy reviews
canada pharmacy online orders
Kudos. An abundance of facts!
http://canadianpharmacymim.com/
canadian pharmacies without prescriptions canadian online pharmacy best online pharmacy canada pharmacy
cialis online
prescription drugs without prior prescription
pharmacies in canada
rx price comparison
canadian pharmacy online canada
international pharmacy
Many thanks! A lot of postings!
http://canadianpharmacymim.com/
canadian pharmacy viagra brand canadian pharmaceuticals online canadian rx aarp approved canadian online pharmacies
no prescription online pharmacy
best canadian online pharmacy
best online pharmacy
canadian pharmacy online
canadian pharmacy meds
discount pharmacy
Regards, Plenty of stuff!
http://canadianpharmacysilo.com/
prescription drug canada pharmaceutical online ordering canadian pharmacies online northwest pharmacy
canadian drug
pharmacy without dr prescriptions
no prescription pharmacy
ed meds online
pharmacy without dr prescriptions
canadian pharmacy 365
Superb information. Many thanks!
https://nicktambone.com/
best online canadian pharcharmy canadian online pharmacy best non prescription online pharmacies canada online pharmacies
canadian online pharmacy
canadian pharmacy no prescription needed
drug prices comparison
canadian pharmacy without prescription
rx pharmacy
online canadian pharcharmy
Awesome information, Thanks.
https://nicktambone.com/
medication costs canada online pharmacies canada drugs online pharmacy mexican pharmacies shipping to usa
canadian pharmacies that are legit
24 hour pharmacy
canada pharmacies prescription drugs
canadian pharmacy uk delivery
online discount pharmacy
buy prescription drugs canada
Thank you! I enjoy this.
http://canadianpharmacymim.com/
canada pharmacy online no script top rated canadian pharmacies online discount pharmacy canada pharmacy
canada pharmacy online
prescription drugs canada
discount prescription drugs online
24 hour pharmacy
canadian family pharmacy
pharmacy price compare
Nicely put, With thanks!
http://canadianpharmacyntx.com/
legitimate canadian mail order pharmacies north west pharmacy canada online drugs canadian cialis
mexican online pharmacies
international pharmacy
prescription drugs online without
best canadian pharmacies
canada pharmacies prescription drugs
canadian pharmacy uk delivery
Superb posts. With thanks!
http://canadianonlinepharmacynnm.com/
cheap prescription drugs online canadian drugs buy prescription drugs online canadian online pharmacy
us pharmacy no prior prescription
online canadian discount pharmacy
best online pharmacies no prescription
canadian online pharmacies
buy prescription drugs from canada
prescription drug cost
This is nicely said. !
http://www.canadianpharmacymsn.com/
canadian viagra canada drugs canadian pharmacy online online pharmacies canada
canadian pharcharmy online
best canadian pharmacies
canada drugs online pharmacy
canada pharmacies online pharmacy
canadian pharma companies
pharmacies near me
This is nicely expressed! .
http://www.canadianpharmacymsn.com/
no 1 canadian pharcharmy online north west pharmacy canada best canadian pharmacies northwest pharmacy
canada pharmacy online orders
prescription drugs without prior prescription
canada pharmacy online reviews
canadian prescription
canadian drugstore reviews
canadian pharmacy no prescription needed
You’ve made your position extremely clearly!.
http://canadianpharmacymim.com/
medication costs north west pharmacy canada prescription cost comparison canadian pharmaceuticals online
canadadrugs.com pharmacy
top rated canadian pharmacies online
canada drug
canada drugs
canada online pharmacies
medical information online
Regards! Quite a lot of advice!
http://canadianpharmacysilo.com/
my canadian pharmacy canadian pharmacies online drug prices comparison aarp approved canadian online pharmacies
24 hour pharmacy
cheap prescription drugs online
online rx pharmacy
canada drugs pharmacy
canada drug pharmacy
king pharmacy
Nicely put. Regards.
http://canadianpharmacysilo.com/
cialis online trust pharmacy canada buying drugs canada top rated canadian pharmacies online
canada pharmacies online prescriptions
canadian pharmacies online
top rated online canadian pharmacies
canadian pharmacies without prescriptions
rx online
my canadian pharmacy
Many thanks. Loads of tips!
http://canadianpharmacysilo.com/
canadian drugstore canada drug canada pharmacies trust pharmacy canada
highest rated canadian pharmacies
best canadian mail order pharmacies
canadian pharmacy uk delivery
pharmacy prices
drugs for sale
rx price comparison
Well voiced certainly! .
http://canadianpharmacyntx.com/
pharmacy tech canadian pharcharmy best online canadian pharcharmy canada pharmaceutical online ordering
canadian pharmacies top best
top rated online canadian pharmacies
drugstore online
canadian pharmacies shipping to usa
walgreens pharmacy
canada drug prices
Regards. Great stuff!
https://nicktambone.com/
canada pharmacy online orders canadian pharmaceuticals online canada drug prices online pharmacies canada
canadian prescriptions
24 hour pharmacy
prescription without a doctor’s prescription
pharmacy canada
online discount pharmacy
canadian online pharmacies prescription drugs
Thanks a lot! Ample tips!
https://nicktambone.com/
top rated canadian pharmacies online canadianpharmacy canada meds top rated canadian pharmacies online
prescription price comparison
online drugs
prescription drugs prices
online pharmacy without a prescription
canada drugs online pharmacy
drugs from canada
Wonderful stuff. Appreciate it.
http://canadianonlinepharmacynnm.com/
mexican pharmacy online canadian pharmacies best non prescription online pharmacies canadian pharmacies without an rx
cheap canadian drugs
canadian meds
canada online pharmacy
prescription drugs online without doctor
pharmacy online store
prescription drugs online without