Jeff Brown Tech
Jeff Brown Tech
  • Видео 36
  • Просмотров 40 523
Streamline Module Publishing to PowerShell Gallery Using GitHub Actions
Learn how to use GitHub Actions to automate publishing to the PowerShell Gallery! 👉 In this video, I show how I am using GitHub Actions to test and publish the PowerAzPlus module.
👇 Get the Code Here! 👇
github.com/JeffBrownTech/PowerAzPlus
PowerAzPlus in PowerShell Gallery
www.powershellgallery.com/packages/PowerAzPlus
📖 Read More About This 📖
How to Publish Your First PowerShell Gallery Package
jeffbrown.tech/how-to-publish-your-first-powershell-gallery-package/
📺 Watch 📺
ruclips.net/video/w-t7jBLD9LE/видео.html
⏰ Chapters ⏰
00:00 Introduction
00:37 GitHub Actions review
04:42 Repository secrets review
05:20 Workflow example
10:48 Summary
Social Links
🔗 LinkedIn: www.linkedin.com/jeffbrowntech
🔗 Threads: ...
Просмотров: 17

Видео

Create PowerShell Modules: Adding a Module Manifest
Просмотров 79День назад
Let's continue working on our custom PowerShell module for PowerAzPlus by adding a manifest file! ➡️ In this video, you'll learn how to quickly create a manifest file to include important metadata about the module. Read More About This 📖 How to Create a PowerShell Module: A Beginner's Guide jeffbrown.tech/create-powershell-module/ 📺 Watch 📺 ruclips.net/video/sUXSf4vdO_o/видео.html ruclips.net/...
Loading PowerShell Custom Functions: Profiles, Dot-Sourcing, and Modules
Просмотров 7314 дней назад
Now that you've written your custom PowerShell function, how do you use it on a daily basis? This video covers several different ways to load a custom function into your PowerShell terminal. Read More About This 📖 Loading PowerShell Custom Functions: Profiles, Dot-Sourcing, and Modules jeffbrown.tech/load-powershell-custom-functions/ ⏰ Chapters ⏰ 00:00 Introduction 00:21 Pasting Directly into ...
Become a PowerShell Master Writing Advanced Functions! [Part 2]
Просмотров 159Месяц назад
Learn how to write your own PowerShell advanced functions! ➡️ Part 2 covers handling multiple inputs from the pipeline and Write methods. 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-09-30-PowerShellAdvancedFunctionExample/AdvancedFunctionExample.ps1 Read More About This 📖 Process Pipeline Data in PowerShell Parameters jeffbrown.tech/powershell-pipeline-...
Become a PowerShell Master Writing Advanced Functions! [Part 1]
Просмотров 3432 месяца назад
🚀 Learn how to write your own PowerShell advanced functions! Part 1 covers identifying the solution, creating the function, validating parameters, and error handling. 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-09-30-PowerShellAdvancedFunctionExample/AdvancedFunctionExample.ps1 ⭐ Read: ⭐ PowerShell Advanded Functions: Getting Started Guide jeffbrown.tech...
Get Started with PowerShell Advanced Functions!
Просмотров 2542 месяца назад
Advanced functions take your PowerShell development to the next level, letting you create cmdlet-like scripts with advanced features. In this video, we’ll dive into creating advanced functions with examples on how to utilize their additional features. #powershell 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-09-17-PowerShellAdvancedFunctions/PowerShellAdva...
Mastering PowerShell Basics: Understanding Objects, Pipelines, and Essential Commands
Просмотров 1863 месяца назад
Are you new to PowerShell? Learn some helpful tips and tricks to PowerShell syntax as well as some cmdlets to help you along the way! 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-09-06-PowerShellTips/PowerShellTips.ps1 📺 Watch: 📺 ruclips.net/video/al95BRieqN4/видео.htmlsi=riIjepl3yzuBFpvq ⏰ Chapters ⏰ 00:00 Introduction 00:24 Get-Help 03:31 Show-Command 0...
PowerShell & RegEx Getting Started Tutorial
Просмотров 1783 месяца назад
Harness the power of RegEx inside PowerShell! RegEx is a brilliant way to search, match, and manipulates strings based on specific patterns. 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-08-28-PowerShellRegEx/PowerShellRegEx.ps1 Read More About This 📖 PowerShell RegEx: Getting Started Guide jeffbrown.tech/powershell-regex/ 📺 Watch: ruclips.net/video/ikLED...
Understanding PowerShell Variable Scope in Scripts and Modules
Просмотров 2083 месяца назад
Not all PowerShell variables are created equally! In this video, learn about the different scopes available when working with PowerShell variables. 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/tree/main/2024-08-21-PowerShellVariableScope Read More About This 📖 PowerShell Variable Scope Guide: Using Scope in Scripts and Modules www.varonis.com/blog/powershell-variable-s...
How To Create PowerShell Dynamic Parameters!
Просмотров 1523 месяца назад
What are PowerShell dynamic parameters and when can you use them? Find out everything you need to know in this video! 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-08-14-PowerShellDynamicParameters/PowerShellDynamicParameters.ps1 Read More About This 📖 Tips and Tricks to Using PowerShell Dynamic Parameters jeffbrown.tech/tips-and-tricks-to-using-powershel...
Add Tab Completion to your PowerShell Parameters Today!
Просмотров 2354 месяца назад
Enhance your PowerShell scripts and functions by adding parameter tab completion! This video goes over 5 different ways to level up on parameter tab completions. 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-07-29-PowerShellTabCompletion/PowerShellTabCompletion.ps1 Read More About This 📖 PowerShell Tab Completion: The Ultimate Guide jeffbrown.tech/powersh...
PowerShell ForEach Deep Dive
Просмотров 2474 месяца назад
Harness the power of the PowerShell ForEach loop! This video covers three ways to iterate through an array and the differences in their performance. 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/blob/main/2024-07-22-PowerShellForEach/PowerShellForEach.ps1 Read More About This 📖 PowerShell ForEach: Everything You Need to Know jeffbrown.tech/powershell-foreach/ 📺 Watch: 📺...
PowerShell Hashtable vs. PSCustomObject Deep Dive
Просмотров 5174 месяца назад
While they may look similar, PowerShell hashtables and custom objects are quite different. Learn all about each of these data types and some neat tricks with each one! 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/tree/main/2024-07-15-HashtablePSCustomObject Read More About This 📖 PowerShell Hash Table vs. PSCustomObject: Deep Dive & Comparison jeffbrown.tech/powershell...
Own Your IT Career
Просмотров 1005 месяцев назад
What does it mean to own your IT career? In this video, I discuss my experience learning how to make sure I keep my skills relevant for working in the IT industry. Read More About This 📖 The Most Inspiring PowerShell Story Ever web.archive.org/web/20150308234145/http:/donjones.com/2015/03/04/the-most-inspiring-powershell-story-ever/ Book: Own Your Tech Career www.manning.com/books/own-your-tec...
Copying PowerShell Hashtables (The Right Way!)
Просмотров 1286 месяцев назад
Avoid frustration and learn how to copy a hashtable (the right way)! 👇 Get the Code Here! 👇 github.com/JeffBrownTech/jeffbrowntech_youtube/tree/main/2024-06-10-CopyingHashTables Read More About This 📖 jeffbrown.tech/copying-powershell-hashtables-the-right-way/ ⏰ Chapters ⏰ 00:00 Introduction 00:17 Copying Strings Example 01:13 Copying Hashtables 04:01 Copying Hashtables (The Right Way) 07:00 S...
Manage PowerShell Parameters with Splatting
Просмотров 2446 месяцев назад
Manage PowerShell Parameters with Splatting
PowerShell Begin Process End Block Demystified
Просмотров 1846 месяцев назад
PowerShell Begin Process End Block Demystified
Use PowerShell WhatIf So You Don't Break Stuff
Просмотров 1326 месяцев назад
Use PowerShell WhatIf So You Don't Break Stuff
Learn About PowerShell 7 Ternary Operator with Examples!
Просмотров 1467 месяцев назад
Learn About PowerShell 7 Ternary Operator with Examples!
Mastering PowerShell Dynamic Arrays
Просмотров 2697 месяцев назад
Mastering PowerShell Dynamic Arrays
How I Became a Cloud and DevOps Engineer - You Can Too!
Просмотров 2547 месяцев назад
How I Became a Cloud and DevOps Engineer - You Can Too!
Write Awesome Scripts with PowerShell Parameter Sets
Просмотров 4577 месяцев назад
Write Awesome Scripts with PowerShell Parameter Sets
Validate PowerShell Parameters Today!
Просмотров 2517 месяцев назад
Validate PowerShell Parameters Today!
Getting Started with PowerShell Parameters
Просмотров 5958 месяцев назад
Getting Started with PowerShell Parameters
Coding Session: Enhancing PowerShell Scripts with Parameters and Error Handling
Просмотров 2238 месяцев назад
Coding Session: Enhancing PowerShell Scripts with Parameters and Error Handling
PowerShell ForEach and CSV File Tutorial
Просмотров 8668 месяцев назад
PowerShell ForEach and CSV File Tutorial
Master PowerShell Errors with Try Catch Blocks
Просмотров 3569 месяцев назад
Master PowerShell Errors with Try Catch Blocks
How to Renew Your Microsoft Certification!
Просмотров 7529 месяцев назад
How to Renew Your Microsoft Certification!
Assign Graph API App Role to Azure Managed Identity
Просмотров 2,8 тыс.10 месяцев назад
Assign Graph API App Role to Azure Managed Identity
Graph API Demonstration using PowerShell
Просмотров 87510 месяцев назад
Graph API Demonstration using PowerShell

