Category: Microsoft
Category Archives: Microsoft
Determining next steps for July 1 Intune iOS App SDK intunemam-mtd:// inclusion requirement
I received the following message from Microsoft: “Our telemetry indicates you have iOS apps integrated with the Intune App SDK that will need to be updated to include the common protocol to ensure your MAM iOS apps continue to run smoothly. (…) Before July 2024, update your iOS app by including the common protocol (intunemam-mtd://) to your app’s Info.plist file.”
I have checked all of our active projects and haven’t found any that appear to be using the Intune App SDK. The project structures in Xcode look something like this, with proprietary folders and package names crossed out:
However, I noticed that we use a shell script (attached below) to wrap some of our apps using the Intune MAM wrapper tool during Azure pipeline runs. Does this qualify as the app being integrated, and if so, what do I need to change to ensure my apps comply for the upcoming July 1 deadline? Do I need to add the Intune App SDK to all of my apps now, or would it suffice to simply add intunemam-mtd:// to my app’s Info.plist files as the original message suggested?
#!/usr/bin/env bash
intune_tool_path=“./IntuneMAMPackager”
curl https://raw.githubusercontent.com/msintuneappsdk/intune-app-wrapping-tool-ios/master/Microsoft%20Intune%20Application%20Restrictions%20Packager%20for%20iOS.dmg –output “${intune_tool_path}”
yes | hdiutil attach “${intune_tool_path}” > /dev/null
/usr/libexec/PlistBuddy -c “Add :’Input Application Package Path’ string ${ipaName}” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’Output Application Package Path’ string ${intuneIpaName}” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’Provisioning Profile Path’ string ${provisioningProfile}” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’SHA-1 Certificate Hash’ string ‘iPhone Distribution: [name]'” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’Prevent Default Build Update’ bool true” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’Extension Provisioning Profile Paths’ array” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’Extension Provisioning Profile Paths’: string ${shareProvisioningProfile}” Intune.plist
/usr/libexec/PlistBuddy -c “Add :’Extension Provisioning Profile Paths’: string ${viewerProvisioningProfile}” Intune.plist
/usr/libexec/PlistBuddy -c “Print” Intune.plist
/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -f Intune.plist
Any guidance would be greatly appreciated!
I received the following message from Microsoft: “Our telemetry indicates you have iOS apps integrated with the Intune App SDK that will need to be updated to include the common protocol to ensure your MAM iOS apps continue to run smoothly. (…) Before July 2024, update your iOS app by including the common protocol (intunemam-mtd://) to your app’s Info.plist file.” I have checked all of our active projects and haven’t found any that appear to be using the Intune App SDK. The project structures in Xcode look something like this, with proprietary folders and package names crossed out:However, I noticed that we use a shell script (attached below) to wrap some of our apps using the Intune MAM wrapper tool during Azure pipeline runs. Does this qualify as the app being integrated, and if so, what do I need to change to ensure my apps comply for the upcoming July 1 deadline? Do I need to add the Intune App SDK to all of my apps now, or would it suffice to simply add intunemam-mtd:// to my app’s Info.plist files as the original message suggested? #!/usr/bin/env bashintune_tool_path=”./IntuneMAMPackager”curl https://raw.githubusercontent.com/msintuneappsdk/intune-app-wrapping-tool-ios/master/Microsoft%20Intune%20Application%20Restrictions%20Packager%20for%20iOS.dmg –output “${intune_tool_path}”yes | hdiutil attach “${intune_tool_path}” > /dev/null/usr/libexec/PlistBuddy -c “Add :’Input Application Package Path’ string ${ipaName}” Intune.plist/usr/libexec/PlistBuddy -c “Add :’Output Application Package Path’ string ${intuneIpaName}” Intune.plist/usr/libexec/PlistBuddy -c “Add :’Provisioning Profile Path’ string ${provisioningProfile}” Intune.plist/usr/libexec/PlistBuddy -c “Add :’SHA-1 Certificate Hash’ string ‘iPhone Distribution: [name]'” Intune.plist/usr/libexec/PlistBuddy -c “Add :’Prevent Default Build Update’ bool true” Intune.plist/usr/libexec/PlistBuddy -c “Add :’Extension Provisioning Profile Paths’ array” Intune.plist/usr/libexec/PlistBuddy -c “Add :’Extension Provisioning Profile Paths’: string ${shareProvisioningProfile}” Intune.plist/usr/libexec/PlistBuddy -c “Add :’Extension Provisioning Profile Paths’: string ${viewerProvisioningProfile}” Intune.plist/usr/libexec/PlistBuddy -c “Print” Intune.plist/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -f Intune.plist Any guidance would be greatly appreciated! Read More
MS Form Pre fill user name and email in text field
Is it possible to pre fill the text fields in MS form with logged in user name and email at the time of form filling.
Is it possible to pre fill the text fields in MS form with logged in user name and email at the time of form filling. Read More
Using Drive mapping in Intune.
Hi guys!
I`ve being using drive mapping in Intune but a 1 or 2 weeks ago I got some problem and the policy completly stopped.
When I saw in event viewer I got the error below
MDM ConfigurationManager: Command failure status. Configuraton Source ID: (6187F328-9E03-4412-84C5-75043FCDE3E8), Enrollment Type: (MDMDeviceWithAAD), CSP Name: (Policy), Command Type: (Clear: first phase of Delete), CSP URI: (./Device/Vendor/MSFT/Policy/ConfigOperations/ADMXInstall/DriveMapping/Policy/DriveMappingAdmx), Result: (Unknown Win32 Error code: 0x86000011).
Its a configuration policie using ADMX Imported Administrative Templates.
Do you guys have some idea?
Thank you.
Hi guys! I`ve being using drive mapping in Intune but a 1 or 2 weeks ago I got some problem and the policy completly stopped. When I saw in event viewer I got the error belowMDM ConfigurationManager: Command failure status. Configuraton Source ID: (6187F328-9E03-4412-84C5-75043FCDE3E8), Enrollment Type: (MDMDeviceWithAAD), CSP Name: (Policy), Command Type: (Clear: first phase of Delete), CSP URI: (./Device/Vendor/MSFT/Policy/ConfigOperations/ADMXInstall/DriveMapping/Policy/DriveMappingAdmx), Result: (Unknown Win32 Error code: 0x86000011). Its a configuration policie using ADMX Imported Administrative Templates. Do you guys have some idea? Thank you. Read More
Need help to display DataTable data on C# form
I have 2 instances running, one is the application and another one is running as server. I have a log form to show some records added on the DataTable as log information. Data row added during server runtime is not showing on the client instance form when click to open the form. I’m not familiar with C#, please share some ideas how can I achieve this, thanks.
I have 2 instances running, one is the application and another one is running as server. I have a log form to show some records added on the DataTable as log information. Data row added during server runtime is not showing on the client instance form when click to open the form. I’m not familiar with C#, please share some ideas how can I achieve this, thanks. Read More
Silver Partner
How do I redeem my Silver Partner status? Or apply for a new one?
How do I redeem my Silver Partner status? Or apply for a new one? Read More
¿fTPM is supported in self deploying autopilot profiles?
Hi,
someone has experience enrolling shared pc’s in intune via self-deploying profiles with AMD fTPM? I need to deploy this type of machine and as far as i know TPM 2.0 and TPM attestation support is necessary. Today I´ve learned what is fTPM and have been searching for information about this related with Intune but with inconclusive results.
After reading the forums some people say it has worked for them, others don’t.
The only “official” documentation I have found for Intune says that it is a known issue (Windows Autopilot known issues | Microsoft Learn)
“TPM attestation isn’t working on AMD platforms with ASP fTPM.
TPM attestation for AMD platforms with ASP firmware TPM might fail with error code 0x80070490 on Windows systems. This issue is resolved on later versions of AMD firmware. Consult with device manufacturers and firmware release notes for which firmware versions contain the update”
But nothing about versions, computer models…
Does anyone have more precise information that could help me other than consulting the manufacturer about every device? In our case, we would use both new and recycled equipment, and I would like to have a clearer picture of this.
Thank you in advance
Hi,someone has experience enrolling shared pc’s in intune via self-deploying profiles with AMD fTPM? I need to deploy this type of machine and as far as i know TPM 2.0 and TPM attestation support is necessary. Today I´ve learned what is fTPM and have been searching for information about this related with Intune but with inconclusive results.After reading the forums some people say it has worked for them, others don’t. The only “official” documentation I have found for Intune says that it is a known issue (Windows Autopilot known issues | Microsoft Learn)”TPM attestation isn’t working on AMD platforms with ASP fTPM.TPM attestation for AMD platforms with ASP firmware TPM might fail with error code 0x80070490 on Windows systems. This issue is resolved on later versions of AMD firmware. Consult with device manufacturers and firmware release notes for which firmware versions contain the update”But nothing about versions, computer models…Does anyone have more precise information that could help me other than consulting the manufacturer about every device? In our case, we would use both new and recycled equipment, and I would like to have a clearer picture of this.Thank you in advance Read More
Emptying recycle bin
If I change recycle bin properties from custom size to dont move files to recycle bin where do they go are they completely removed from PC or do they go into some hidden folder Read More
Lesson Learned #502: Comparing and Transferring Azure SQL Databases Table Structures Using SMO
This last week, I worked on a service request that we need to compare the existing tables of a database placed on a Azure SQL Server with another hand. If the table doesn’t exist in the target database the intention is to have a script of the table and recreate the table in the target. Following, I would like to share my lessons learned here.
I used the following C# script to play with SMO – SQL Server Management Objects (SMO), please note that it is meant for educational purposes and should be adapted and tested thoroughly before using in a production environment.
using System;
using System.Data;
using System.Threading;
using Microsoft.Data.SqlClient;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.IO;
namespace TransferTables
{
class Program
{
static void Main(string[] args)
{
string sourceConnectionString = “Server=tcp:sourceserver.database.windows.net;Database=sourcedb;User ID=username1;Password=Password1;”;
string destinationConnectionString = “Server=tcp:targetserver.database.windows.net;Database=targetdb;User ID=username2;Password=Password2;”;
TransferTables(sourceConnectionString, destinationConnectionString);
}
static void TransferTables(string sourceConnectionString, string destinationConnectionString)
{
string logFilePath = “c:\temp\TransferTablesLog.txt”;
using (var sourceConnection = CreateRetryConnection(sourceConnectionString, logFilePath))
using (var destinationConnection = CreateRetryConnection(destinationConnectionString, logFilePath))
{
var sourceServer = new Server(new ServerConnection(sourceConnection));
var sourceDatabase = sourceServer.Databases[“sourcedb”];
var destinationServer = new Server(new ServerConnection(destinationConnection));
var destinationDatabase = destinationServer.Databases[“targetdb”];
foreach (Table sourceTable in sourceDatabase.Tables)
{
if (sourceTable.Schema == “dbo”)
{
LogMessage(logFilePath, $”Checking ..{sourceTable.Schema}.{sourceTable.Name}:”);
if (!destinationDatabase.Tables.Contains(sourceTable.Name, sourceTable.Schema))
{
if (!destinationDatabase.Schemas.Contains(sourceTable.Schema))
{
string createSchemaScript = $”CREATE SCHEMA {sourceTable.Schema}”;
ExecuteWithRetry(destinationDatabase, createSchemaScript, logFilePath);
LogMessage(logFilePath, $”Schema created: {sourceTable.Schema}”);
}
var createTableScripts = GetCreateTableScripts(sourceTable);
foreach (var script in createTableScripts)
{
ExecuteWithRetry(destinationDatabase, script, logFilePath);
}
LogMessage(logFilePath, $”Table created: {sourceTable.Schema}.{sourceTable.Name}”);
}
else
{
LogMessage(logFilePath, $”Table exists in destination: {sourceTable.Schema}.{sourceTable.Name}”);
}
}
}
}
}
static List<string> GetCreateTableScripts(Table sourceTable)
{
ScriptingOptions options = new ScriptingOptions
{
ScriptDrops = false,
IncludeIfNotExists = false,
Indexes = true,
DriAllConstraints = true,
DriPrimaryKey = true,
DriForeignKeys = true,
DriUniqueKeys = true,
DriClustered = true,
DriNonClustered = true,
FullTextIndexes = true,
Triggers = true,
Statistics = true
};
StringCollection scriptCollection = sourceTable.Script(options);
List<string> scripts = new List<string>();
foreach (string script in scriptCollection)
{
if (script.StartsWith(“CREATE TRIGGER”, StringComparison.OrdinalIgnoreCase))
{
scripts.Add(script);
}
else if (scripts.Count > 0 && scripts[scripts.Count – 1].StartsWith(“CREATE TRIGGER”, StringComparison.OrdinalIgnoreCase))
{
scripts[scripts.Count – 1] += Environment.NewLine + script;
}
else
{
scripts.Add(script);
}
}
return scripts;
}
static SqlConnection CreateRetryConnection(string connectionString, string logFilePath)
{
SqlConnection connection = new SqlConnection(connectionString);
RetryPolicy retryPolicy = new RetryPolicy();
for (int retry = 0; retry < retryPolicy.MaxRetryCount; retry++)
{
try
{
connection.Open();
return connection;
}
catch (SqlException ex)
{
LogMessage(logFilePath, $”Error opening connection: {ex.Message}”);
if (retry == retryPolicy.MaxRetryCount – 1)
{
throw;
}
Thread.Sleep(retryPolicy.GetRetryDelay(retry));
}
}
return connection;
}
static void ExecuteWithRetry(Database database, string query, string logFilePath)
{
RetryPolicy retryPolicy = new RetryPolicy();
for (int retry = 0; retry < retryPolicy.MaxRetryCount; retry++)
{
try
{
database.ExecuteNonQuery(query);
LogMessage(logFilePath, $”Successfully executed query: {query}”);
return;
}
catch (Exception ex)
{
LogMessage(logFilePath, $”Error executing query: {ex.Message} – Query: {query}”);
if (retry == retryPolicy.MaxRetryCount – 1)
{
LogMessage(logFilePath, $”Imposible after retries”);
}
Thread.Sleep(retryPolicy.GetRetryDelay(retry));
}
}
}
static SqlDataReader ExecuteReaderWithRetry(SqlCommand command, string logFilePath)
{
RetryPolicy retryPolicy = new RetryPolicy();
for (int retry = 0; retry < retryPolicy.MaxRetryCount; retry++)
{
try
{
return command.ExecuteReader();
}
catch (SqlException ex)
{
LogMessage(logFilePath, $”Error executing reader: {ex.Message}”);
if (retry == retryPolicy.MaxRetryCount – 1)
{
throw;
}
Thread.Sleep(retryPolicy.GetRetryDelay(retry));
}
}
return null;
}
static void LogMessage(string logFilePath, string message)
{
using (StreamWriter writer = new StreamWriter(logFilePath, true))
{
writer.WriteLine($”{DateTime.Now}: {message}”);
Console.WriteLine($”{DateTime.Now}: {message}”);
}
}
}
public class RetryPolicy
{
public int MaxRetryCount { get; set; } = 5;
public int RetryDelayBase { get; set; } = 2000; // 2 seconds
public TimeSpan GetRetryDelay(int retryAttempt)
{
return TimeSpan.FromMilliseconds(RetryDelayBase * (retryAttempt + 1));
}
}
}
The script performs the following tasks:
Establishes connections to the source and destination databases.
Iterates through the tables in the source database. In this case, I also included to filter just only the tables that belongs to dbo.
Checks if each table exists in the destination database.
If a table does not exist, it creates the schema and table structure in the destination database.
Logs the actions performed during the process.
One thing that pay my attention and why we used SMO is for the properties that you could specify to obtain the details of the table structure, for example, looking at the GetCreateTableScript Method we could see all the options that the script of the table structure will return, indexes, primary keys, indexes, statistics, etc..
Example:
Disclaimer
This script is for educational purposes only. Ensure you thoroughly review, test, and modify the script to suit your specific requirements and environment before using it in production. The author is not responsible for any data loss or damage resulting from the use of this script.
Microsoft Tech Community – Latest Blogs –Read More
World Refugee Day: Recognizing refugees and displaced people around the globe
Ibrahim Fareedh lives in the Maldives where he has been a fisherman for 20 years. His work supports his wife, two daughters and his parents. Not a day goes by that he doesn’t worry about how climate change is impacting his work, and whether he’ll be forced to leave his home country to support his family. He loves fishing and his home and wants to continue with his way of life for years to come. But he’s facing numerous challenges with rising ocean temperatures and increased erosion affecting the island. His livelihood is tied to fishing. Significant environmental changes force him to travel farther into the sea for both bait and fishing and there is a serious near-term risk of him being displaced altogether. This is the plight for so many around the world.
On June 20th we honor World Refugee Day – an international day designated by the United Nations to recognize refugees and displaced people around the globe. It’s an opportunity to reflect on the strength and courage of those who have been forced to flee their home countries to escape conflict, persecution and environmental and climate-related disasters. It seems like each year, the hurdles in addressing the crisis confronting refugees and displaced people becomes more complex and urgent, and this day challenges us to think more deeply about how we can help produce positive and lasting change.
The world is currently facing the largest global refugee crisis in history
The most crucial aspect to understand about refugees in 2024 is the sheer scale of displacement. According to the United Nations Office of the High Commissioner for Refugees, more than120 million refugees and displaced people worldwide have been forcibly moved due to conflict, violence, persecution, human rights abuses and climate change disruptions. The plight of this staggering number of human beings underscores the importance of global cooperation, compassion, and practical solutions to provide safety and support for those forced to flee their homes.
As part of our mission at Microsoft Tech for Social Impact to provide intergovernmental organizations (IGO) and nonprofits with the technology to accelerate social good globally, we collaborate with third sector organizations to provide solutions and support that help enhance personal safety, health, housing, and family reunification for refugees. Certainly, we recognize that technology isn’t a silver bullet, but it is part of a comprehensive strategy, and it can significantly improve the lives of displaced people.
Our partnerships are key in helping displaced people and identifying vulnerable populations
We have made and continue to prioritize partnerships with organizations like the International Organization for Migration (IOM) – UN Migration. These types of partnerships enable us to, among other things, leverage data analytics to predict migration patterns, allocate resources efficiently, and identify vulnerable populations.
The story of Ibrahim Fareedh in the Maldives is just one of many from our work with IOM, where so many people are worried about their livelihoods – and their lives! – due to very serious environmental conditions. That includes people who fish for a living; they’re living with a lot of uncertainty.
Ibrahim says if climate change weren’t an issue, catching bait and fishing would become easier. The island wouldn’t be subject to erosion, the reef would remain stable, and rising sea levels wouldn’t pose a threat. But unfortunately, that’s not the case. He hopes for positive change — in an ideal world, none of these things would worry him. And he and his family can lead a happy life without excessive fear and difficulties from climate change.
We want to help people like Ibrahim who aren’t yet on the move, but because of climate change may be on the move soon. We believe technology and AI can play a role to help offset the displacement of additional populations.
There are no easy answers, but there are many ways we can help advocate
World Refugee Day is much more than an acknowledgement; it’s an opportunity for each of us to play a part in fostering a world that’s inclusive and equitable, and a time to honor the indomitable spirit of refugees and displaced people by not only recognizing their plight but by actively contributing to a future where everyone has the chance to thrive. I hope this inspires you to consider supporting one of the UN organizations, such as IOM and UNHCR dedicated to supporting refugees and displaced people, or some of the other nonprofits we work with, such as Agape Source and One World Strong. Together we can make a difference.
Continue the conversation by joining us in the Nonprofit Community! Want to share best practices or join community events? Become a member by “Joining” the Nonprofit Community. To stay up to date on the latest nonprofit news, make sure to Follow or Subscribe to the Nonprofit Community Blog space!
Microsoft Tech Community – Latest Blogs –Read More
Announcing Microsoft Teams Webinar integration with HubSpot marketing automation
In today’s rapidly evolving digital landscape, organizations are constantly seeking innovative solutions to enhance their marketing strategies and lead management processes. The integration of HubSpot with Microsoft Teams webinars represents a significant new advancement in this domain for Teams webinar customers, offering a seamless blend of lead scoring and marketing automation capabilities that cater to the dynamic needs of our combined customers. This integration was built using the new Microsoft Teams webinar APIs in Microsoft Graph.
HubSpot, renowned for its robust B2B marketing automation platform, significantly amplifies lead scoring and prioritization, empowering sales teams to identify and engage with high-potential customers effectively. The Teams webinar connector serves as a critical tool in enabling this capability, facilitating the effortless import of data into HubSpot and enriching lead qualification with comprehensive webinar engagement insights. This integration not only fosters efficient marketing and sales alignment but also has the potential to drive revenue growth through strategic targeting and lead nurturing.
This new integration between Teams webinars and HubSpot enables organizations to harness the full potential of marketing events, transforming them into powerful instruments for lead generation and customer engagement. By using the event data generated by Teams webinars, businesses can craft personalized marketing campaigns that resonate with their audience and drive conversions. The integration enables syncing webinar registration and attendance details from Teams webinars to HubSpot marketing events, which can be used to segment contacts in HubSpot. With the integration, users can now:
Sync webinar data such as event name, date, start time, end time, organizer, status, and description to HubSpot Marketing Events.
Sync webinar activity data such as registrations, attendees, cancellations, no-shows, attendance duration, etc. and display this activity on contact pages.
Create new contact records for registrants not yet in HubSpot.
Advantages to deploying the integration
If users have been hosting webinars on Microsoft Teams, historically they may not have had an easy method to import webinar data into HubSpot, leading to challenges in analyzing event performance and contact engagement. Now, users have the ability to sync webinar events and activity data to HubSpot, making it easier to centralize their marketing efforts, create new contacts, and perform data-driven customer outreach.
How can users get started?
For details about how to install the connector for Microsoft Teams events in HubSpot, see Connect HubSpot and Microsoft Teams. When the connector has been installed, users will see a new Webinar Settings tab in the HubSpot integrations/Connected apps available in their settings (within the HubSpot interface).
For administrators in Teams, users will see a Global Settings tab within webinar settings in Teams, from which they can manage account-wide webinars settings including permissions, a global sync toggle, exclusions, and individual user settings.
Users can control their own webinar sync settings via the My Settings tab for webinars they organize. Here, users will see a list of their webinars and can select which ones to sync. Users can also select to sync data from newly scheduled webinars by default.
For a detailed walkthrough that explains how to configure webinar settings, see Connect HubSpot and Microsoft Teams.
After webinar settings are configured, any webinars users choose to sync will generate a marketing event in HubSpot where they can see event-level information, such as the number of registrants, attendees, and cancellations. Properties such as event name, date, start time, end time, organizer, status, and description will sync from Teams to the event record in HubSpot.
In addition, event activity will auto-log on the contact pages of webinar registrants. If a webinar registrant is not already recorded in HubSpot, a corresponding contact record will be created.
For more information about configuring webinars settings, including permissions, see Use HubSpot and Microsoft Teams webinars.
For more information about HubSpot Marketing Events, please see Use marketing events.
Who has access?
This feature is only available to Microsoft Teams integration users whose admins have installed the integration using the Full Install option. If users have the integration installed under the Limited Install option, it needs to be uninstalled and reinstalled under Full Install . For help with the installation process, see Connect HubSpot and Microsoft Teams.
Conclusion
The integration of Microsoft Teams events with HubSpot’s marketing automation platform gives a new additional capability set to Teams webinars as an event marketing solution. By seamlessly syncing webinar data, organizations can leverage targeted, data-driven marketing strategies to enhance lead generation and customer engagement. This integration not only streamlines workflow but also provides valuable insights, enabling businesses to deliver personalized experiences that captivate their audience and drive meaningful interactions.
Microsoft Tech Community – Latest Blogs –Read More
Cross browser manifest v3 support (service_worker)
We have a browser extension where we support multiple browsers.
We are following this advice, which seems to be accepted by the Chrome extension store:
But the Microsoft Edge extension store gives this response:
The following checks failed:
Package acceptance validation error: The background.scripts field cannot be used with manifest version 3. Use the background.service_worker field instead.
We have a browser extension where we support multiple browsers. We are following this advice, which seems to be accepted by the Chrome extension store:https://stackoverflow.com/questions/75043889/manifest-v3-background-scripts-service-worker-on-firefox/78088358#78088358 But the Microsoft Edge extension store gives this response:The following checks failed:Package acceptance validation error: The background.scripts field cannot be used with manifest version 3. Use the background.service_worker field instead. Read More
Revoke VPP App Assignment for Token
Hello, Can anyone clarify if I need to uninstall the VPP apps and then remove the group assignments assigned to the VPP apps or, can I just uninstall the APP apps and leave the groups assigned, and then, I can select the option Revoke all VPP app licenses via the ‘token’ option?
Also, the check box here throws me a curve ball, as I would think that I have to uninstall for the ‘Notify users…’ to notify, but then if it is a non-user affinity device, who gets notified?
Hello, Can anyone clarify if I need to uninstall the VPP apps and then remove the group assignments assigned to the VPP apps or, can I just uninstall the APP apps and leave the groups assigned, and then, I can select the option Revoke all VPP app licenses via the ‘token’ option? Also, the check box here throws me a curve ball, as I would think that I have to uninstall for the ‘Notify users…’ to notify, but then if it is a non-user affinity device, who gets notified? Read More
Tri automatique et numérotation
Bonjour,
Je souhaiterais automatiser le tri de ma feuille Excel selon la couleur des cellules de la colonne D. (Toutes les cellules de couleur jaune, puis toutes les cellules de couleur verte,…).
Dans le même temps, j’aimerais que le numéro de bon d’évacuation suive le réagencement.
Merci d’avance.
A.
Bonjour, Je souhaiterais automatiser le tri de ma feuille Excel selon la couleur des cellules de la colonne D. (Toutes les cellules de couleur jaune, puis toutes les cellules de couleur verte,…).Dans le même temps, j’aimerais que le numéro de bon d’évacuation suive le réagencement. Merci d’avance. A. Read More
SharePoint SiteAnalytics extend to the report to PowerBI
Hello everyone,
I am quite new to Power BI. My company requires a report from SharePoint for site statistics, including content types (pages and documents) and visits. From the SharePoint site usage, you can access Popular Content for only the past 7 days, but overall traffic shows all visits without specifying which content users attended. I have read about audit logs, could it help in my query? Are there maybe another way to show how many users attend the X site page for last 30-90 days?
Is there any way to connect directly from PowerBI to a SharePoint site to show the statistics of attended pages for 30-90 days?
Thank you for your help.
Best regards,
Vik
Hello everyone, I am quite new to Power BI. My company requires a report from SharePoint for site statistics, including content types (pages and documents) and visits. From the SharePoint site usage, you can access Popular Content for only the past 7 days, but overall traffic shows all visits without specifying which content users attended. I have read about audit logs, could it help in my query? Are there maybe another way to show how many users attend the X site page for last 30-90 days?Is there any way to connect directly from PowerBI to a SharePoint site to show the statistics of attended pages for 30-90 days? Thank you for your help. Best regards,Vik Read More
Introduction to Cross-Tenant Mailbox Migrations
Cross-tenant mailbox migrations are typically used in mergers and acquisitions (‘Company A’ buys or merges with ‘Company B’), divestitures (part of ‘Company A’ becomes ‘Company B’), and rebranding (‘Company A’ becomes ‘Company B’). Our built-in capabilities for these scenarios allows tenant admins to use well-known interfaces like Exchange Online PowerShell and the Mailbox Replication service (MRS) to natively migrate user mailboxes from one tenant to another.
This is Part 1 of a 2-part blog series. Part 1 covers the limits of and prerequisites for cross-tenant mailbox moves, as well as what happens when a cross-tenant move is initiated. Part 2 provides guidance on how to troubleshoot cross-tenant mailbox moves.
Migration Capabilities
Be aware of the following when using cross-tenant mailbox migration:
When a mailbox is migrated to another tenant, only user-visible content in the mailbox (also known as ‘Top of Information Store’ – email, contacts, calendar, tasks, and notes) and the Recoverable Items folders (Deletions, Versions, and Purges) are migrated. Non-user-visible content (including Teams chats stored in the Exchange Online mailbox by the Teams service) is not migrated. More on this below.
After migration has successfully completed, the source mailbox is converted to a Mail User object with a ComponentShared mailbox, and all visible data in the mailbox is deleted. Under no circumstances is the source mailbox data available, discoverable, or accessible in any way in the source tenant (except for non-Exchange data that is stored in a user’s mailbox, like Teams chat data and Copilot interactions which remain in the ComponentShared mailbox). Non-Exchange data refers to data stored in the mailbox by Microsoft 365 workloads other than Exchange Online.
Mailboxes on any type of hold cannot be migrated.
If the source tenant is in a hybrid configuration, the Source of Authority (SOA) for users will typically be on-premises Active Directory (AD). The cross-tenant mailbox migration process doesn’t touch on-premises environments at all, so you must manually update the ‘targetAddress’ (RemoteRoutingAddress / ExternalEmailAddress) for each source on-premises user after the source tenant mailbox is moved to the target tenant.
While Teams meetings are moved, the meeting URL isn’t updated for items migrated cross-tenant. Since the URL will be invalid in the target tenant, migrated users must remove and recreate Teams meetings.
Since Teams chat folder content remains with the source tenant within the ComponentShared mailbox location type (and possibly in a SubstrateExtension mailbox, which might be present because of autosplitting a large ComponentShared mailbox), once the user data has been migrated, the Teams chat folder content is available for source tenant admins to search and export using Content Search.
Send On Behalf Of permissions are not migrated, so you’ll need to grant this permission on the target mailbox after the Mail-Enabled User (MEU) to Mailbox conversion completes in the target environment by running Set-Mailbox <principal> -GrantSendOnBehalfTo <delegate>.
Mailbox delegation permissions that are stored in the source mailbox will move and be functional in the target tenant after both the principal and the delegate have been moved to the target tenant.
Source and target tenant domain names must be unique (e.g., “contoso.com” can’t be added to the target tenant while still in use by the source tenant). Beware of NotAcceptedDomain errors that can happen if the other tenant domain email addresses are wrongly stamped on the users during migration or when you are performing a cross-tenant domain migration while moving mailboxes.
Labels cannot be synced or shared between tenants. If the source tenant has labels configured, after the mailbox is migrated to the target tenant, you’ll have to recreate the labels in the target tenant.
Microsoft 365 Group and public folder mailboxes cannot be migrated.
After a mailbox has been migrated cross-tenant, eDiscovery against the migrated user’s mailbox in the source can no longer be performed. If a copy of the source mailbox needs to persist in the source tenant after migration, an admin in the source tenant can copy the mailbox contents to a second mailbox before migrating, which would allow future eDiscovery against the data.
We support moving users with a maximum of 12 auxiliary archive mailboxes. If a user has more than 12 auxiliary archive mailboxes, the move will fail.
Prerequisites
A general rule when troubleshooting cross-tenant migrations, is to first ensure that all prerequisites are met:
The source tenant object should be an active mailbox of type either regular, shared, resource, or room.
The target tenant object should be a MailUser.
The source user mailbox should not be on hold.
A cross-tenant user data migration add-on license must be assigned either on the source or target object. You need one license for each user mailbox being migrated, along with any of the following pre-requisite licenses:
Microsoft 365 Business Basic/Business Standard/Business Premium/F1/F3/E3/E5
Office 365 F3/E1/E3/E5
Exchange Online
SharePoint Online
OneDrive for Business
Here is how this license looks like in the GUI:
In PowerShell, you can see it as EXCHANGET2TMBXMOVE in PersistedCapabilities or Capabilties:
If you decide to move a user back to the source tenant, the move will reuse the same license you used previously to move to the target tenant.
Shared mailboxes and resource / room mailboxes don’t need to be licensed with either an Exchange Online license or a Cross-tenant user data migration license.
At least one mail-enabled security group is required in the source tenant, which is used to scope the list of mailboxes to be moved from the source tenant to the target tenant. This allows the source tenant admin to control which mailboxes are moved, preventing accidental or unintended migrations. Note that using nested groups (e.g., Group B is a member of Group A, and Group A is the group in scope) is strongly discouraged.
Be sure to follow and complete the Configuration steps for cross-tenant mailbox migrations, and verify that the source tenant has accepted the migration application.
What happens during the move?
Cross-tenant mailbox migration uses the same MRS technology used by other Exchange mailbox moves (such as hybrid mailbox moves). From the target tenant perspective it is an onboarding process, and from the source tenant perspective it is offboarding.
The following image depicts the process:
Let’s explain the above:
When the migration batch gets created in the target tenant, we verify that there’s an Organization Relationship containing the source tenant Id for the value of the DomainNames property.
Then source tenant is reached via the migration endpoint that contains the ApplicationID registered in Entra ID and the app’s secret value.
Once the MRSProxy endpoint for the source mailbox (in the source tenant) is reached, we check if there’s an Organization Relationship present with the target tenant ID on the DomainNames property, and that MailboxMoveEnabled is set to “true”. The MailboxMoveCapability property is set to “RemoteOutbound” and the MailboxMovePublishedScopes security group identity (the security group in the source tenant with the mailboxes to be migrated that is checked during this step).
Next, MRS does a partial validation; it checks if the migrating user is present in the target tenant as a Mail Enabled User (MEU). The remaining validation is performed by MRS in step 7.
If partial validation is successful, MRS in the target tenant creates the Migration User Object (retrieved with Get-MigrationUser in the target tenant).
Next, the Migration service invokes New-MoveRequest, calling MRS.
MRS does a full validation by checking other attributes such as ExchangeGuid matching and that the source LegacyExchangeDN is present as an X500 address in the target. If this passes, the injection of the move request is successful, and you will see a Get-MoveRequest besides the previous Get-MigrationUser. This is where we also check if the mailbox being moved is under any type of hold, the number of auxiliary archives it has, and the Organization Relationship exists in the target tenant.
After the move has successfully completed, the mailbox in source tenant is converted to an MEU and the targetAddress on the source tenant’s Mail User Object is stamped with the remote routing address of the target tenant (the TargetDeliveryDomain you set at the beginning of the migration batch). This process leaves the source mailbox as an MEU to ensure coexistence and mail routing until the source tenant admin decides to remove it. Note that if the source mailbox is in an Exchange hybrid environment and you have an on-premises Mail User / Remote Mailbox for the corresponding source mailbox, the ExternalEmailAddress or RemoteRoutingAddress will still point to <SourceTenant>.mail.onmicrosoft.com. This is not changed by MRS because it can only make changes in the Exchange Online environments; it cannot modify any on-premises AD / Exchange objects. You must update on-premises objects after performing a cross-tenant mailbox migration (for example, by running Set-RemoteMailbox <Identity> -RemoteRoutingAddress <TargetTenant>.mail.onmicrosoft.com.
In the target tenant, after the mailbox migration is finished, the Mail User Object you created before migration as part of the prerequisite user matching between the two tenants will be mailbox enabled, as the user’s mailbox now resides in the target tenant.
We hope that this provides a good overview of the cross-tenant mailbox migration process and it’s moving parts. In Part 2 of this series, we will cover troubleshooting.
Mirela Buruiana and Alberto Pascual Montoya
Microsoft Tech Community – Latest Blogs –Read More
Force receipt of confirmation of opening a message (???)
Hello, I hope everyone is well
I know this may seem strange. And even invasive.
It seems clear to me that I can’t “force” this, but I would need confirmation that the message was opened. JUST… It’s not a message in my environment, in Exchange.
Basically: Messages are sent to different recipients. For fairness purposes, delivery confirmation is not enough. If you need to know if it was opened or not.
I must be wrong but I think I read something about it. But anyway…
Is it possible – I don’t think so but I need to clear the doubt – for this to be done?
Thank you very much for your attention.
Best regards
Hello, I hope everyone is wellI know this may seem strange. And even invasive. It seems clear to me that I can’t “force” this, but I would need confirmation that the message was opened. JUST… It’s not a message in my environment, in Exchange. Basically: Messages are sent to different recipients. For fairness purposes, delivery confirmation is not enough. If you need to know if it was opened or not. I must be wrong but I think I read something about it. But anyway… Is it possible – I don’t think so but I need to clear the doubt – for this to be done? Thank you very much for your attention.Best regards Read More
Outlook hacked
Hi, my Outlook was hacked and received blackmail emails demanding bitcoin.
I changed my password, enabled 2FA and use MS Authenticator app. Also did a factory reset.
How can I protect myself, as my activity shows hundreds of unsuccessful sign ins daily, as the hacker is trying to breach my password again. Don’t receive any alerts warning me though.
Hacker claims a trojan virus is on my phone which is invisible to antivirus software. No idea whether this is complete nonsense. Need some advice and guidance. I went to the Police but they were not bothered saying they get dozens of incidents daily.
Hi, my Outlook was hacked and received blackmail emails demanding bitcoin. I changed my password, enabled 2FA and use MS Authenticator app. Also did a factory reset. How can I protect myself, as my activity shows hundreds of unsuccessful sign ins daily, as the hacker is trying to breach my password again. Don’t receive any alerts warning me though. Hacker claims a trojan virus is on my phone which is invisible to antivirus software. No idea whether this is complete nonsense. Need some advice and guidance. I went to the Police but they were not bothered saying they get dozens of incidents daily. Read More
Network assessment
hi folks,
for a customer we have to made a “Network assessment” within his current azure environment. Task we plan to use is for a 1st step to use the Network from Insights to see the health, connectivity and traffic information. Next where we want to look is under Network – monitoring-Diagram.
Do you have further services, solutions to look or add to make a assessment of the customer network?
Thanks for your replies
hi folks, for a customer we have to made a “Network assessment” within his current azure environment. Task we plan to use is for a 1st step to use the Network from Insights to see the health, connectivity and traffic information. Next where we want to look is under Network – monitoring-Diagram.Do you have further services, solutions to look or add to make a assessment of the customer network? Thanks for your replies Read More
Open OST File in Outlook 2019 With All Items
Take the help from Advik OST to PST Converter tool. This application will convert OST to PST format. Because MS Outlook import data in PST file format only. With this software you can export all data from OST file into PST file type. The conversion will be 100% accuracy.
Steps to Open OST file in Outlook 2019
Run Advik OST to PST Converter in your PC.Click Select Files to add OST file in application.Choose mailbox folders to export.Select Output file as PST format.Click Convert button.
After converting OST file into PST, open MS Outlook in your PC. Navigate to File > Import/Export> Import Outlook Data File. Now import PST file from this menu.
Above method is workable with MS Outlook 2013, 2016, 2019, and other editions.
Take the help from Advik OST to PST Converter tool. This application will convert OST to PST format. Because MS Outlook import data in PST file format only. With this software you can export all data from OST file into PST file type. The conversion will be 100% accuracy. Steps to Open OST file in Outlook 2019Run Advik OST to PST Converter in your PC.Click Select Files to add OST file in application.Choose mailbox folders to export.Select Output file as PST format.Click Convert button.After converting OST file into PST, open MS Outlook in your PC. Navigate to File > Import/Export> Import Outlook Data File. Now import PST file from this menu. Above method is workable with MS Outlook 2013, 2016, 2019, and other editions. Read More
How to Import PST to Office 365 Mailbox?
This is very simple with Advik PST File Converter. This utility is specially designed for people who wants to import PST to Office 365 Mailbox. The program basically export emails, contacts, calendar and other data from PST to Office 365 Webmail. You can import multiple PST files to Outlook 365 in bulk as well. It will preserve email attributes and folder heirarchy too.
Steps to Import PST to Office 365 Mailbox
Launch Advik PST File Converter in your PC.Click Select Files and add Outlook.pst file.Select mailbox folders and items from PST file.Select Office 365 as export option.Enter Office 365 login credentials.Click Convert button.
Finished! This is how you can import PST to Office 365 Webmail Mailbox without Outlook.
This is very simple with Advik PST File Converter. This utility is specially designed for people who wants to import PST to Office 365 Mailbox. The program basically export emails, contacts, calendar and other data from PST to Office 365 Webmail. You can import multiple PST files to Outlook 365 in bulk as well. It will preserve email attributes and folder heirarchy too. Steps to Import PST to Office 365 MailboxLaunch Advik PST File Converter in your PC.Click Select Files and add Outlook.pst file.Select mailbox folders and items from PST file.Select Office 365 as export option.Enter Office 365 login credentials.Click Convert button.Finished! This is how you can import PST to Office 365 Webmail Mailbox without Outlook. Read More