Category: Microsoft
Category Archives: Microsoft
Validate CSV files before ingestion in Microsoft Fabric Data Factory Pipelines
A very common task for Microsoft Fabric, Azure Data Factory and Synapse Analytics Pipelines is to receive unstructured files, land them in an Azure Data Lake (ADLS Gen2) and load them into structured tables. This often leads to a very common issue with unstructured files when “SOMETHING HAS CHANGED” and the unstructured file does not meet the defined table format. If issues are not handled properly within the pipeline, the data workloads will fail and users will be asking “WHERE’S MY DATA???” You then need to communicate with the owner of the file, have them fix the issues, then rerun the pipeline after the issues have been fixed. Along with unhappy users, rerunning failed pipelines adds cost. Validating these files before they are processed allows your pipelines to continue ingesting files that do have the correct format. For pipelines that do fail, your code or process can pinpoint what caused the error, leading to faster resolution of the issue. In this blog, we’ll walk through a Microsoft Fabric Data Factory Pipeline that validates incoming CSV files for common errors before loading to a Microsoft Fabric Lakehouse delta table.
Overview
This source files in this process are in an Azure Data Lake storage account, which has a shortcut in the Fabric Lakehouse. A data pipeline calls a Spark notebook to check the file for any new or missing columns, any invalid data for the expected data type, or any duplicate key values. If the file has no errors, the pipeline loads the CSV data into a parquet file and then calls another Spark notebook to load the parquet file into a delta table in the Lakehouse. Otherwise if there are errors in the file, the pipeline sends a notification email.
Source files and metadata files
In this solution, files are landing in an ADLS Gen 2 container folder called scenario1-validatecsv which has a shortcut to it in the Fabric Lakehouse. The files folder contains the files to process; the metadata folder contains a file describing the format each CSV file type should conform to.
This solution is to load to a table called customer, which has columns number, name, city and state. In the format definition file, customer_meta, there’s a row for each customer table column, providing the column name, the column data type, and whether or not it is a key value. This metadata file is later used in a Spark notebook to validate that the incoming file conforms to this format.
Orchestrator Pipeline
The orchestrator pipeline is very simple – since I am running my pipeline as a scheduled batch, it loops through the files folder and invokes another pipeline for each file. Note the parametrization of the lakehouse path, the source folders, the destination folder and the file format. This allows the same process to be run for any lakehouse and for any file format/table to load.
For Each activity
When invoking the child pipeline from the For Each activity, it passes in the parameter values from the orchestrator pipeline plus the name of the current file being processed and the metadata file name, which is the file format name with ‘_meta’ appended to it.
Child pipeline – Validate and load pipeline
The Validate and load pipeline validates the current CSV file, and if the file conforms to the format, loads it into a parquet table then merges the parquet data into a delta table.
1 – Parameters
Parameters passed in from the orchestrator pipeline for the current CSV file to process
2 – Set variable activity – Set parquet file name
Removes .csv to define the parquet file name
3- Notebook activity – Validate CSV and load file to parquet
Calls the notebook, passing in parameter and variable values
Below is the pyspark code for the notebook. It gets the column names and inferred data types from the CSV file as well as the column names, data types and key field names from the metadata file. It checks if the column names match, if the data types match, if there are keys defined for the file, and finally if there are any duplicate key values in the incoming file. If there were duplicate key fields, it writes the duplicate key values to a file. If the names and data types match and there are no duplicate key values, it writes the file to parquet and passes back the key field names from the metadata file; otherwise, it returns the appropriate error message.
# Files/landingzone/files parameters
lakehousepath = ‘abfss://xxxxx@msit-onelake.dfs.fabric.microsoft.com/xxxxx’
filename = ‘customer_good.csv’
outputfilename = ‘customer_good’
metadatafilename = ‘customer_meta.csv’
filefolder = ‘scenario1-validatecsv/landingzone/files’
metadatafolder = ‘scenario1-validatecsv/landingzone/metadata’
outputfolder = ‘scenario1-validatecsv/bronze’
fileformat = ‘customer’
# Import pandas and pyarrow
import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq
# Set path variables
inputfilepath = f'{lakehousepath}/Files/{filefolder}/’
metadatapath = f'{lakehousepath}/Files/{metadatafolder}/’
outputpath = f'{lakehousepath}/Files/{outputfolder}/’
# Read the text file and the metadata file
print(f'{inputfilepath}{filename}’)
data = pd.read_csv(f'{inputfilepath}{filename}’)
meta = pd.read_csv(f'{metadatapath}{metadatafilename}’)
# only get the column names for the file formattype that was input
meta = meta.loc[meta[‘formatname’] == fileformat]
print(data.dtypes)
print(list(meta[‘columname’]))
# get any key fields specified
keyfields = meta.loc[meta[‘iskeyfield’] == 1, ‘columname’].tolist()
print(keyfields)
# Check for errors in CSV
haserror = 0
# Check if the column names match
if list(data.columns) != list(meta[“columname”]):
# Issue an error
result = “Error: Column names do not match.”
haserror = 1
else:
# Check if the datatypes match
if list(data.dtypes) != list(meta[“datatype”]):
# Issue an error
result = “Error: Datatypes do not match.”
haserror = 1
else:
# If the file has key fields, check if there are any duplicate keys
# if there are duplicate keys, also write the duplicate key values to a file
if keyfields != ”:
checkdups = data.groupby(keyfields).size().reset_index(name=’count’)
print(checkdups)
if checkdups[‘count’].max() > 1:
dups = checkdups[checkdups[‘count’] > 1]
print(dups)
haserror = 1
(dups.to_csv(f'{lakehousepath}/Files/processed/error_duplicate_key_values/duplicaterecords_{filename}’,
mode=’w’,index=False))
result = ‘Error: Duplicate key values’
if haserror == 0:
# Write the data to parquet if no errors
df = spark.read.csv(f”{inputfilepath}{filename}”, header=True, inferSchema=True)
print(f’File is: {inputfilepath}{filename}’)
display(df)
df.write.mode(“overwrite”).format(“parquet”).save(f”{outputpath}{outputfilename}”)
result = f”Data written to parquet successfully. Key fields are:{keyfields} “
mssparkutils.notebook.exit(str(result))
4 – Copy data activity – Move File to processed folder
This Copy Data activity essentially moves the csv file from the ADLS Gen 2 files folder to a processed folder in the Fabric Lakehouse
Destination folder name is derived from the Notebook exit value, which returns success or the error message
5 – If condition activity: If File Validated
Check if the CSV file was successfully validated and loaded to parquet
5a – File validated successfully
If there were no errors in the file, call the spark notebook to merge the parquet file written from the previous pyspark notebook to the delta table.
Parameters for the lakehousepath, the parquet file path and name, the table name, and the key fields passed in. As shown above, the key fields were derived from the previous pyspark notebook and are passed into the Create or Merge to Table notebook.
Below is the spark notebook code. If the delta table already exists and there are key fields, it builds a string expression to be used on the pyspark merge statement and then performs the merge on the delta table. If there are no key fields or the table does not exist, it writes or overwrites the delta table.
# create or merge to delta
# input parameters below
lakehousepath = ‘abfss://xxxe@yyyy.dfs.fabric.microsoft.com/xxx’
inputfolder = ‘scenario1-validatecsv/bronze’
filename = ‘customergood’
tablename = ‘customer’
keyfields = “[‘number’]”
# define paths
outputpath = f'{lakehousepath}/Tables/{tablename}’
inputpath = f'{lakehousepath}/Files/{inputfolder}/{filename}’
# import delta table and sql functions
from delta.tables import *
from pyspark.sql.functions import *
# get list of key values
keylist = eval(keyfields)
print(keylist)
# read input parquet file
df2 = spark.read.parquet(inputpath)
# display(df2)
# if there are keyfields define in the table, build the merge key expression
if keyfields != None:
mergekey = ”
keycount = 0
for key in keylist:
mergekey = mergekey + f’t.{key} = s.{key} AND ‘
mergeKeyExpr = mergekey.rstrip(‘ AND’)
print(mergeKeyExpr)
# if table exists and if table should be upserted as indicated by the merge key, do an upsert and return how many rows were inserted and updated;
# if it does not exist or is a full load, overwrite existing table return how many rows were inserted
if DeltaTable.isDeltaTable(spark,outputpath) and mergeKeyExpr is not None:
deltaTable = DeltaTable.forPath(spark,outputpath)
deltaTable.alias(“t”).merge(
df2.alias(“s”),
mergeKeyExpr
).whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()
history = deltaTable.history(1).select(“operationMetrics”)
operationMetrics = history.collect()[0][“operationMetrics”]
numInserted = operationMetrics[“numTargetRowsInserted”]
numUpdated = operationMetrics[“numTargetRowsUpdated”]
else:
df2.write.format(“delta”).mode(“overwrite”).save(outputpath)
numInserted = df2.count()
numUpdated = 0
print(numInserted)
result = “numInserted=”+str(numInserted)+ “|numUpdated=”+str(numUpdated)
mssparkutils.notebook.exit(str(result))
5b – File validation failed
If there was an error in the CSV file, send an email notification
Summary
Building resilient and efficient data pipelines is critical no matter your ETL tool or data sources. Thinking ahead to what types of problems can, and inevitably will, occur and incorporating data validation into your pipelines will save you a lot of headaches when those pipelines are moved into production. The examples in this blog are just a few of the most common errors with CSV files. Get ahead of those data issues and resolve them without last minute fixes and disrupting other processes! You can easily enhance the methods in this blog by including other validations or validating other unstructured file types like Json. You can change the pipeline to run as soon as the unstructured file is loaded into ADLS rather than in batch. Using techniques like this to reduce hard errors gives your pipelines (and yourself!) more credibility!
Microsoft Tech Community – Latest Blogs –Read More
Enabling Windows Hello for Business in Hybrid
Hello, we’re in a hybrid environment and we wanted to deploy Windows Hello. I have deployed the Cloud Kerberos for this requirement. I have done all the pre-requisite steps, I’m seeing the CloudTGT on dsregcmd. However, I’m still receiving the error below. Any suggestion on where to look at?
Hello, we’re in a hybrid environment and we wanted to deploy Windows Hello. I have deployed the Cloud Kerberos for this requirement. I have done all the pre-requisite steps, I’m seeing the CloudTGT on dsregcmd. However, I’m still receiving the error below. Any suggestion on where to look at? Read More
mIcrosoft Shifts – enable time off requests without notifications
Hi
Is it possible to enable time-off requests but not have the notifications go to the MS team owners? I have a MS team that contains all the staff in a department – the MS team has 8 owners but i want any time off requests to go to the resources manager on AAD not all the teams owners. Whilst I have a power automate to handle the approvals it does not prevent the mass notification of the Teams owners. It would be great if you could either:
a. Enable time off requests without notifications – and handle approvals via power automate
or better still
b. Enable time off requests and select whether notifications go to teams owners/users manager or both
If this is possible already can someone let me know how?
HiIs it possible to enable time-off requests but not have the notifications go to the MS team owners? I have a MS team that contains all the staff in a department – the MS team has 8 owners but i want any time off requests to go to the resources manager on AAD not all the teams owners. Whilst I have a power automate to handle the approvals it does not prevent the mass notification of the Teams owners. It would be great if you could either: a. Enable time off requests without notifications – and handle approvals via power automateor better stillb. Enable time off requests and select whether notifications go to teams owners/users manager or both If this is possible already can someone let me know how? Read More
Microsoft Forms “enter a date” option
Hello,
Forms has the function of adding the option ‘enter a date’ to a question. I would like the respondent to be able to enter 2 date options. However, it is not possible for me to assign the option ‘select a date’ twice to a question, but a new question is then generated directly.
Does anyone know how to solve this?
Many thanks
Hello, Forms has the function of adding the option ‘enter a date’ to a question. I would like the respondent to be able to enter 2 date options. However, it is not possible for me to assign the option ‘select a date’ twice to a question, but a new question is then generated directly. Does anyone know how to solve this?Many thanks Read More
How can I batch Convert WEBP to JPG on my Windows 11?
I’m looking for a way to batch convert WEBP images to JPG format on my Windows 11 PC. I have a large number of WEBP files that I need to convert into JPGs for easier compatibility with various applications and services that don’t support the WEBP format. I’m seeking a solution that can handle the conversion of multiple files at once to save time, rather than having to manually convert each image one by one. Hopefully there is no loss in image quality! Any recommendations would be greatly appreciated.
My device:HP laptop, Windows 11 Home.
I’m looking for a way to batch convert WEBP images to JPG format on my Windows 11 PC. I have a large number of WEBP files that I need to convert into JPGs for easier compatibility with various applications and services that don’t support the WEBP format. I’m seeking a solution that can handle the conversion of multiple files at once to save time, rather than having to manually convert each image one by one. Hopefully there is no loss in image quality! Any recommendations would be greatly appreciated. My device:HP laptop, Windows 11 Home. Read More
LTSC Outlook Mac not having New Outlook
Hi All,
We are a hybrid exchange environment and a region’s mailboxes are not migrated to cloud. When we deployed Microsoft 365 version of Office to theses users, while configuring Outlook for some strange reason they were pointed to Office365 instead of Microsoft Exchange and upon investigation we finally decided to deploy LTSC version of Office. Post which they were pointed to Exchange and since then they are using this version.
The issue now here is, in this office version the users are not able to switch to New version of Outlook in Mac, when i was googling i found that we can actually enable users to switch by setting preferences as seen here:
https://learn.microsoft.com/en-us/deployoffice/mac/preferences-outlook#enable-new-outlook
The issue is, where do we run this command and how do we set this?
Hi All,We are a hybrid exchange environment and a region’s mailboxes are not migrated to cloud. When we deployed Microsoft 365 version of Office to theses users, while configuring Outlook for some strange reason they were pointed to Office365 instead of Microsoft Exchange and upon investigation we finally decided to deploy LTSC version of Office. Post which they were pointed to Exchange and since then they are using this version.The issue now here is, in this office version the users are not able to switch to New version of Outlook in Mac, when i was googling i found that we can actually enable users to switch by setting preferences as seen here:https://learn.microsoft.com/en-us/deployoffice/mac/preferences-outlook#enable-new-outlook The issue is, where do we run this command and how do we set this? Read More
Unable to edit a people column in sharepoint lists
Hello,
I have a SharePoint list with 3 people/group columns. For each column I need to restrict the people that can be selected for this item. When I allow the column content to be any user I am able to fill out the list just fine but when I set the list of users to a specific list I am unable to add anyone to these columns or edit people in these columns. This issue has been persistent with both the default form for the list and a custom form for the list.
When I have the list settings as in the below image I am unable to fill out the aforementioned columns. Any assistance would be greatly apricated in this matter.
Hello, I have a SharePoint list with 3 people/group columns. For each column I need to restrict the people that can be selected for this item. When I allow the column content to be any user I am able to fill out the list just fine but when I set the list of users to a specific list I am unable to add anyone to these columns or edit people in these columns. This issue has been persistent with both the default form for the list and a custom form for the list. When I have the list settings as in the below image I am unable to fill out the aforementioned columns. Any assistance would be greatly apricated in this matter. Read More
How to save Azure Data Factory work (objects)?
Hi,
I’m new to Azure Data Factory (ADF). I need to learn it in order to ingest external third-party data into our domain. I shall be using ADF Pipelines to retrieve the data and then load it into an Azure SQL Server database.
I currently develop Power BI reports and write SQL scripts to feed the Power BI reporting. These reports and scripts are saved in a backed-up drive – so if anything disappears, I can always use the back-ups to install the work.
The target SQL database scripts, the tables the ADF Pipelines will load to, will be backed-up following the same method.
How do I save the ADF Pipelines work and any other ADF objects that I may create (I don’t know what exactly will be created as I’m yet to develop anything in ADF)?
I’ve read about this CI/CD process but I don’t think it’s applicable to me. We are not using multiple environments (i.e. Dev, Test, UAT, Prod). I am using a Production environment only. Each data source that needs to be imported will have it’s own Pipeline, so breaking a Pipeline should not affect other Pipelines and that’s why I feel a single environment is suffice. I am the only Developer working within the ADF and so I have no need to be able to collaborate with peers and promote joint coding ventures.
Does the ADF back-up it’s Data Factories by default? If they do, can I trust that should our instance of ADF be deleted then I can retrieve the backed-up version to reinstall or roll-back?
Is the a process/software which saves the ADF objects so I can reinstall them if I need to (by the way, I’m not sure how to reinstall them so I’ll have to learn that)?
Thanks.
Hi,I’m new to Azure Data Factory (ADF). I need to learn it in order to ingest external third-party data into our domain. I shall be using ADF Pipelines to retrieve the data and then load it into an Azure SQL Server database.I currently develop Power BI reports and write SQL scripts to feed the Power BI reporting. These reports and scripts are saved in a backed-up drive – so if anything disappears, I can always use the back-ups to install the work.The target SQL database scripts, the tables the ADF Pipelines will load to, will be backed-up following the same method.How do I save the ADF Pipelines work and any other ADF objects that I may create (I don’t know what exactly will be created as I’m yet to develop anything in ADF)?I’ve read about this CI/CD process but I don’t think it’s applicable to me. We are not using multiple environments (i.e. Dev, Test, UAT, Prod). I am using a Production environment only. Each data source that needs to be imported will have it’s own Pipeline, so breaking a Pipeline should not affect other Pipelines and that’s why I feel a single environment is suffice. I am the only Developer working within the ADF and so I have no need to be able to collaborate with peers and promote joint coding ventures.Does the ADF back-up it’s Data Factories by default? If they do, can I trust that should our instance of ADF be deleted then I can retrieve the backed-up version to reinstall or roll-back?Is the a process/software which saves the ADF objects so I can reinstall them if I need to (by the way, I’m not sure how to reinstall them so I’ll have to learn that)?Thanks. Read More
Sync mail attribute from Entra ID to local Active Direcotry
Hello,
First question here and can’t seem to find the answer anywhere.
I have an existing sync with Entra Connect/Azure AD connect, however for local LDAP purposes I need to have the “mail” attribute in local Active Directory populated with the value of the user emailaddress in Entra ID. Is there any way that I can modify the connector so Entra ID syncs this value to local Active Directory?
Thanks in advance,
Kind regards,
Maik Brugman
Hello,First question here and can’t seem to find the answer anywhere.I have an existing sync with Entra Connect/Azure AD connect, however for local LDAP purposes I need to have the “mail” attribute in local Active Directory populated with the value of the user emailaddress in Entra ID. Is there any way that I can modify the connector so Entra ID syncs this value to local Active Directory?Thanks in advance,Kind regards,Maik Brugman Read More
windows ca sign certificate for linux
Hello, could you explain to me how to generate a certificate and then sign it via Windows ca?
I’m try many times using open’ssl, and then sing using website:
MyCaAddress/certsrv
Can someone explain me, step by step how i can do it ?
Hello, could you explain to me how to generate a certificate and then sign it via Windows ca?I’m try many times using open’ssl, and then sing using website:MyCaAddress/certsrvCan someone explain me, step by step how i can do it ? Read More
“Linked Plan” Not Appearing “US Task June’24” Planner
Hi Team,
Planner “US Task June’24” is not showing “Linked Plan”. As showing in “US Task May’24” planner below screenshot. Could you please help me to link the same. Due to this automatic pending task email power automate flow is not working.
Thanks,
Rajeev
Hi Team, Planner “US Task June’24” is not showing “Linked Plan”. As showing in “US Task May’24” planner below screenshot. Could you please help me to link the same. Due to this automatic pending task email power automate flow is not working. Thanks,Rajeev Read More
Touchpad Only Works with Bluetooth Device
I’ve been experiencing a strange issue with my laptop’s touchpad on Windows 11. The touchpad only works when I have a Bluetooth device connected, such as my headphones or a wireless mouse. As soon as I disconnect the Bluetooth device, the touchpad becomes unresponsive and stops working.
I’ve tried restarting the laptop, updating the touchpad drivers, and even disabling and re-enabling the touchpad in the device settings, and I’ve also checked the BIOS settings and made sure that the touchpad is enabled, but the issue persists.
I need your help.
I’ve been experiencing a strange issue with my laptop’s touchpad on Windows 11. The touchpad only works when I have a Bluetooth device connected, such as my headphones or a wireless mouse. As soon as I disconnect the Bluetooth device, the touchpad becomes unresponsive and stops working. I’ve tried restarting the laptop, updating the touchpad drivers, and even disabling and re-enabling the touchpad in the device settings, and I’ve also checked the BIOS settings and made sure that the touchpad is enabled, but the issue persists. I need your help. Read More
Market Place application (solution template)
I try to create a Azure Market Place application (solution template) and try to test the solution near my Subscription with ARM template deployment :
1. When I used resources i was able to createselect vnet and create subnets inside if the virtual network was under the same RG of the main ARM.
2. the issue started when i tried to select existing vnet on a different RG (that required me to change the resources to be “Microsoft.Resources/deployments” instead of resources)
I modified the deployment to get a new parameter of the vnet RG and passed it to the deployment and now I’m receiving a validation error when I try to deploy (using custom deployment from a template in the portal).
the error received from the validation step is:
Deployment template validation failed: ‘The resource ‘Microsoft.Network/virtualNetworks/walkme-test1/subnets/walkme-in’ is not defined in the template. Please see https://aka.ms/arm-syntax for usage details.’. (Code: InvalidTemplate)
Thank you.
I try to create a Azure Market Place application (solution template) and try to test the solution near my Subscription with ARM template deployment :1. When I used resources i was able to createselect vnet and create subnets inside if the virtual network was under the same RG of the main ARM.2. the issue started when i tried to select existing vnet on a different RG (that required me to change the resources to be “Microsoft.Resources/deployments” instead of resources) I modified the deployment to get a new parameter of the vnet RG and passed it to the deployment and now I’m receiving a validation error when I try to deploy (using custom deployment from a template in the portal).the error received from the validation step is:Deployment template validation failed: ‘The resource ‘Microsoft.Network/virtualNetworks/walkme-test1/subnets/walkme-in’ is not defined in the template. Please see https://aka.ms/arm-syntax for usage details.’. (Code: InvalidTemplate)Thank you. Read More
Audit SCCM, MECM INSTALLATION
Hello everyone
I am on a mission to a client, and have to audit an existing SCCM installation to give recommendations regarding configuration and deployments.
I am looking for a methodology for a good success of this audit?
Could you help me?
Hello everyoneI am on a mission to a client, and have to audit an existing SCCM installation to give recommendations regarding configuration and deployments.I am looking for a methodology for a good success of this audit?Could you help me? Read More
The Copilot app is a web app?
Via copilot.microsoft.com or through azure or something?
Via copilot.microsoft.com or through azure or something? Read More
Security Report on SharePoint – Fastest Way
What is the fastest way to run a report on Sharepoint permissions – Graph API, Pnp, MS Powershell, REST API?
I need to get a report back for a list of users on their access on every site, list/Library, and file/item level in the tenant, with 10K+ sites, 10K+ OneDrives.
I see there are many 3rd party tools available like Avepoint, Sharegate, etc. and I used one of these tools to run a report for a single user, just to return Sites (no item level or Lists/Library) and its taken 3 hours and report is still running.
And we have to consider any throttling MS will do with long running queries or number of queries per second.
Just wondering what people do these situations?
PS: I realise having large number of sites and data is an issue, and with inheritance broken doesn’t help either but trying to understand what people do in similar situation.
What is the fastest way to run a report on Sharepoint permissions – Graph API, Pnp, MS Powershell, REST API? I need to get a report back for a list of users on their access on every site, list/Library, and file/item level in the tenant, with 10K+ sites, 10K+ OneDrives. I see there are many 3rd party tools available like Avepoint, Sharegate, etc. and I used one of these tools to run a report for a single user, just to return Sites (no item level or Lists/Library) and its taken 3 hours and report is still running. And we have to consider any throttling MS will do with long running queries or number of queries per second. Just wondering what people do these situations? PS: I realise having large number of sites and data is an issue, and with inheritance broken doesn’t help either but trying to understand what people do in similar situation. Read More
How to sync laptop D Drive to SharePoint (not OneDrive)
Hi,
Can someone please advise how to sync a laptop D Drive to SharePoint (not OneDrive).
Regards,
LS
Hi, Can someone please advise how to sync a laptop D Drive to SharePoint (not OneDrive). Regards, LS Read More
Draft email from msg file
I’m creating a draft email programmatically, which I then save as a .msg file. An older version of Outlook allows me to modify and send such an email (after opening it in Outlook), while the newer version displays the message “This message can’t be sent right now. Please try again later.”. How can i enable editing and sending of the email if i have a new version of Outlook and a .msg file?
I’m creating a draft email programmatically, which I then save as a .msg file. An older version of Outlook allows me to modify and send such an email (after opening it in Outlook), while the newer version displays the message “This message can’t be sent right now. Please try again later.”. How can i enable editing and sending of the email if i have a new version of Outlook and a .msg file? Read More
Delete a SharePoint Group
Hi All,
I noticed that there is a “Modern Group” in our site, which is different from the standard SharePoint Group. How was it made, we are not sure. But when I try to delete this group under site permissionspeoples and groups, an error comes up (see image below). Can someone help/advise how can I delete this group?
Regards,
LS
Hi All, I noticed that there is a “Modern Group” in our site, which is different from the standard SharePoint Group. How was it made, we are not sure. But when I try to delete this group under site permissionspeoples and groups, an error comes up (see image below). Can someone help/advise how can I delete this group? Regards, LS Read More