Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
Mattoas
Regular Visitor

Need help writing corresponding Powershell code in Power Query

I have this code in Powershell and I would like to have the same code in Power Query. Grateful for any help. 

 

$uri = "https://graph.microsoft.com/beta/security/securescores"
$request = Invoke-MgGraphRequest -Uri $URI -method GET -ErrorAction Stop


foreach ($item in $request.value) {
$sspercent=($item.currentscore/$item.maxscore)
$formattedDate = $item.createdDateTime.ToString("dd-MM-yyyy")
write-host -foregroundcolor white -BackgroundColor Blue "$formattedDate Score =",$item.currentscore, "of",$item.maxscore,"["$sspercent.tostring("P")"]`n"
}

 

 

Thanks! 🙂

1 ACCEPTED SOLUTION
ManuelBolz
Responsive Resident
Responsive Resident

Hello @Mattoas,

 

maybe my solution is not 100%, but I hope this helps you.

 

let
    URI = "https://graph.microsoft.com/beta/",
    Source = Json.Document(Web.Contents(uri)),
    value = Source[value],
    Table = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    ExpandedTable = Table.ExpandRecordColumn(Table, "Column1", {"name", "kind", "url", "currentscore", "maxscore", "createdDateTime"}),
    AddedSSPercent = Table.AddColumn(ExpandedTable, "sspercent", each [currentscore] / [maxscore]),
    FormattedDate = Table.TransformColumns(AddedSSPercent, {{"createdDateTime", each DateTime.ToText(_, "dd-MM-yyyy"), type text}}),
    FinalTable = Table.SelectColumns(FormattedDate, {"createdDateTime", "currentscore", "maxscore", "sspercent"})
in
    FinalTable

 

Best regards from Germany
- Manuel

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
ManuelBolz
Responsive Resident
Responsive Resident

Hello @Mattoas,

 

maybe my solution is not 100%, but I hope this helps you.

 

let
    URI = "https://graph.microsoft.com/beta/",
    Source = Json.Document(Web.Contents(uri)),
    value = Source[value],
    Table = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    ExpandedTable = Table.ExpandRecordColumn(Table, "Column1", {"name", "kind", "url", "currentscore", "maxscore", "createdDateTime"}),
    AddedSSPercent = Table.AddColumn(ExpandedTable, "sspercent", each [currentscore] / [maxscore]),
    FormattedDate = Table.TransformColumns(AddedSSPercent, {{"createdDateTime", each DateTime.ToText(_, "dd-MM-yyyy"), type text}}),
    FinalTable = Table.SelectColumns(FormattedDate, {"createdDateTime", "currentscore", "maxscore", "sspercent"})
in
    FinalTable

 

Best regards from Germany
- Manuel

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Thanks @ManuelBolz much appreciated! 🙂

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors