Category: Microsoft
Category Archives: Microsoft
Recovering and Validating Data After Unexpected SQL Server Failovers
In SQL Server environments, including on-premises, Azure SQL Database, or SQL Managed Instance, unexpected failovers can sometimes leave Availability Group roles out of sync. When this happens, the new primary replica might take over while the original primary faces issues, leading to possible data discrepancies if transactions were in progress or uncommitted. To recover or validate any data loss, it’s essential to resync or validate the new primary with the old primary as soon as it’s back online. This ensures any lost transactions are reconciled. If critical data was missed during the failover, it must be recovered and merged to maintain database consistency. This blog outlines the steps to recover or validate any data loss using SQL Server Database Compare Utility.
To simulate this situation with the SQL Server Box product, two SQL Server VMs were set up on the same subnet, Always-On HA was turned on for both instances, a simplified WideWorldImportersDW (WWIDW) database was restored and set to full recovery mode. After creating the certificates and logins/users required for Availability Groups (AGs) without domains, an asynchronous commit AG was created (it needed to be asynchronous, since we cannot simulate transaction loss with a synchronous AG).
Using a transaction simulator, many transactions per second were performed into the primary database.
During this activity, the primary instance was stopped, which created a group of committed transactions that had not been replicated to the secondary. The goal of this post is to recover those missing transactions.
After stopping sql1, you need to open the dashboard on sql2, because SSMS can no longer connect to sql1 to update the status:
Opening the Failover wizard – you see a warning about data loss:
The wizard really wants to make sure you know there may be data loss:
Click through to get the results:
The dashboard for sql2 has the current cluster status:
To capture the state of the new primary, immediately create a database snapshot, ideally before opening it up to new application connections:
(In this case we were using sql1 in the transaction simulator and not the sqlistener, so no transactions will be written to sql2).
Restart the sql1 instance. On refresh, you will see that the old primary now has a state of Not Synchronizing / In Recovery.
Create a database snapshot on the old primary (sql1) before making the old primary the secondary (otherwise, when the old primary synchronizes as a secondary, the missing transactions are lost🙁
At this point you can Resume Data Movement to make the old primary a secondary.
It takes a minute for the old primary to roll back lost transactions and resynchronize with the new primary and the old primary should now be a synchronizing secondary;
We can now use the SQL Server Database Compare (SSDBC) application to check if we lost any transactions between the snapshot on the new primary (sql2 – the source) and the snapshot on the old primary (sql1 – the target). Refer to the SSDBC documentation for how to set it up.
In this case we have 313 hash differences (updates) and 423 missing (inserts) rows – note that we have no deletes that were not replicated because of timing of the simulated transaction cascading deletes (deletes stop if we exceed the configured percentage until the inserts/updates catch up):
Looking at the SSDBC folder in My Documents – we can see a SQL script file for each table in the database, with numbers in front to indicate the order you should run them in (based on foreign key references). If the database has DRI configured, you may need to combine scripts if the referenced table has an identity column and if you have the identity value capture option turned on. In the same folder are log files which contain more details about the comparison.
Opening one of the files, you can see update and insert statements. The update statements are written to try to be as safe as possible by checking (with additional conditions in the where clause) that the column value hasn’t been subsequently changed on the new primary.
After running all the change scripts on WWIDW on sql2 and then re-running SSDBC on WWIDW on sql2 (not the snapshot) and the sql1 snapshot – we see that the databases are now the same (note that this will only work on a static new primary);
Note that we could also use the tablediff utility or SSDT to generate a differences script.
The SSDBC download package contains a PowerShell script to make running the comparison operations across many servers/databases easier by making it Excel workbook driven. You can list your source and target servers and databases in the provided Servers.xlsx workbook and run the BulkDatabaseRecovery.ps1 script.
Feedback and suggestions
If you have feedback or suggestions for improving this team asset, please contact the Azure Databases SQL Customer Success Engineering Team. Thank you for your support!
Microsoft Tech Community – Latest Blogs –Read More
Mesh for Teams license for government
I work for the government. Looking in our Microsoft 365 admin center, I see we own:
Microsoft 365 G3 GCC Microsoft 365 G3 GCC
Microsoft 365 G5 Compliance GCC Microsoft 365 G5 Compliance GCC
Microsoft 365 G5 Security GCC Microsoft 365 G5 Security GCC
Microsoft Teams Premium for GCC Introductory Pricing Microsoft Teams Premium for GCC Introductory Pricing
Microsoft Teams Rooms Pro for GCC Microsoft Teams Rooms Pro for GCC
Do we have license for Mesh for Teams? I ask because per aka.ms/meshprep, there is mention of Premium license in a tenant for “Commercial”.
I work for the government. Looking in our Microsoft 365 admin center, I see we own:Microsoft 365 G3 GCC Microsoft 365 G3 GCCMicrosoft 365 G5 Compliance GCC Microsoft 365 G5 Compliance GCCMicrosoft 365 G5 Security GCC Microsoft 365 G5 Security GCCMicrosoft Teams Premium for GCC Introductory Pricing Microsoft Teams Premium for GCC Introductory PricingMicrosoft Teams Rooms Pro for GCC Microsoft Teams Rooms Pro for GCC Do we have license for Mesh for Teams? I ask because per aka.ms/meshprep, there is mention of Premium license in a tenant for “Commercial”. Read More
Hybrid TaskBar
Personally, I think it’d be nice to have a windows 11 setting that has the apps and search bar in the middle and the windows bar in the bottom left, due to the fact it’s been there for about 30 years, so it’s a hard habit to break for those who were there from the start.
Personally, I think it’d be nice to have a windows 11 setting that has the apps and search bar in the middle and the windows bar in the bottom left, due to the fact it’s been there for about 30 years, so it’s a hard habit to break for those who were there from the start. Read More
“Ugh-oh, there was a problem while creating your booking page” – all users unable to create bookings
All of our users are unable to create shared bookings pages. We have tried via Teams and signed in to Office.com, trying on multiple web browsers. All users have the Microsoft Bookings app assignment granted in 365 Admin Center. I have also turned off Bookings using Powershell, and turned it back on with no success.
Is Bookings as a service working for others? Some users are also reporting that personal bookings calendars have disappeared.
Error attached here:
All of our users are unable to create shared bookings pages. We have tried via Teams and signed in to Office.com, trying on multiple web browsers. All users have the Microsoft Bookings app assignment granted in 365 Admin Center. I have also turned off Bookings using Powershell, and turned it back on with no success. Is Bookings as a service working for others? Some users are also reporting that personal bookings calendars have disappeared. Error attached here: Read More
Pop up reminder based when specific wording is present (VBA or Macro?)
I am trying to create a pop up message/reminder/alert when certain projects read “Overdue” in certain cells.
Is there a simple formula or code that can notify when a cell reads Overdue?
Once I enter dates for my many projects, there are formulas for each project that show when the due date is and whether the project is currently “Not due or Overdue” based on those dates/data.
I am looking to have a pop up reminder or Macro of some sort that I can quickly check if any dates are “Overdue”.
Any and all help is much appreciated !
I am trying to create a pop up message/reminder/alert when certain projects read “Overdue” in certain cells. Is there a simple formula or code that can notify when a cell reads Overdue? Once I enter dates for my many projects, there are formulas for each project that show when the due date is and whether the project is currently “Not due or Overdue” based on those dates/data. I am looking to have a pop up reminder or Macro of some sort that I can quickly check if any dates are “Overdue”. Any and all help is much appreciated ! Read More
Powershell Profiles
Hi! I would like to create profiles for powershell that on launch run commands like ssh to autoconnect to server. I tried making powershell profiles in window but besides of just existing it hasn’t changed anything. When using command New-Item -Path $profile.CurrentUserCurrentHost -ItemType File -Force
It is making profile used by whole powershell. How can i change that so profile for ex. HPServer launches different commands and RPIServer other?
Hi! I would like to create profiles for powershell that on launch run commands like ssh to autoconnect to server. I tried making powershell profiles in window but besides of just existing it hasn’t changed anything. When using command New-Item -Path $profile.CurrentUserCurrentHost -ItemType File -ForceIt is making profile used by whole powershell. How can i change that so profile for ex. HPServer launches different commands and RPIServer other? Read More
Vinesh Phogaat hi hai kya be kar rahe
Ted and I will be in touch with you and your family members
Ted and I will be in touch with you and your family members Read More
Working with a list, but I keep getting errors when updating
Hello!
I’m getting this message in Hebrew (translated to English here):
“The source of the list must be a delimited list or a reference to a single line.”.
“על מקור הרשימה להיות רשימה מופרדת או הפניה לשורה יחידה”
And all I need to do is to update this list, which exists on another page.
I updated it with one value, but the list itself wasn’t updated (I tried to recreate it also, but it didn’t let me, with the same error as above).
I need help about how to update it! And/or how to use as new list in the main sheet.
Please answer,
Thanks for the helpers!
Hello!I’m getting this message in Hebrew (translated to English here):”The source of the list must be a delimited list or a reference to a single line.”.”על מקור הרשימה להיות רשימה מופרדת או הפניה לשורה יחידה”And all I need to do is to update this list, which exists on another page.I updated it with one value, but the list itself wasn’t updated (I tried to recreate it also, but it didn’t let me, with the same error as above).I need help about how to update it! And/or how to use as new list in the main sheet. Please answer,Thanks for the helpers! Read More
Excel Copilot examples for the week of August 12th
The Excel team is happy to share some examples of how Excel Copilot can help you. Here’s what you can look forward to this week:
Monday 12-Aug – Using Excel Copilot to split columns
Tuesday, 13-Aug – Adding email addresses using Excel Copilot (coming soon)
Wednesday, 14-Aug – Working with date columns using Excel Copilot (coming soon)
Thursday, 15-Aug – Converting text to numbers with Excel Copilot (coming soon)
Friday. 16-Aug – Using Excel Copilot to show additional units of measure (coming soon)
Stay tuned,
Microsoft Excel Team
The Excel team is happy to share some examples of how Excel Copilot can help you. Here’s what you can look forward to this week:
Monday 12-Aug – Using Excel Copilot to split columns
Tuesday, 13-Aug – Adding email addresses using Excel Copilot (coming soon)
Wednesday, 14-Aug – Working with date columns using Excel Copilot (coming soon)
Thursday, 15-Aug – Converting text to numbers with Excel Copilot (coming soon)
Friday. 16-Aug – Using Excel Copilot to show additional units of measure (coming soon)
Stay tuned,
Microsoft Excel Team Read More
What’s New in Microsoft EDU webinar – August 2024
Here is our August 2024 webinar agenda:
Copilot for M365 announcements for educators and students
Teams for EDU updates – AI for educators feature rollout and more
Learning Accelerators updates
Reading Coach and Reflect
Clipchamp for EDU rollout
AMA – Ask Microsoft EDU Anything (Q&A)
How to sign up
OPTION 1: August 21st, Wednesday @ 8:00am Pacific Time Register here
OPTION 2: August 21st, Wednesday @ 4:00pm Pacific Time Register here
This is what the webinar portal will look like when you register:
Microsoft Tech Community – Latest Blogs –Read More
Status reports intune
I am using the API “deviceManagement/reports/getUserInstallStatusReport” with the HTTP POST method, and the request body includes:
Intune returns a maximum of 50 records, but some applications are installed by more than 5000 users. To check if a specific user has installed this application and to get the installation status report for this application on their device, I have to loop through the results by incrementing the skip value by 50. This process takes a lot of time and often results in a 429 status (Too Many Requests).
Is there any way to filter by UserName directly? Currently, this doesn’t seem to be supported.
I am using the API “deviceManagement/reports/getUserInstallStatusReport” with the HTTP POST method, and the request body includes: { “select”: [ “UserName”, “UserPrincipalName”, “FailedCount”, “InstalledCount”, “PendingInstallCount”, “NotInstalledCount” ], “skip”: 0, “top”: 50, “filter”: “(ApplicationId eq ‘XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX’)” } Intune returns a maximum of 50 records, but some applications are installed by more than 5000 users. To check if a specific user has installed this application and to get the installation status report for this application on their device, I have to loop through the results by incrementing the skip value by 50. This process takes a lot of time and often results in a 429 status (Too Many Requests).Is there any way to filter by UserName directly? Currently, this doesn’t seem to be supported. Read More
Azure Monitoring Agent Extension – no update
Hello, I am using Azure Arc along with the AzureMonitorLinuxAgent and AzureMonitorWindowsAgent extensions.
However, I’ve encountered multiple instances where the version listed in the changelog for the Azure Monitor Agent extension (Azure Monitor Agent extension versions – Azure Monitor | Microsoft Learn) is newer than the version I can see in the portal – also with azure cli or powershell, the newest version is missing – i only see the previous one.
Has anyone else experienced this issue? Last time they had to redeploy something in westeurope
But i guess this is no coincidence
Thanks if somebody can share there experience or can help…
Hello, I am using Azure Arc along with the AzureMonitorLinuxAgent and AzureMonitorWindowsAgent extensions.However, I’ve encountered multiple instances where the version listed in the changelog for the Azure Monitor Agent extension (Azure Monitor Agent extension versions – Azure Monitor | Microsoft Learn) is newer than the version I can see in the portal – also with azure cli or powershell, the newest version is missing – i only see the previous one.Has anyone else experienced this issue? Last time they had to redeploy something in westeuropeBut i guess this is no coincidenceThanks if somebody can share there experience or can help… Read More
ASP.NET MVC4 to ASP.NET Core 8
Question:
Should replace our DevExpress controls with supported .NET 8 controls?
What are our options going forward?
Background
We are migrating ASP.NET 4 MVC to ASP.NET Core 8. Our application has DevExpress controls which underneath uses System.Web(.NET Framework 4.8). DevExpress controls use System.Web assembly or extend System.Web.UI.Control from that library. Regarding documentation ASP.NET Core 8 doesn’t support System.Web.UI.Controls. And our code doesn’t compile because of that.
Question: Should replace our DevExpress controls with supported .NET 8 controls?What are our options going forward? BackgroundWe are migrating ASP.NET 4 MVC to ASP.NET Core 8. Our application has DevExpress controls which underneath uses System.Web(.NET Framework 4.8). DevExpress controls use System.Web assembly or extend System.Web.UI.Control from that library. Regarding documentation ASP.NET Core 8 doesn’t support System.Web.UI.Controls. And our code doesn’t compile because of that. Read More
Lookup and Iterate
I have a dataset that i would like to use to lookup but I need to iterate between set values such as 1:03 that falls between 1:00 and 1:05 AFTER my time of concentration is greater than 1 hr. Any help would be greatly appreciated.
D=0.48Duration of rainfall event (hours)SI=0.02Slope of longest flow path (elevation difference between 10% and 85% of path length, divided by .75L)Tc=00:29Time of concentration (This is the cell that is looked up on the table Column A)*Tc is calculated using equation that assumes grass and aggregate-lined roads and ditches Recurrence Interval
(Intensity) first lookup value
=LOOKUP(B19,’Riley County Rainfall Intensity’!A2:A117,’Riley County Rainfall Intensity’!B2:B117)
(Discharge)
(inches/hr)Qt (cfs)2 year2.54 132 5 year3.1926510 year3.7539025 year4.5659850 year4.86698100 year5.89919
Table Referenced
Time2yr5yr10yr25yr50yr100yr00:055.797.268.5310.3711.8513.3800:065.356.717.899.5810.9512.3600:0756.277.378.9510.2311.5500:084.715.96.948.439.6310.8800:094.465.596.577.989.1210.300:104.245.316.257.598.679.7900:114.045.075.967.248.279.3400:123.864.855.76.927.918.9300:133.714.655.476.657.598.5700:143.574.485.266.47.318.2500:153.444.325.086.177.057.9600:163.344.194.935.996.847.7200:173.254.084.795.826.657.5100:183.163.974.675.676.477.3100:193.093.874.555.536.317.1300:203.013.784.445.46.166.9600:212.943.694.345.276.026.800:222.883.614.245.155.896.6500:232.813.534.155.045.766.500:242.753.464.064.945.646.3700:252.73.393.984.845.536.2400:262.643.323.94.745.426.1200:272.593.253.834.655.31600:282.543.193.754.565.215.8900:292.493.133.684.485.125.7800:302.443.073.614.395.025.6800:312.43.023.554.324.945.5800:322.362.973.494.254.865.4900:332.322.923.434.184.785.4100:342.282.873.384.114.715.3200:352.252.823.324.054.635.2400:362.212.783.273.984.565.1600:372.182.733.223.924.495.0900:382.142.693.173.864.425.0100:392.112.653.123.84.364.9400:402.082.613.073.754.34.8700:412.052.573.033.694.234.800:422.022.532.983.644.174.7300:431.992.492.943.594.124.6700:441.962.462.93.544.064.6100:451.932.422.863.4944.5400:461.92.392.823.443.954.4800:471.882.362.783.393.94.4300:481.852.322.743.353.854.3700:491.822.292.73.313.84.3100:501.82.262.673.263.754.2600:511.782.232.633.223.74.2100:521.752.22.63.183.664.1600:531.732.172.573.143.614.1100:541.712.152.533.13.574.0600:551.692.122.53.063.524.0100:561.672.092.473.033.483.9600:571.652.072.442.993.443.9200:581.632.042.412.953.43.8700:591.612.022.382.923.363.8301:001.5922.362.893.323.7801:051.511.892.242.743.163.601:101.441.82.132.613.013.4301:151.371.722.032.52.883.2801:201.311.651.942.392.753.1401:251.261.581.862.292.643.0201:301.211.511.792.22.542.901:351.161.461.722.122.452.7901:401.121.41.662.042.362.6901:451.081.351.61.972.282.601:501.041.311.551.912.22.5201:551.011.271.51.852.132.4402:000.981.231.451.792.072.3702:050.951.191.411.742.012.302:100.921.161.371.691.962.2402:150.91.131.341.651.912.1802:200.871.11.31.61.862.1302:250.851.071.271.561.812.0802:300.831.041.241.531.772.0302:350.811.021.211.491.731.9802:400.7911.181.461.691.9402:450.770.971.151.421.651.902:500.760.951.131.391.621.8602:550.740.931.11.361.581.8203:000.730.911.081.341.551.7803:150.680.861.021.261.461.6803:300.650.810.971.191.391.5903:450.610.770.921.131.321.5204:000.580.740.871.081.261.4404:150.560.70.831.031.21.3804:300.530.670.80.991.151.3204:450.510.650.770.951.11.2705:000.490.620.740.911.061.2205:150.470.60.710.881.021.1705:300.460.580.680.850.981.1305:450.440.560.660.820.951.0906:000.430.540.640.790.921.0506:300.40.510.60.740.860.9907:000.380.480.570.70.810.9307:300.360.450.540.660.770.8808:000.340.430.510.630.730.8408:300.320.410.490.60.70.809:000.310.390.470.570.660.7609:300.30.380.450.550.630.7210:000.290.360.430.530.610.6910:300.270.350.410.510.580.6611:000.260.330.40.490.560.6411:300.250.320.380.470.540.6112:000.250.310.370.450.520.5913:000.230.290.340.420.490.5514:000.220.270.320.40.460.5215:000.210.260.310.370.430.4916:000.190.250.290.350.410.4617:000.190.230.270.340.380.4418:000.180.220.260.320.370.4119:000.170.210.250.30.350.3920:000.160.20.240.290.330.3821:000.160.190.230.280.320.3622:000.150.190.220.270.310.3523:000.140.180.210.260.290.3300:000.140.170.20.250.280.32
I have a dataset that i would like to use to lookup but I need to iterate between set values such as 1:03 that falls between 1:00 and 1:05 AFTER my time of concentration is greater than 1 hr. Any help would be greatly appreciated. D=0.48Duration of rainfall event (hours)SI=0.02Slope of longest flow path (elevation difference between 10% and 85% of path length, divided by .75L)Tc=00:29Time of concentration (This is the cell that is looked up on the table Column A)*Tc is calculated using equation that assumes grass and aggregate-lined roads and ditches Recurrence Interval(Intensity) first lookup value =LOOKUP(B19,’Riley County Rainfall Intensity’!A2:A117,’Riley County Rainfall Intensity’!B2:B117)(Discharge)(inches/hr)Qt (cfs)2 year2.54 132 5 year3.1926510 year3.7539025 year4.5659850 year4.86698100 year5.89919 Table Referenced Time2yr5yr10yr25yr50yr100yr00:055.797.268.5310.3711.8513.3800:065.356.717.899.5810.9512.3600:0756.277.378.9510.2311.5500:084.715.96.948.439.6310.8800:094.465.596.577.989.1210.300:104.245.316.257.598.679.7900:114.045.075.967.248.279.3400:123.864.855.76.927.918.9300:133.714.655.476.657.598.5700:143.574.485.266.47.318.2500:153.444.325.086.177.057.9600:163.344.194.935.996.847.7200:173.254.084.795.826.657.5100:183.163.974.675.676.477.3100:193.093.874.555.536.317.1300:203.013.784.445.46.166.9600:212.943.694.345.276.026.800:222.883.614.245.155.896.6500:232.813.534.155.045.766.500:242.753.464.064.945.646.3700:252.73.393.984.845.536.2400:262.643.323.94.745.426.1200:272.593.253.834.655.31600:282.543.193.754.565.215.8900:292.493.133.684.485.125.7800:302.443.073.614.395.025.6800:312.43.023.554.324.945.5800:322.362.973.494.254.865.4900:332.322.923.434.184.785.4100:342.282.873.384.114.715.3200:352.252.823.324.054.635.2400:362.212.783.273.984.565.1600:372.182.733.223.924.495.0900:382.142.693.173.864.425.0100:392.112.653.123.84.364.9400:402.082.613.073.754.34.8700:412.052.573.033.694.234.800:422.022.532.983.644.174.7300:431.992.492.943.594.124.6700:441.962.462.93.544.064.6100:451.932.422.863.4944.5400:461.92.392.823.443.954.4800:471.882.362.783.393.94.4300:481.852.322.743.353.854.3700:491.822.292.73.313.84.3100:501.82.262.673.263.754.2600:511.782.232.633.223.74.2100:521.752.22.63.183.664.1600:531.732.172.573.143.614.1100:541.712.152.533.13.574.0600:551.692.122.53.063.524.0100:561.672.092.473.033.483.9600:571.652.072.442.993.443.9200:581.632.042.412.953.43.8700:591.612.022.382.923.363.8301:001.5922.362.893.323.7801:051.511.892.242.743.163.601:101.441.82.132.613.013.4301:151.371.722.032.52.883.2801:201.311.651.942.392.753.1401:251.261.581.862.292.643.0201:301.211.511.792.22.542.901:351.161.461.722.122.452.7901:401.121.41.662.042.362.6901:451.081.351.61.972.282.601:501.041.311.551.912.22.5201:551.011.271.51.852.132.4402:000.981.231.451.792.072.3702:050.951.191.411.742.012.302:100.921.161.371.691.962.2402:150.91.131.341.651.912.1802:200.871.11.31.61.862.1302:250.851.071.271.561.812.0802:300.831.041.241.531.772.0302:350.811.021.211.491.731.9802:400.7911.181.461.691.9402:450.770.971.151.421.651.902:500.760.951.131.391.621.8602:550.740.931.11.361.581.8203:000.730.911.081.341.551.7803:150.680.861.021.261.461.6803:300.650.810.971.191.391.5903:450.610.770.921.131.321.5204:000.580.740.871.081.261.4404:150.560.70.831.031.21.3804:300.530.670.80.991.151.3204:450.510.650.770.951.11.2705:000.490.620.740.911.061.2205:150.470.60.710.881.021.1705:300.460.580.680.850.981.1305:450.440.560.660.820.951.0906:000.430.540.640.790.921.0506:300.40.510.60.740.860.9907:000.380.480.570.70.810.9307:300.360.450.540.660.770.8808:000.340.430.510.630.730.8408:300.320.410.490.60.70.809:000.310.390.470.570.660.7609:300.30.380.450.550.630.7210:000.290.360.430.530.610.6910:300.270.350.410.510.580.6611:000.260.330.40.490.560.6411:300.250.320.380.470.540.6112:000.250.310.370.450.520.5913:000.230.290.340.420.490.5514:000.220.270.320.40.460.5215:000.210.260.310.370.430.4916:000.190.250.290.350.410.4617:000.190.230.270.340.380.4418:000.180.220.260.320.370.4119:000.170.210.250.30.350.3920:000.160.20.240.290.330.3821:000.160.190.230.280.320.3622:000.150.190.220.270.310.3523:000.140.180.210.260.290.3300:000.140.170.20.250.280.32 Read More
SharePoint List JSON Formatting – Layout elements horizontally instead of vertically
How to I change the JSON below so that the elements shown in the screenshot are laid out horizontally instead of vertically?
Thank you,
Ed
{
“$schema”: “https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json”,
“hideSelection”: true,
“hideColumnHeader”: false,
“rowFormatter”: {
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-card”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“margin-left”: “10px”,
“margin-right”: “25px”,
“height”: “130px”
},
“children”: [
{
“elmType”: “img”,
“attributes”: {
“src”: “@thumbnail.large”,
“title”: “[$Title]”
},
“style”: {
“border”: “1px solid #808080”,
“border-radius”: “2%”,
“width”: “100%”
}
}
]
},
{
“elmType”: “div”,
“style”: {
“text-align”: “left”,
“border-left”: “2px solid rgba(200, 200, 200, 0.5)”,
“padding-left”: “2px”
},
“children”: [
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-title”
},
“style”: {
“font-weight”: “semi-bold”,
“font-size”: “x-large”,
“margin-left”: “10px”
},
“txtContent”: “=if([$TalkTitle] == ”, [$FileLeafRef], [$TalkTitle])”
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Duration: “
},
{
“elmType”: “span”,
“txtContent”: “[$Duration]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “DDD Year: “
},
{
“elmType”: “span”,
“txtContent”: “[$DDDYear]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Speaker Name: “
},
{
“elmType”: “span”,
“txtContent”: “[$SpeakerName]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Business Area: “
},
{
“elmType”: “span”,
“txtContent”: “[$BusinessArea]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Product Name: “
},
{
“elmType”: “span”,
“txtContent”: “[$ProductName]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “General Subject/Concept: “
},
{
“elmType”: “span”,
“txtContent”: “[$GeneralSubject_x002f_Concept]”
}
]
},
{
“elmType”: “button”,
“customRowAction”: {
“action”: “defaultClick”
},
“style”: {
“width”: “150px”,
“margin-left”: “10px”,
“display”: “span”
},
“txtContent”: “Watch Now”,
“attributes”: {
“class”: “sp-row-button ms-bgColor-purple sp-row-button ms-bgColor-purpleDark–hover ms-fontWeight-semibold ms-fontColor-white”
}
},
{
“elmType”: “button”,
“customRowAction”: {
“action”: “share”
},
“style”: {
“width”: “150px”,
“margin-left”: “10px”
},
“txtContent”: “Share”,
“attributes”: {
“class”: “sp-row-button ms-bgColor-grey sp-row-button ms-bgColor-purpleDark–hover ms-fontColor-white–hover”
}
},
{
“elmType”: “button”,
“customRowAction”: {
“action”: “editProps”
},
“style”: {
“width”: “150px”,
“margin-left”: “10px”,
“display”: “span”
},
“txtContent”: “View Details”,
“attributes”: {
“class”: “sp-row-button ms-bgColor-grey sp-row-button ms-bgColor-purpleDark–hover ms-fontColor-white–hover”
}
}
]
}
]
}
}
How to I change the JSON below so that the elements shown in the screenshot are laid out horizontally instead of vertically? Thank you,Ed{
“$schema”: “https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json”,
“hideSelection”: true,
“hideColumnHeader”: false,
“rowFormatter”: {
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-card”
},
“children”: [
{
“elmType”: “div”,
“style”: {
“margin-left”: “10px”,
“margin-right”: “25px”,
“height”: “130px”
},
“children”: [
{
“elmType”: “img”,
“attributes”: {
“src”: “@thumbnail.large”,
“title”: “[$Title]”
},
“style”: {
“border”: “1px solid #808080”,
“border-radius”: “2%”,
“width”: “100%”
}
}
]
},
{
“elmType”: “div”,
“style”: {
“text-align”: “left”,
“border-left”: “2px solid rgba(200, 200, 200, 0.5)”,
“padding-left”: “2px”
},
“children”: [
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-title”
},
“style”: {
“font-weight”: “semi-bold”,
“font-size”: “x-large”,
“margin-left”: “10px”
},
“txtContent”: “=if([$TalkTitle] == ”, [$FileLeafRef], [$TalkTitle])”
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Duration: “
},
{
“elmType”: “span”,
“txtContent”: “[$Duration]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “DDD Year: “
},
{
“elmType”: “span”,
“txtContent”: “[$DDDYear]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Speaker Name: “
},
{
“elmType”: “span”,
“txtContent”: “[$SpeakerName]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Business Area: “
},
{
“elmType”: “span”,
“txtContent”: “[$BusinessArea]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “Product Name: “
},
{
“elmType”: “span”,
“txtContent”: “[$ProductName]”
}
]
},
{
“elmType”: “div”,
“attributes”: {
“class”: “sp-row-listPadding”
},
“style”: {
“margin-left”: “10px”,
“font-size”: “larger”
},
“children”: [
{
“elmType”: “span”,
“style”: {
“font-weight”: “bold”
},
“txtContent”: “General Subject/Concept: “
},
{
“elmType”: “span”,
“txtContent”: “[$GeneralSubject_x002f_Concept]”
}
]
},
{
“elmType”: “button”,
“customRowAction”: {
“action”: “defaultClick”
},
“style”: {
“width”: “150px”,
“margin-left”: “10px”,
“display”: “span”
},
“txtContent”: “Watch Now”,
“attributes”: {
“class”: “sp-row-button ms-bgColor-purple sp-row-button ms-bgColor-purpleDark–hover ms-fontWeight-semibold ms-fontColor-white”
}
},
{
“elmType”: “button”,
“customRowAction”: {
“action”: “share”
},
“style”: {
“width”: “150px”,
“margin-left”: “10px”
},
“txtContent”: “Share”,
“attributes”: {
“class”: “sp-row-button ms-bgColor-grey sp-row-button ms-bgColor-purpleDark–hover ms-fontColor-white–hover”
}
},
{
“elmType”: “button”,
“customRowAction”: {
“action”: “editProps”
},
“style”: {
“width”: “150px”,
“margin-left”: “10px”,
“display”: “span”
},
“txtContent”: “View Details”,
“attributes”: {
“class”: “sp-row-button ms-bgColor-grey sp-row-button ms-bgColor-purpleDark–hover ms-fontColor-white–hover”
}
}
]
}
]
}
} Read More
New Blog | eDiscovery launches a modern, intuitive user experience
By ninachen
This month, we have launched a redesigned Microsoft Purview eDiscovery product experience in public preview. This improved user experience revolutionizes your data search, review and export tasks within eDiscovery. Our new user-friendly and feature-rich eDiscovery experience is not just about finding and preserving data, it’s about doing it with unprecedented efficiency and ease. The modern user experience of eDiscovery addresses some long-standing customer requests, such as enhanced search capabilities with MessageID, Sensitive Information Types (SITs) and sensitivity labels. It also introduces innovative features like draft query with Copilot and search using audit log. These changes, driven by customer feedback and our commitment to innovation, offer tangible value by saving time and reducing costs in the eDiscovery process.
The new eDiscovery experience is exclusively available in the Microsoft Purview portal. The new Microsoft Purview portal is a unified platform that streamlines data governance, data security, and data compliance across your entire data estate. It offers a more intuitive experience, allowing users to easily navigate and manage their compliance needs.
Read the full post here: eDiscovery launches a modern, intuitive user experience
By ninachen
This month, we have launched a redesigned Microsoft Purview eDiscovery product experience in public preview. This improved user experience revolutionizes your data search, review and export tasks within eDiscovery. Our new user-friendly and feature-rich eDiscovery experience is not just about finding and preserving data, it’s about doing it with unprecedented efficiency and ease. The modern user experience of eDiscovery addresses some long-standing customer requests, such as enhanced search capabilities with MessageID, Sensitive Information Types (SITs) and sensitivity labels. It also introduces innovative features like draft query with Copilot and search using audit log. These changes, driven by customer feedback and our commitment to innovation, offer tangible value by saving time and reducing costs in the eDiscovery process.
The new eDiscovery experience is exclusively available in the Microsoft Purview portal. The new Microsoft Purview portal is a unified platform that streamlines data governance, data security, and data compliance across your entire data estate. It offers a more intuitive experience, allowing users to easily navigate and manage their compliance needs.
Read the full post here: eDiscovery launches a modern, intuitive user experience Read More
New Blog | Face Check is now generally available
By Ankur Patel
Earlier this year we announced the public preview of Face Check with Microsoft Entra Verified ID – a privacy-respecting facial matching feature for high-assurance identity verifications and the first premium capability of Microsoft Entra Verified ID. Today I’m excited to announce that Face Check with Microsoft Entra Verified ID is generally available. It is offered both by itself and as part of the Microsoft Entra Suite, a complete identity solution that delivers Zero Trust access by combining network access, identity protection, governance, and identity verification capabilities.
Unlocking high-assurance verifications at scale
There’s a growing risk of impersonation and account takeover. Bad actors use insecure credentials in 66% of attack paths. For example, impersonators may use a compromised password to fraudulently log in to a system. With advancements in generative AI, complex impersonation tactics such as deepfakes are growing as well. Many organizations regularly onboard new employees remotely and offer a remote help desk. Without strong identity verification, how can organizations know who is on the other side of these digital interactions? Impersonators can easily bypass common verification methods such as counting bicycles on a CAPTCHA or asking which street you grew up on. As fraud skyrockets for businesses and consumers, and impersonation tactics have become increasingly complex, identity verification has never been more important.
Microsoft Entra Verified ID is based on open standards, enabling organizations to verify the widest variety of credentials using a simple API. Verified ID integrates with some of the leading verification partners to verify identity attributes for individuals (for example, a driver’s license and a liveness match) across 192 countries. Today, hundreds of organizations rely on Verified ID to remotely onboard new users and reduce fraud when providing self-service recovery. For example, using Verified ID, Skype has reduced fraudulent cases of registering Skype Phone Numbers in Japan by 90%.
Read the full post here: Face Check is now generally available
By Ankur Patel
Earlier this year we announced the public preview of Face Check with Microsoft Entra Verified ID – a privacy-respecting facial matching feature for high-assurance identity verifications and the first premium capability of Microsoft Entra Verified ID. Today I’m excited to announce that Face Check with Microsoft Entra Verified ID is generally available. It is offered both by itself and as part of the Microsoft Entra Suite, a complete identity solution that delivers Zero Trust access by combining network access, identity protection, governance, and identity verification capabilities.
Unlocking high-assurance verifications at scale
There’s a growing risk of impersonation and account takeover. Bad actors use insecure credentials in 66% of attack paths. For example, impersonators may use a compromised password to fraudulently log in to a system. With advancements in generative AI, complex impersonation tactics such as deepfakes are growing as well. Many organizations regularly onboard new employees remotely and offer a remote help desk. Without strong identity verification, how can organizations know who is on the other side of these digital interactions? Impersonators can easily bypass common verification methods such as counting bicycles on a CAPTCHA or asking which street you grew up on. As fraud skyrockets for businesses and consumers, and impersonation tactics have become increasingly complex, identity verification has never been more important.
Microsoft Entra Verified ID is based on open standards, enabling organizations to verify the widest variety of credentials using a simple API. Verified ID integrates with some of the leading verification partners to verify identity attributes for individuals (for example, a driver’s license and a liveness match) across 192 countries. Today, hundreds of organizations rely on Verified ID to remotely onboard new users and reduce fraud when providing self-service recovery. For example, using Verified ID, Skype has reduced fraudulent cases of registering Skype Phone Numbers in Japan by 90%.
Read the full post here: Face Check is now generally available
Work Smarter: Copilot Productivity Tips
No matter if you’re an inbox-zero enthusiast or someone who lets emails pile up, one thing is certain: managing emails can be time-consuming and draining. Whether it’s personal or work-related, we all face the challenge of a busy inbox. Let Copilot in Outlook assist you in organizing your emails, enhancing your communication, and freeing up your time for what truly matters.
As part of a new weekly series that provides Copilot productivity tips, today our team at Microsoft will share with you three specific ways to use Copilot in Outlook. We launched this blog so you can start every week with more ways to save time at work.
Read along for Copilot tips in Outlook!
Tip 1: Organize my inbox
A quick way to tame that wild inbox is to create systems and categories. This not only allows me to tackle emails one category at a time but lets me prioritize which group I should respond to first.
In Outlook, navigate to the upper right corner and select the Copilot icon. From there will drop down four prompts, select the second one, “Organize my inbox.”
The prompt will now appear in the prompt box for you to fill in the details. For example, I want to make sure I catch up with anything that came in directly from my manager. I could ask Copilot to “Create an inbox rule to categorize all emails from Angela Byers as blue.”
From there, Outlook will bring up the rules box to confirm your directive.
I used to find creating rules a bit of a chore but that has since changed. I now have different rules to categorize emails by subject and by sender, and it’s helped me ensure I never miss an important email. The color coding is also visually *chef’s kiss*. Rinse and repeat for that email inbox of your dreams!
Tip 2: Catch up
Have one of those days where your email is busting at the seams? Use this productivity tip to get a summary of your emails from Copilot. Navigate to the upper right corner and click the Copilot icon.
Once the Copilot chat has opened, key in this prompt: “Catch me up on emails from the past day. Organize and summarize by topic.”
(I can’t show you a screenshot of my inbox or the results, but just give it a try and let me know in the comments what you think).
Tip 3: Draft with Copilot
Now that your inbox is color coded and you’re received a download of your recent messages, it’s time to save some time actually drafting emails. Copilot helps me get more efficient by taking what I hope to convey in the prompt and writing a first draft for me.
In Outlook, you can start a new email (either a fresh email or hitting reply to an existing thread) navigate to the middle of the menu ribbon and select the Copilot logo, from there a drop–down menu will appear, select Draft with Copilot.
Having Copilot work out a first draft saves me an underrated amount of time. I find decision-making much quicker when I have something to react to than when I have to draft something myself.
We hope you can apply these tips throughout the week to tame your Outlook inbox! Stay tuned for more productivity tips next Monday to learn additional ways to unlock more value with Copilot for Microsoft 365!
Microsoft Tech Community – Latest Blogs –Read More
Now Available: the Copilot for Microsoft 365 Risk Assessment QuickStart Guide
Copilot for Microsoft 365 is an intelligent assistant designed to enhance user productivity by leveraging relevant information and insights from various sources such as SharePoint, OneDrive, Outlook, Teams, Bing, and third-party solutions via connectors and extensions. Using natural language processing and machine learning, Copilot understands user queries and delivers personalized results, generating summaries, insights, and recommendations.
This QuickStart guide aims to assist organizations in performing a comprehensive risk assessment of Copilot for Microsoft 365. The document serves as an initial reference for risk identification, mitigation exploration, and stakeholder discussions. It is structured to cover:
AI Risks and Mitigations Framework: Outlining the primary categories of AI risks and how Microsoft addresses them at both company and service levels.
Sample Risk Assessment: Presenting a set of real customer-derived questions and answers to assess the service and its risk posture.
Additional Resources: Providing links to further materials on Copilot for Microsoft 365 and AI risk management.
Copilot for Microsoft 365 Risks and Mitigations
Bias
AI technologies can unintentionally perpetuate societal biases. Copilot for Microsoft 365 uses foundation models from OpenAI, which incorporate bias mitigation strategies during their training phases. Microsoft builds upon these mitigations by designing AI systems to provide equitable service quality across demographic groups, implementing measures to minimize disparities in outcomes for marginalized groups, and developing AI systems that avoid stereotyping or demeaning any cultural or societal group.
Disinformation
Disinformation is false information spread to deceive. This QuickStart guide covers Copilot for Microsoft 365 mitigations which include grounding responses in customer data and web data and requiring explicit user instruction for any action.
Overreliance and Automation Bias
Automation bias occurs when users over-rely on AI-generated information, potentially leading to misinformation. The QuickStart guide discusses methods of mitigating automation bias through measures such as informing users they are interacting with AI, disclaimers about the fallibility of AI, and more.
Ungroundedness (Hallucination)
AI models sometimes generate information not based on input data or grounding data. The QuickStart guide explores various mitigations for ungroundedness, including performance and effectiveness measures, metaprompt engineering, harms monitoring, and more.
Privacy
Data is a critical element for the functionality of an AI system, and without proper safeguards, this data may be exposed to risks. The QuickStart guide talks about how Microsoft ensures customer data remains private and is governed by stringent privacy commitments. Access controls and data usage parameters are also discussed.
Resiliency
Service disruptions can impact organizations. The QuickStart guide discusses mitigations such as redundancy, data integrity checking, uptime SLAs, and more.
Data Leakage
The QuickStart guide explores data leakage prevention (DLP) measures including zero trust, logical isolation, and rigorous encryption.
Security Vulnerabilities
Security is integral to AI development. Microsoft follows Security Development Lifecycle (SDL) practices, which include training, threat modelling, static and dynamic security testing, incident response, and more.
Sample Risk Assessment: Questions & Answers
This section contains a comprehensive set of questions and answers based on real customer inquiries. These cover privacy, security, supplier relationships, and model development concerns. The responses are informed by various Microsoft teams and direct attestations from OpenAI. Some key questions include:
Privacy: How personal data is anonymized before model training.
Security: Measures in place to prevent AI model compromise.
Supplier Relationships: Due diligence resources on OpenAI, a Microsoft strategic partner.
Model Development: Controls for data integrity, access management, and threat modeling.
By utilizing this guide, organizations can better understand the AI risk landscape integral to understanding Copilot for Microsoft 365 in an efficient manner enabling enterprise deployment. It serves as a foundational tool for risk assessment and frames further dialogue with Microsoft to address specific concerns or requirements.
Additional Resources
In addition to the framework and the sample assessment, the QuickStart guide provides links to a host of resources and materials that offer further detailed insights into Copilot for Microsoft 365 and AI risk management.
Microsoft Tech Community – Latest Blogs –Read More