Комментарии

  • @thearchibaldtuttle
    @thearchibaldtuttle День назад

    Thanks mate! Great stuff and with the holiday season approaching, there will be plenty of time to work through this! Also more familiar with Azure.

    • @jeffbrowntech
      @jeffbrowntech 15 часов назад

      I've written so many one-off things over the years, I'm excited to start keeping them in a module.

  • @guitargrin
    @guitargrin 4 дня назад

    Just found your channel. Explanation is great and im just starting to need graph access. Thanks so much!

  • @tk71
    @tk71 9 дней назад

    I answered my own question. $object.PSObject.Copy() actually uses $object.Clone() if the base object is clonable

  • @GenePerry
    @GenePerry 10 дней назад

    Great pace and content, the perfect intro to Graph API - thank you

  • @Adaption
    @Adaption 22 дня назад

    Clean, concise, and well explained. Thank you, Jeff!

  • @WayneRoach-v8y
    @WayneRoach-v8y 23 дня назад

    When will you be doing a video on how to get an access token from a client app to connect to MS Graph, without user intervention. (Assuming permissions have been setup already in Azure.)

    • @jeffbrowntech
      @jeffbrowntech 22 дня назад

      I am not familiar with that process, but I will take it under consideration for a future video.

    • @jeffbrowntech
      @jeffbrowntech 7 дней назад

      I didn't realize that I actually am famliar with that process, it had just been a while. I have a blog post covering the process of creating the app registration, then using PowerShell to get an access token. This article is a specific use case with Microsoft Teams, but most of the concepts will hopefully help. jeffbrown.tech/creating-microsoft-teams-and-channels-with-graph-api-and-powershell/

  • @nidhinnidhin8764
    @nidhinnidhin8764 Месяц назад

    Very Informative and Helpful Thanks

  • @marcdoliveira4906
    @marcdoliveira4906 Месяц назад

    Outstanding Jeff. Thank you.

  • @drivetrainerYT
    @drivetrainerYT Месяц назад

    And you just demoed that. Happy to be close on one page

  • @drivetrainerYT
    @drivetrainerYT Месяц назад

    Oftentimes I use datetime for output files, plus something like current set page, counter etc, to make filename unique

    • @jeffbrowntech
      @jeffbrowntech Месяц назад

      All great ideas, thanks for sharing.

  • @drivetrainerYT
    @drivetrainerYT Месяц назад

    Thanks again. I just upgraded my simplistic one-block param() approach of stuffing everything between the parentheses into scripting structured self-documented param blocks with validation and custom err messages. You got a docile apprentice here :)

  • @drivetrainerYT
    @drivetrainerYT Месяц назад

    Happy to find this channel. Thank you for the perfect structuring and delivery. Definitely subscribed.

  • @chrismast2790
    @chrismast2790 Месяц назад

    Why bother putting quotes around the key names in your hash table?

    • @jeffbrowntech
      @jeffbrowntech Месяц назад

      Probably just a habit I picked up at one point for some reason and it's stuck 🤷‍♂️

  • @ashisharya65
    @ashisharya65 Месяц назад

    Great video as usual Jeff. Thanks for making it.

  • @thearchibaldtuttle
    @thearchibaldtuttle Месяц назад

    Great stuff! Thank you for the video!

  • @markhanna5824
    @markhanna5824 2 месяца назад

    Great video - I have an idea for you. Many people have complained to MS that there isn't a bulk method for hiding chats (or leaving, deleting etc). For many of us this becomes a very tedious task. Can PS help? Thanks again!!

    • @jeffbrowntech
      @jeffbrowntech 2 месяца назад

      At a quick glance, that looks like it would take diving into the Teams API to find a user's chats and remove or soft-delete them.

  • @MalcolManan
    @MalcolManan 3 месяца назад

    You've got a like a sub. I have been trying to figure out how to assign permissions to the Managed Identity Service Principal and no useful information is available online. Cheers, keep up and good luck!

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      Glad it helped, and that's why I wrote the article and did the video. Seems like a complicated process and wanted to document it myself.

  • @samlegend6064
    @samlegend6064 3 месяца назад

    What is the future of Microsoft Graph API, and how is Microsoft evolving it? Is investing in learning this skill for career growth a good idea?

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      Learning how to interact with any API is a good thing. Microsoft's Graph API is the gateway to managing all of its services directly. You can write your own code to perform actions or get information. I've used it when there wasn't a clear PowerShell cmdlet or it had limitations that querying the API directly was better.

  • @fabianzoon1648
    @fabianzoon1648 3 месяца назад

    Thank you so much. It answered all of the questions I had. Really nice. tnx.

  • @mattcargile
    @mattcargile 3 месяца назад

    Off the jump, it looked like you could just use parameter sets for private. Haven’t finished video though.

    • @mattcargile
      @mattcargile 3 месяца назад

      Oh nvm. It’s a parameter value you are keying on. I would just have a private channel switch maybe or another function. Dynamic param is nice too. I usually forget about it. Hmmm

    • @mattcargile
      @mattcargile 3 месяца назад

      Hmmm. Yeah I see this simplifies UX while complicating for the dev. I think it is a win especially to reduce complexity. It might reduce discoverability in the help. I’m curious if private channel owner would show in the help.

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      For sure, multiple parameters to cover parameter sets, my goal here was to have one parameter for the channel name, channel type, then specify a private channel owner when needed. But definitely multiple ways to accomplish this.

  • @psjoshooaj
    @psjoshooaj 3 месяца назад

    I dig regex for searching through logs or parsing native command output where the formatting isn't quite predictable. I also tend to use it with the "-replace" operator to either remove the text matching a pattern or transform it somehow. One of the most common uses for me though is within Visual Studio Code and doing a regex search, or find & replace, in a file or across all files in the repo. That is super helpful when you need to find a very specific pattern and change it everywhere.

  • @ashisharya65
    @ashisharya65 3 месяца назад

    Thank you so much for making this video 🙏

  • @jeffbrowntech
    @jeffbrowntech 3 месяца назад

    How do you use regex and PowerShell together? Leave a comment below!

  • @SimonRNorton
    @SimonRNorton 3 месяца назад

    Just the introduction I was looking for! Thank you so much!

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      You bet, glad it was helpful!

  • @FUNKYSASSMANN
    @FUNKYSASSMANN 3 месяца назад

    Excellent video and demonstration!

  • @psjoshooaj
    @psjoshooaj 3 месяца назад

    When I need to save some kind of state in a module, I’ll use a script scope variable as well. Typically I’ll explicitly declare that variable in my PSM1 so that there’s one place to go to know all script scope variables used in the module. And I’ll try to minimize the functions that touch the variable directly. Usually by having private get/set functions and ensuring that any other function that needs the variable will get it from the private function rather than accessing it directly. Depending on the circumstances, environment vars can fill a similar role except they’re available in the global scope making them transparently available to the user and any other script/module running in that session.

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      Do you create the variable outside all the functions in your PSM1 file? Did not think of that approach but I like it!

    • @psjoshooaj
      @psjoshooaj 3 месяца назад

      @@jeffbrowntechExactly, not that it makes a _technical_ difference, but I know there is only one place to look to remember if/which script scope variables are being used and it feels more intentional. I also do a lot of C# code and it still feels dirty to declare a variable in an “inner scope” and then access it outside of that “scope” even though those try-block or if-block scopes are imaginary and don’t exist in PowerShell.

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      @@psjoshooaj I agree, I like the idea of having one place where the variable lives, then the get/set functions to control it. Thank you for sharing!

  • @hassenfepher
    @hassenfepher 3 месяца назад

    brand new to graph, and this video is where i started. i tried editing the department, and i got the following error. "code": "Authorization_RequestDenied", "message": "Insufficient privileges to complete the operation.", this was performed with the global admin for my account, and i confirmed i can edit this property in the azure identity portal i can pull these attributes just fine. do i have an application permission limitation in this explorer?

    • @hassenfepher
      @hassenfepher 3 месяца назад

      looks like i needed to add permissions in the permissions tab. i made it work. is there a way to grant these permissions temporarily? if i close the session, will the api permissions persist? should i manually revoke the permissions i just granted at the end of this exercise to reduce the attack surface until i get back into graph?

    • @jeffbrowntech
      @jeffbrowntech 3 месяца назад

      @@hassenfepher I believe those permissions are persistent, if you are unsure of leaving those out there, go ahead and revoke them.

    • @CoreTheBK
      @CoreTheBK 3 месяца назад

      @@hassenfepherI could be wrong but JIT PAM solutions might be what you need for this sort of security you’re mentioning.

  • @francescosovis7938
    @francescosovis7938 3 месяца назад

    Thank you very much. Your instructions on the video are very useful.

  • @psjoshooaj
    @psjoshooaj 3 месяца назад

    That was a great tutorial on dynamic parameters! I've used them a couple of times, but I generally avoid them because of the added complexity for me and the reduced discoverability for users. For the example here with public vs private "Teams teams" I'm not sure whether I would come up with a way to use a second parameterset, or have two public commands like "New-PublicChannel" and "New-PrivateChannel" which delegate to a single private function to do the work (to minimize duplicate code). One of the things that holds me back from using dynamic parameters is the lack of platyPS support but if I remember correctly, I think Sean Wheeler mentioned platyPS v1 may have support for dynamic parameters and supposedly they're aiming to release v1 this year so it's definitely worth another look!

  • @jeffbrowntech
    @jeffbrowntech 4 месяца назад

    What do you think about dynamic parameters, is this something you would use?

  • @Team_vanquishing
    @Team_vanquishing 4 месяца назад

    Thanks, Jeff, for sharing your experiences. This is very motivating!

  • @Team_vanquishing
    @Team_vanquishing 4 месяца назад

    Thanks for sharing this information Jeff! Much needed and right on time!

  • @thearchibaldtuttle
    @thearchibaldtuttle 4 месяца назад

    Nice video, thank you!

  • @justin.emmons
    @justin.emmons 4 месяца назад

    This video was excellent Jeff. Light bulbs were going off while watching this. Honestly can't wait to go to work to try some of these!

  • @jeffbrowntech
    @jeffbrowntech 4 месяца назад

    Have you ever used or needed tab completion for your parameters? Leave a comment below!

  • @ashisharya65
    @ashisharya65 4 месяца назад

    Hi Jeff, Please make the next video on Regex in PowerShell.

    • @jeffbrowntech
      @jeffbrowntech 4 месяца назад

      It's a good topic, it's on my to-do list.

  • @starvosxant4348
    @starvosxant4348 4 месяца назад

    This is terrible... Not the video. The video is great! But why this information is not easy to find in Microsoft Docs? They should have a atep by step guide like this... Anyway, thanks for your help! Why did the Graph series stopped?

    • @jeffbrowntech
      @jeffbrowntech 4 месяца назад

      That is primarily why I blogged about it and created the video, to put all the steps together. That's all I had for Graph stuff at the time but will produce more if something comes up. I primarily pull from things I encounter in my daily work.

    • @starvosxant4348
      @starvosxant4348 4 месяца назад

      @@jeffbrowntech could you bring more examples of using Python? The general step: register the app, request the token, use the API via requests/SDK

    • @jeffbrowntech
      @jeffbrowntech 4 месяца назад

      @@starvosxant4348 Unfortunately I don't know Python, PowerShell is my go-to scripting language for now.

  • @pawelhaubus172
    @pawelhaubus172 4 месяца назад

    Great video, when i run 'New-MgServicePrincipalAppRoleAssignment' i get the 'Insufficient privileges to complete the operation.' error, I can't figure out which permissions are missing, i created the function app,, i am also a global admin, but error comes up each time when itry to run it, any idea what m,ay be causing it?

    • @jeffbrowntech
      @jeffbrowntech 4 месяца назад

      Double check what scopes you have in your Microsoft Graph connection context, there should be something like Directory.ReadWrite.All: Get-MgContext | Select-Object -ExpandProperty Scopes

    • @pawelhaubus172
      @pawelhaubus172 4 месяца назад

      @@jeffbrowntech thanks for your replay, I managed to resolve my issue, At first I only used scope which you mentioned in the video 'Connect-MgGraph -Scopes 'Directory.ReadWrite.All'' but it did not work, only after adding 'AppRoleAssignment.ReadWrite.All' it started to work for me, so first command was "'Connect-MgGraph -Scopes 'Directory.ReadWrite.All', 'AppRoleAssignment.ReadWrite.All'" in my case Thanks for the comments!

    • @jeffbrowntech
      @jeffbrowntech 4 месяца назад

      Interesting, thank you for the update, glad you were able to figure it out! I don't believe I needed that permission previously but something could have changed in the requirements.

    • @andresjordan1906
      @andresjordan1906 4 месяца назад

      @@pawelhaubus172 Thank you for posting your solution, I was having the same issue until I came across your comment.

  • @dengsue
    @dengsue 4 месяца назад

    I dont see it on my end, can you help?

    • @jeffbrowntech
      @jeffbrowntech 4 месяца назад

      What specifically don't you see?

  • @susheel_dogra
    @susheel_dogra 5 месяцев назад

    You're amazing Jeff

  • @susheel_dogra
    @susheel_dogra 5 месяцев назад

    Thank you so much , It helped a lot !!

  • @ashisharya65
    @ashisharya65 5 месяцев назад

    Great video Jeff 👏

  • @MadiAnas-wc3xt
    @MadiAnas-wc3xt 5 месяцев назад

    Is this possible via Terraform?

    • @jeffbrowntech
      @jeffbrowntech 5 месяцев назад

      I have not personally done that but I can't think of any reason it couldn't be. You would have to know the app role to assign ahead of time. registry.terraform.io/providers/hashicorp/azuread/latest/docs/resources/app_role_assignment

    • @MadiAnas-wc3xt
      @MadiAnas-wc3xt 5 месяцев назад

      @@jeffbrowntech This worked btw. Thank you! I needed to be Global Administrator not just Application Administrator. Not sure why yet. Need to work on that. ``` data "azuread_application_published_app_ids" "well_known" {} resource "azuread_service_principal" "msgraph" { client_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph use_existing = true } resource "azuread_app_role_assignment" "directory_read_all" { app_role_id = azuread_service_principal.msgraph.app_role_ids["Directory.Read.All"] principal_object_id = azurerm_user_assigned_identity.github.principal_id resource_object_id = azuread_service_principal.msgraph.object_id } ```

  • @garrettnelson8469
    @garrettnelson8469 6 месяцев назад

    Another great video Jeff!

  • @garrettnelson8469
    @garrettnelson8469 6 месяцев назад

    Great video Jeff! Splatting is such a handy feature.

  • @leeblack2103
    @leeblack2103 6 месяцев назад

    Thank you! Please help with JSON imports

    • @jeffbrowntech
      @jeffbrowntech 6 месяцев назад

      Check out ConvertFrom-Json learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertfrom-json

  • @ashisharya65
    @ashisharya65 7 месяцев назад

    Thanks for making this video Jeff. ✌️

  • @derekbelanger7839
    @derekbelanger7839 7 месяцев назад

    Thanks for this! Ternary syntax is the same in Bicep so getting used to it is helpful for that onramp too!

  • @justin.emmons
    @justin.emmons 7 месяцев назад

    Great stuff Jeff. I've never messed around with [void] and or Out-Null. I'm still a PS noon so much of the stuff I do is just Ah-Hoc. Is the main reason for Out-Null for performance?

    • @jeffbrowntech
      @jeffbrowntech 7 месяцев назад

      This is the StackOverflow thread I referenced in the video: stackoverflow.com/questions/5260125/whats-the-better-cleaner-way-to-ignore-output-in-powershell The way I am using Out-Null seems to be slower but someone points out it may be due to the pipeline. Overall, we're talking milliseconds, but if you're script is long running and doing the operation millions of times, it could make a difference.

    • @justin.emmons
      @justin.emmons 7 месяцев назад

      @@jeffbrowntech Thanks Jeff. Keep up the great work you're doing.

  • @ashisharya65
    @ashisharya65 7 месяцев назад

    This really keeps me motivated towards my goals, Jeff. 😊 Thank you for making this video 😊 I am also trying to switch to a complete Azure cloud engineer role and I am really working hard towards that goal and hope will get there in the coming months or might be there in a few years 😊