PowerShell Module 5: Creating Custom PowerShell Modules

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • Presents a comprehensive coverage of how to create and use PowerShell script modules plus some advanced concepts like creating a module manifest and how to have a module dynamically loads functions from individual script files.
  • НаукаНаука

Комментарии • 50

  • @LagunaDaeron
    @LagunaDaeron 2 года назад +7

    3 years later and this is still highly relevant. Thanks for the info!

  • @TheJeremyMorel
    @TheJeremyMorel 5 лет назад +7

    Hi Bryan - Stumbled across this video and wanted to express appreciation. I'm a OOP coder who's well-versed with PowerShell, but never took the time to learn modules, manifests, and the like the right way. This was an awesome way to "cheat" myself back into compliance! Also, importing as a custom object is an awesome crutch for me to feel better about the inherent sloppiness of scripting! Thanks!!

    • @BryanCafferky
      @BryanCafferky  5 лет назад

      Glad it helped. Thanks

    • @BryanCafferky
      @BryanCafferky  5 лет назад

      Hi Jeremy, Thanks. Yeah. It is a quick and easy way to do OOP. PowerShell does now support True classes and inheritance but I like the ease of this method of getting the same effect.

  • @AhmedAli-dz1hy
    @AhmedAli-dz1hy 3 года назад +1

    Thank you Bryan from Saudi Arabia. Great lecture

    • @BryanCafferky
      @BryanCafferky  3 года назад

      You're welcome. Thanks for watching.

  • @madcasekc595
    @madcasekc595 Год назад

    I don't think anyone explains this better. Excellent tutorial!

  • @akensturgeon
    @akensturgeon 4 года назад +1

    Thanks for the Powershell series Bryan; this was VERY helpful.

  • @alex17texas
    @alex17texas 5 лет назад +1

    This video has great info. Exactly what I needed. Cheers from Colorado!

  • @beelim7963
    @beelim7963 3 года назад +1

    Love all these little valuable tricks that you're teaching us. Thanks so much!

    • @BryanCafferky
      @BryanCafferky  3 года назад +1

      Glad they help. Yeah. PowerShell has some very cool tricks.

  • @Noviticus
    @Noviticus 2 года назад

    Thanks for all the info, still after 2 years still relevant.

  • @eespiedrop2
    @eespiedrop2 2 года назад

    A brilliant video. Thanks for taking the time to produce and post this.

  • @michalpardej5577
    @michalpardej5577 5 лет назад +1

    That was a good and helpful video, thanks!

    • @BryanCafferky
      @BryanCafferky  5 лет назад

      Thanks! Glad you got something from it.

  • @mav29
    @mav29 Год назад

    perfect, as I was trying to do same approach @ 3:50 spot on.... 5:58 it is indeed a library or atleast the way I try to do it that way too breaking it down. I am really happy I stumbled upon this video as I just started doing babysteps towards powershell although I do have small background on programming, going through the video feels like I'm just about to get in to the good part
    thx thx

  • @ghdbdeeeeeaqqq
    @ghdbdeeeeeaqqq 5 лет назад +3

    HI, thank you so much. Great, great tutorial!

  • @khanhvu90
    @khanhvu90 5 лет назад +1

    Great tutorial!! Thank you.

  • @Dayison
    @Dayison 2 года назад +1

    Very much appreciate this! Thank you!

  • @johnwells7197
    @johnwells7197 5 лет назад

    Great stuff! I have the book and about to attack it.

  • @Putteblaze
    @Putteblaze 4 года назад

    In my PS modules, i always throw in the .psd1 and also have that dot sourcing! Or import-module instead of . (Never checked if there are any difference part from been run.. gotta do that i guess 😓)

  • @mikaelbackstrom
    @mikaelbackstrom 3 года назад +1

    I really love the simplicity of maintaining code with the dot sourcing, but my experience is that when I do a Remove-Module does not take the loaded functions into consideration. I have no idea how that would effect performance with time?

    • @BryanCafferky
      @BryanCafferky  3 года назад +1

      Script modules are a better approach than dot sourcing in most cases as it provides easier code maintenance and code sharability. However, you can remove functions not loaded via module too. See powershell-guru.com/powershell-tip-35-list-and-remove-a-function/

  • @GeekMustHave
    @GeekMustHave 4 года назад +1

    I owe you a beer, may two. You saved me so much time. You are an excellent instructor. Where can I find the udm_utility.psm1? Keep broadcasting!!

    • @BryanCafferky
      @BryanCafferky  4 года назад

      Glad it helped. The code can be found at: github.com/bcafferky/shared/tree/master/PowerShellModules . Just download and unzip the file.

  • @skycoolmiles1835
    @skycoolmiles1835 3 года назад +1

    Hi Brian. Great video on PS modules btw. Do you offer any one to one online teachings? Thanks. Nile

    • @BryanCafferky
      @BryanCafferky  3 года назад

      Great idea. What are you interested in understanding?

  • @swatibaranwal9310
    @swatibaranwal9310 5 лет назад

    Show-command not working in my system, any specific reason for that and how to fix it?

    • @BryanCafferky
      @BryanCafferky  5 лет назад

      Check your PowerShell version by entering $PSVersionTable.PSVersion

  • @timothywestern6488
    @timothywestern6488 3 года назад

    The only thing I did not get. was the 'maintainability' as files argument. Wouldn't source control be so much easier?

    • @BryanCafferky
      @BryanCafferky  3 года назад

      I agree. Definitely use source code control. The problem is when a function has been duplicated multiple times, in separate scripts, there is more work to maintain the code. In PowerShell, there is a tendency to write many one-off utility scripts, perhaps with slight differences or even hard-coded values, rather than extracting them to functions and putting them in a module. Thanks

    • @timothywestern6488
      @timothywestern6488 3 года назад

      @@BryanCafferky oh yeah believe me I've bit my ownself in the but many times because I didn't think more than one off with a script or two... or more.

  • @saitt6582
    @saitt6582 4 года назад +1

    In my powershell file First.ps1 i have a Function Sum. In the Second.psm1 module i have the Functions: Sum, Multiply. How to only Import Multiply into First.ps1.

    • @BryanCafferky
      @BryanCafferky  4 года назад

      You can use the -FUNCTION parameter of the Import-Module cmdlet. See docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Core/Import-Module?view=powershell-7

  • @ronjennings7533
    @ronjennings7533 5 лет назад

    This isn't working for me. I created the module (.psm1) file exactly like yours, and I have one .ps1 file in my function directory, but when I import the module it doesn't import the function. Am I correct in understanding that a .psm1 file is basically just a script that runs when you import the module?

    • @ronjennings7533
      @ronjennings7533 5 лет назад

      I got it working by changing the path concatenation in my loop to this:
      #Loop through the list of files and load them
      foreach ($function in $functionList)
      {
      $fullPath = $functionDirectory + $function
      Write-Host 'Importing file: ' $fullPath
      . $fullPath
      }
      For some reason it wasn't liking {$functionDirectory + $function}

    • @BryanCafferky
      @BryanCafferky  5 лет назад

      Did you put the module in your documents\WindowsPowerShell\Modules folder? That is usually a default location where it will look for modules.

    • @nabeel221568
      @nabeel221568 5 лет назад

      @@BryanCafferky - $PSScriptroot is empty for me! I am working on ISE and whenever I tried Importing custom Module, nothing happens?

    • @nabeel221568
      @nabeel221568 5 лет назад +1

      Also lets say if I upload the Module in powershell gallery? Will the .psm1 concept of calling function will work??

    • @Putteblaze
      @Putteblaze 4 года назад

      Nabeel Zaidi if you run the saved script with the $PSScriptRoot you will get the folder path, you cannot run it in other way. 1. Saved as file. 2. Script is run or in debugging mode, mostly no other way.. i’m just 7months late to answer.. sorry 😅✌️

  • @mahosho5084
    @mahosho5084 2 года назад

    The organizations entire group now has to cleanup a deceiving install of several PCs