{"componentChunkName":"component---src-templates-articles-index-jsx","path":"/articles/powershell-modules/","result":{"data":{"props":{"adsense":true,"adsenseMobile":null,"byLine":"","canonical":"https://staging.business.com/articles/powershell-modules/","content":"<p>PowerShell modules allow you to combine multiple scripts to simplify code management, accessibility and sharing.</p>\n<p><picture class=\"aligncenter full\">You've been writing PowerShell scripts for a while, and you've managed to spread those PS1 files everywhere. They're on your PC, your coworkers' PCs, and on file servers here and there. Scripting a solution to a problem has been an ad hoc process. You come across something that needs to be automated one day, write a script (or a function) to automate it, solve the problem, and move on. You've really had no organization to your script-making, and haven't thought about the future of script reuse, partly because your scripts tend to be pretty small.</picture><br><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/bb6fa51ee47d96a8b4593/1200_-900- 1200w, /images/content/5b6/bb6fa51ee47d96a8b4593/668_-501- 668w, /images/content/5b6/bb6fa51ee47d96a8b4593/320_-240- 320w\" sizes=\"668px, 100%\"></source></picture><br>If you’re like any other IT pro, this situation probably sounds familiar to you. It's not until you begin thinking about creating <em>solutions -- </em>rather than scripts -- that you begin to dabble in PowerShell modules.</p>\r\n<p>PowerShell modules aren’t <em>required</em> to show that you know how to write PowerShell scripts, but they are highly <em>recommended</em> -- especially once you’ve graduated past those one-off, ad hoc scripts. Modules enable a scripter to combine like scripts into a single, cohesive unit. This makes managing code much easier, makes code more easily accessible, and allows you to easily share your code with others.</p>\r\n<h2>What is a PowerShell module?</h2>\r\n<p>Now that you know why you'd want to write a module, let's discuss briefly what makes a PowerShell module. In simplest terms, a module is just a grouping of functions and code around a central theme. Modules are created for applications (like Microsoft Exchange, Active Directory, VMware, and so on) to manage all aspects of different applications. They are created for print management, network adapter configurations, and more. There's always a central theme or object that modules are created to manage.</p>\r\n<p>There are <a href=\"https://msdn.microsoft.com/en-us/library/dd878324%28v=vs.85%29.aspx\" target=\"_blank\">four different PowerShell modules</a>:</p>\r\n<ul>\n<li>Script Modules -- PSM1 files that typically contain mostly functions, but can contain any valid PowerShell code.</li>\r\n<li>Binary Modules -- Compiled DLL files typically not created by IT pros; these are usually left up to developers.</li>\r\n<li>Manifest Modules -- Script modules that contain a manifest.</li>\r\n<li>Dynamic Modules -- Modules that are never written to disk and are only available in memory.</li>\r\n</ul>\n<p>Each module serves specific purposes, but the module type you'll be creating will most likely be script modules. Script modules don't require knowledge of C# or the compilation process, and they are the most common, especially among IT pros.</p>\r\n<h2>When do I create a PowerShell module?</h2>\r\n<p>You can easily decide whether to create a module by answering the following questions while writing a script:</p>\r\n<ol>\n<li>Will the code I'm writing need to be used more than once?</li>\r\n<li>Does this code essentially manage a single object or entity?</li>\r\n<li>As I write this code, do I find that I'm breaking it apart into functions because it's getting too complex to be in a single script?</li>\r\n<li>Do I need to share the code with others?</li>\r\n</ol>\n<p>If you answered <em>yes</em> to at least three of these four questions, it's a good bet you should be writing a module instead of a PS1 script.</p>\r\n<h2>How do I create a PowerShell module?</h2>\r\n<p>Open up Notepad. Save the file with a PSM1 extension. Done.</p>\r\n<p>No, really, that’s it. That's all it takes to create a script module. Granted, it won't be a very functional module, but technically it <em>is</em> a script module. Let's concentrate on something more useful, though. Examples are always a great way to demonstrate a concept, so let's create a module to manage houses in a subdivision. This isn't a practical example (at least not until the PowerShell team figures out how to integrate PowerShell into the physical world) but it will show off a little of what a module is capable of.</p>\r\n<p><picture class=\"aligncenter med\"><source srcset=\"/images/content/5b6/bb7671039eb861a8b4596/742_-556- 742w, /images/content/5b6/bb7671039eb861a8b4596/412_-309- 412w, /images/content/5b6/bb7671039eb861a8b4596/206_-154- 206w\" sizes=\"(min-width: 870px) 412px, (min-width: 400px) 38vw, 62%\"></source><img src=\"/images/content/5b6/bb7671039eb861a8b4596/600-450-\" alt=\"\" width=\"600\" height=\"450\" data-content-img-id=\"5b6bb7671039eb861a8b4596\"></picture></p>\r\n<p>I've got every function I need to create new houses, find all the houses I've created, modify the houses, and finally, remove houses. The houses I'm managing with this module happen to be in the 'Fancy subdivision' neighborhood, so it's good practice to set that as a module variable at the top. This way, I can reference that variable in any of my functions.</p>\r\n<p>Because I'm sharing this module with my contractors, I don't want them to build any new houses or remove any houses without my permission, so I'm only allowing them <strong>Get-*</strong> functions and <strong>Set-*</strong> functions. I want my contractors to be able to tell what neighborhood we'll be working in, so I allow them to see the value of <strong>$Neighborhood</strong> in their PowerShell console.</p>\r\n<h2>How do I use a PowerShell module?</h2>\r\n<p>I've got the house module created, and I've called it <strong>House.psm1</strong>. Now I want my contractors to use it, so I place it in a shared folder called <strong>HOMESERVERfileshare</strong> on my network. Then I tell each contractor to open up their PowerShell console and import it.</p>\r\n<p><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/bb7a81039eb801a8b458b/1200_-100- 1200w, /images/content/5b6/bb7a81039eb801a8b458b/668_-55- 668w, /images/content/5b6/bb7a81039eb801a8b458b/320_-26- 320w\" sizes=\"668px, 100%\"></source><img src=\"/images/content/5b6/bb7a81039eb801a8b458b/600-50-\" alt=\"\" width=\"600\" height=\"50\" data-content-img-id=\"5b6bb7a81039eb801a8b458b\"></picture></p>\r\n<p>Importing the module brings all of the functions and variables into each contractor's PowerShell session.</p>\r\n<p><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/bb7d192a3a4e0668b4591/1200_-309- 1200w, /images/content/5b6/bb7d192a3a4e0668b4591/668_-172- 668w, /images/content/5b6/bb7d192a3a4e0668b4591/320_-82- 320w\" sizes=\"668px, 100%\"></source><img src=\"/images/content/5b6/bb7d192a3a4e0668b4591/999-258-\" alt=\"\" width=\"999\" height=\"258\" data-content-img-id=\"5b6bb7d192a3a4e0668b4591\"></picture></p>\r\n<p>You can see that they can run <strong>Get-House</strong> and <strong>Set-House</strong>, but the moment they try to run Remove-House, PowerShell throws an error. This is because PowerShell doesn't recognize this function, because I didn't allow it to load into the current session. At this point, they can still use this module with no problem. However, if they close the console and open it again, the <strong>Remove-House</strong> function won't be available.</p>\r\n<p>Whenever you run Import-Module (or use <a href=\"http://stevenmurawski.com/powershell/2012/01/powershell-v3-auto-loading-of-modules\" target=\"_blank\">PowerShell's auto-loading feature</a>), it only loads the module in the current session. It will not load it again. The contractor must either load the module again or, preferably, place the module into the PsModulePath so that it auto-loads the next time a House function is needed.</p>\r\n<p>This should get you started using modules. However, there's a lot of other great functionality that PowerShell modules provide. If you'd like a deeper look at modules, the best resource I've found that covers nearly all features of modules is entitled, <a href=\"https://www.simple-talk.com/dotnet/.net-tools/further-down-the-rabbit-hole-powershell-modules-and-encapsulation/\" target=\"_blank\">Further Down the Rabbit Hole: PowerShell Modules and Encapsulation</a>. It's an older article, but a lot still applies today.</p>\r\n<h3> </h3>\n","docType":"article","guid":"articles_b58c0ff9eb7b6f1131978baed1f9f6c0","lastModified":"2018-09-05T08:00:00.000Z","published":"2018-09-05T08:00:00.000Z","structuredData":null,"subtitle":"Step-by-step instructions on creating and using modules.","template":"v1","title":"How and When to Create and Use PowerShell Modules","type":"article","author":{"avatar":null,"bio":"Adam Bertram is a 20-year veteran of IT and experienced online business professional. He's an entrepreneur, IT influencer, Microsoft MVP, blogger, trainer and content marketing writer for multiple technology companies. Adam is also the founder of the popular IT career development platform TechSnips. Catch up on Adam's articles at adamtheautomator.com, connect on LinkedIn, or follow him on Twitter at @adbertram or the TechSnips Twitter account at @techsnips_io.","name":"Adam Bertram","image":null,"slug":null,"social":{"facebook":"","linkedin":"https://www.linkedin.com/in/adambertram/","twitter":"https://twitter.com/adbertram","website":"https://www.adamtheautomator.com/"},"status":"enabled","title":null,"type":"Contributing Writer","user":{"imagePath":"https://staging.business.com/images/undefined","profile":{"company":"eGain Communications","jobTitle":"Product Management Analyst","website":""}}},"breadcrumbs":null,"channels":{"primary":{"name":"Technology","slug":"technology"},"sub":{"name":"Technology Solutions","slug":"technology-solutions"}},"meta":{"robots":"index, follow","description":"PowerShell modules allow you to combine multiple scripts to simplify code management, accessibility and sharing.","title":"PowerShell Modules: How and When to Create and Use Modu - business.com"},"parsedContent":{"toc":[{"id":"what-is-a-powershell-module","title":"What is a PowerShell module?"},{"id":"when-do-i-create-a-powershell-module","title":"When do I create a PowerShell module?"},{"id":"how-do-i-create-a-powershell-module","title":"How do I create a PowerShell module?"},{"id":"how-do-i-use-a-powershell-module","title":"How do I use a PowerShell module?"}],"json":[{"component":"p","children":["PowerShell modules allow you to combine multiple scripts to simplify code management, accessibility and sharing."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":["You've been writing PowerShell scripts for a while, and you've managed to spread those PS1 files everywhere. They're on your PC, your coworkers' PCs, and on file servers here and there. Scripting a solution to a problem has been an ad hoc process. You come across something that needs to be automated one day, write a script (or a function) to automate it, solve the problem, and move on. You've really had no organization to your script-making, and haven't thought about the future of script reuse, partly because your scripts tend to be pretty small."]},{"component":"br"},{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/bb6fa51ee47d96a8b4593/1200_-900- 1200w, /images/content/5b6/bb6fa51ee47d96a8b4593/668_-501- 668w, /images/content/5b6/bb6fa51ee47d96a8b4593/320_-240- 320w","sizes":"668px, 100%"}}]},{"component":"br"},"If you’re like any other IT pro, this situation probably sounds familiar to you. It's not until you begin thinking about creating ",{"component":"em","children":["solutions -- "]},"rather than scripts -- that you begin to dabble in PowerShell modules."]},{"component":"p","children":["PowerShell modules aren’t ",{"component":"em","children":["required"]}," to show that you know how to write PowerShell scripts, but they are highly ",{"component":"em","children":["recommended"]}," -- especially once you’ve graduated past those one-off, ad hoc scripts. Modules enable a scripter to combine like scripts into a single, cohesive unit. This makes managing code much easier, makes code more easily accessible, and allows you to easily share your code with others."]},{"component":"h2","props":{"id":"what-is-a-powershell-module"},"children":["What is a PowerShell module?"]},{"component":"p","children":["Now that you know why you'd want to write a module, let's discuss briefly what makes a PowerShell module. In simplest terms, a module is just a grouping of functions and code around a central theme. Modules are created for applications (like Microsoft Exchange, Active Directory, VMware, and so on) to manage all aspects of different applications. They are created for print management, network adapter configurations, and more. There's always a central theme or object that modules are created to manage."]},{"component":"p","children":["There are ",{"component":"a","props":{"href":"https://msdn.microsoft.com/en-us/library/dd878324%28v=vs.85%29.aspx","target":"_blank"},"children":["four different PowerShell modules"]},":"]},{"component":"ul","children":[{"component":"li","children":["Script Modules -- PSM1 files that typically contain mostly functions, but can contain any valid PowerShell code."]},{"component":"li","children":["Binary Modules -- Compiled DLL files typically not created by IT pros; these are usually left up to developers."]},{"component":"li","children":["Manifest Modules -- Script modules that contain a manifest."]},{"component":"li","children":["Dynamic Modules -- Modules that are never written to disk and are only available in memory."]}]},{"component":"p","children":["Each module serves specific purposes, but the module type you'll be creating will most likely be script modules. Script modules don't require knowledge of C# or the compilation process, and they are the most common, especially among IT pros."]},{"component":"h2","props":{"id":"when-do-i-create-a-powershell-module"},"children":["When do I create a PowerShell module?"]},{"component":"p","children":["You can easily decide whether to create a module by answering the following questions while writing a script:"]},{"component":"ol","children":[{"component":"li","children":["Will the code I'm writing need to be used more than once?"]},{"component":"li","children":["Does this code essentially manage a single object or entity?"]},{"component":"li","children":["As I write this code, do I find that I'm breaking it apart into functions because it's getting too complex to be in a single script?"]},{"component":"li","children":["Do I need to share the code with others?"]}]},{"component":"p","children":["If you answered ",{"component":"em","children":["yes"]}," to at least three of these four questions, it's a good bet you should be writing a module instead of a PS1 script."]},{"component":"h2","props":{"id":"how-do-i-create-a-powershell-module"},"children":["How do I create a PowerShell module?"]},{"component":"p","children":["Open up Notepad. Save the file with a PSM1 extension. Done."]},{"component":"p","children":["No, really, that’s it. That's all it takes to create a script module. Granted, it won't be a very functional module, but technically it ",{"component":"em","children":["is"]}," a script module. Let's concentrate on something more useful, though. Examples are always a great way to demonstrate a concept, so let's create a module to manage houses in a subdivision. This isn't a practical example (at least not until the PowerShell team figures out how to integrate PowerShell into the physical world) but it will show off a little of what a module is capable of."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter med"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/bb7671039eb861a8b4596/742_-556- 742w, /images/content/5b6/bb7671039eb861a8b4596/412_-309- 412w, /images/content/5b6/bb7671039eb861a8b4596/206_-154- 206w","sizes":"(min-width: 870px) 412px, (min-width: 400px) 38vw, 62%"}},{"component":"img","props":{"src":"/images/content/5b6/bb7671039eb861a8b4596/600-450-","alt":"","width":"600","height":"450","data-content-img-id":"5b6bb7671039eb861a8b4596"}}]}]},{"component":"p","children":["I've got every function I need to create new houses, find all the houses I've created, modify the houses, and finally, remove houses. The houses I'm managing with this module happen to be in the 'Fancy subdivision' neighborhood, so it's good practice to set that as a module variable at the top. This way, I can reference that variable in any of my functions."]},{"component":"p","children":["Because I'm sharing this module with my contractors, I don't want them to build any new houses or remove any houses without my permission, so I'm only allowing them ",{"component":"strong","children":["Get-*"]}," functions and ",{"component":"strong","children":["Set-*"]}," functions. I want my contractors to be able to tell what neighborhood we'll be working in, so I allow them to see the value of ",{"component":"strong","children":["$Neighborhood"]}," in their PowerShell console."]},{"component":"h2","props":{"id":"how-do-i-use-a-powershell-module"},"children":["How do I use a PowerShell module?"]},{"component":"p","children":["I've got the house module created, and I've called it ",{"component":"strong","children":["House.psm1"]},". Now I want my contractors to use it, so I place it in a shared folder called ",{"component":"strong","children":["HOMESERVERfileshare"]}," on my network. Then I tell each contractor to open up their PowerShell console and import it."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/bb7a81039eb801a8b458b/1200_-100- 1200w, /images/content/5b6/bb7a81039eb801a8b458b/668_-55- 668w, /images/content/5b6/bb7a81039eb801a8b458b/320_-26- 320w","sizes":"668px, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/bb7a81039eb801a8b458b/600-50-","alt":"","width":"600","height":"50","data-content-img-id":"5b6bb7a81039eb801a8b458b"}}]}]},{"component":"p","children":["Importing the module brings all of the functions and variables into each contractor's PowerShell session."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/bb7d192a3a4e0668b4591/1200_-309- 1200w, /images/content/5b6/bb7d192a3a4e0668b4591/668_-172- 668w, /images/content/5b6/bb7d192a3a4e0668b4591/320_-82- 320w","sizes":"668px, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/bb7d192a3a4e0668b4591/999-258-","alt":"","width":"999","height":"258","data-content-img-id":"5b6bb7d192a3a4e0668b4591"}}]}]},{"component":"p","children":["You can see that they can run ",{"component":"strong","children":["Get-House"]}," and ",{"component":"strong","children":["Set-House"]},", but the moment they try to run Remove-House, PowerShell throws an error. This is because PowerShell doesn't recognize this function, because I didn't allow it to load into the current session. At this point, they can still use this module with no problem. However, if they close the console and open it again, the ",{"component":"strong","children":["Remove-House"]}," function won't be available."]},{"component":"p","children":["Whenever you run Import-Module (or use ",{"component":"a","props":{"href":"http://stevenmurawski.com/powershell/2012/01/powershell-v3-auto-loading-of-modules","target":"_blank"},"children":["PowerShell's auto-loading feature"]},"), it only loads the module in the current session. It will not load it again. The contractor must either load the module again or, preferably, place the module into the PsModulePath so that it auto-loads the next time a House function is needed."]},{"component":"p","children":["This should get you started using modules. However, there's a lot of other great functionality that PowerShell modules provide. If you'd like a deeper look at modules, the best resource I've found that covers nearly all features of modules is entitled, ",{"component":"a","props":{"href":"https://www.simple-talk.com/dotnet/.net-tools/further-down-the-rabbit-hole-powershell-modules-and-encapsulation/","target":"_blank"},"children":["Further Down the Rabbit Hole: PowerShell Modules and Encapsulation"]},". It's an older article, but a lot still applies today."]},{"component":"h3","children":[" "]}]},"resource":null,"sponsorship":null,"thumbnail":{"path":"https://staging.business.com/images/content/5cf/a71415a215e501f8b457a/1500-0-","caption":"Atstock Productions/Shutterstock","isBlurred":false},"bestPicks":null},"related":{"relatedArticles":[{"title":"PowerShell: Everything You Need to Know","canonical":"https://www.business.com/articles/powershell-everything-you-need-to-know/","slug":"powershell-everything-you-need-to-know","thumbnail":"https://www.business.com/images/content/5b8/998581039eb8f738b457b/1500-0-","dek":"What you need to know to unlock Microsoft PowerShell's full capabilities.","lastModified":"2018-09-05T17:00:00Z","published":"2018-09-05T17:00:00Z","sponsored":false},{"title":"Essential PowerShell Cmdlets For Managing Active Directory","canonical":"https://www.business.com/articles/powershell-active-directory-cmdlets/","slug":"powershell-active-directory-cmdlets","thumbnail":"https://www.business.com/images/content/5cf/90cab7b4374ab068b456f/1500-0-","dek":"Administering Active Directory is one of the most critical roles in any Windows network.","lastModified":"2018-09-04T08:00:00Z","published":"2018-09-04T08:00:00Z","sponsored":false},{"title":"Using Lean Strategies to Achieve Team Synergy and Efficiency","canonical":"https://www.business.com/articles/lean-strategies-team-efficiency/","slug":"lean-strategies-team-efficiency","thumbnail":"https://www.business.com/images/content/5be/480e49c658a51108b458c/1500-0-","dek":"Learn more about lean manufacturing strategies and how to implement them in your business.","lastModified":"2018-11-08T08:00:00Z","published":"2018-11-08T08:00:00Z","sponsored":false},{"title":"Essential PowerShell Cmdlets For Auditing And Maintaining Storage","canonical":"https://www.business.com/articles/powershell-for-storage/","slug":"powershell-for-storage","thumbnail":"https://www.business.com/images/content/5d0/18e065a215ea2498b4588/1500-0-","dek":"PowerShell v5 offers some new features for managing storage.","lastModified":"2018-09-04T11:00:00Z","published":"2018-09-04T11:00:00Z","sponsored":false},{"title":"From COVID-19 to Hurricane Season: Disaster Preparedness for Small Business","canonical":"https://www.business.com/articles/business-disaster-prep/","slug":"business-disaster-prep","thumbnail":"https://www.business.com/images/content/5e7/a495e5a215eb11d8b4569/1500-0-","dek":"Natural disasters – whether a hurricane, tornado or outbreak like COVID-19 – can have a disastrous effect on small businesses, but they don't have to. Here's how to weather a disaster successfully.","lastModified":"2020-03-25T15:19:00Z","published":"2018-09-26T07:00:00Z","sponsored":false},{"title":"Your Guide to Creating a Small Business Marketing Plan","canonical":"https://www.business.com/articles/sample-marketing-plan-outline-and-template/","slug":"sample-marketing-plan-outline-and-template","thumbnail":"https://www.business.com/images/content/5f3/3e1765a215eb62d8b4567/1500-0-","dek":"Follow these templates and guidelines to get started on creating your business's marketing plan.","lastModified":"2020-08-12T12:28:00Z","published":"2018-03-02T13:00:00Z","sponsored":false},{"title":"How to Hire for Your Business","canonical":"https://www.business.com/articles/how-to-staff-business/","slug":"how-to-staff-business","thumbnail":"https://www.business.com/images/content/5ea/9c8bb9c658aee018b456c/1500-0-","dek":"Sterling Staffing Solutions CEO Stephen Carter shares his tips on staffing your business.","lastModified":"2020-07-31T15:00:00Z","published":"2018-08-16T12:00:00Z","sponsored":false},{"title":"Microsoft Azure vs. Amazon Web Services: Cloud Comparison","canonical":"https://www.business.com/articles/azure-vs-aws-cloud-comparison/","slug":"azure-vs-aws-cloud-comparison","thumbnail":"https://www.business.com/images/content/5cf/ff3445a215ed86a8b459d/1500-0-","dek":"Which one is right for your business?","lastModified":"2018-05-25T07:00:00Z","published":"2018-05-25T07:00:00Z","sponsored":false},{"title":"Resources for Veteran-Owned Businesses","canonical":"https://www.business.com/articles/resources-veteran-owned-business/","slug":"resources-veteran-owned-business","thumbnail":"https://www.business.com/images/content/5b7/425da51ee47e7568b458a/1500-0-","dek":"How to start a business, find funding and gain customers as a veteran business owner.","lastModified":"2018-08-15T12:01:00Z","published":"2018-08-15T12:01:00Z","sponsored":false},{"title":"How to Make Money in Retirement: A Guide to Turning a Hobby into a Side Business","canonical":"https://www.business.com/articles/how-make-money-retirement-hobby/","slug":"how-make-money-retirement-hobby","thumbnail":"https://www.business.com/images/content/5ba/902e01039eb26648b4572/1500-0-","dek":"Many retirees turn side interests into income. Learn how to make money in retirement.","lastModified":"2018-09-24T15:03:00Z","published":"2018-09-24T15:03:00Z","sponsored":false},{"title":"How to Manage File System ACLs with PowerShell","canonical":"https://www.business.com/articles/powershell-manage-file-system-acl/","slug":"powershell-manage-file-system-acl","thumbnail":"https://www.business.com/images/content/5cf/9f88e7b437486498b4568/1500-0-","dek":"Adjusting permissions on thousands of folders can be time consuming without PowerShell.","lastModified":"2018-09-05T11:00:00Z","published":"2018-09-05T11:00:00Z","sponsored":false},{"title":"Mobile Wallet Guide: Google Pay vs. Apple Pay vs. Samsung Pay - 08-05","canonical":"https://staging.business.com/articles/google-pay-vs-apple-pay-vs-samsung-pay/","slug":"google-pay-vs-apple-pay-vs-samsung-pay","thumbnail":"https://staging.business.com/images/content/5c5/afd7f54d26d67178b458d/1500-0-","dek":"Edit 07-24 - subtitle","lastModified":"2019-08-05T20:58:00Z","published":"2018-06-21T16:05:00Z","sponsored":null}],"relatedReviews":[{"doc_type":"category","thumbnail":"https://staging.business.com/images/rz/5df908cc5a215e8c4a8b4568/conferencecall_Antonio_Diaz_Getty.jpg","canonical":"https://staging.business.com/categories/best-conference-call-services/","title":"The Best Conference Call Services of 2021","dek":"Which conference call service is right for your business in 2021? We review the top-rated services.","slug":"best-conference-call-services","lastModified":"2021-03-17T18:17:00Z"},{"doc_type":"category","thumbnail":"https://staging.business.com/images/rz/5df3d8695a215e58428b4570/POS_GETTY_DERO2084.jpg","canonical":"https://staging.business.com/categories/best-pos-systems/","title":"The Best POS Systems of 2021","dek":"Before you choose a POS system, check out our reviews of the best picks for 2021. ","slug":"best-pos-systems","lastModified":"2021-03-17T17:33:00Z"},{"doc_type":"category","thumbnail":"https://staging.business.com/images/rz/5e00d4787b43745d6a8b456e/Laptop_undrey_getty.jpg","canonical":"https://staging.business.com/categories/employee-monitoring-software/","title":"The Best Employee Monitoring Software of 2021","dek":"We've narrowed down the best employee monitoring software for businesses. Check out our best picks and reviews.","slug":"employee-monitoring-software","lastModified":"2021-03-05T15:40:00Z"}],"relatedSponsoredArticles":null}},"pageContext":{"displayModified":"2018-09-05T08:00:00.000Z","template":"v1","title":"How and When to Create and Use PowerShell Modules","meta":{"robots":"index, follow"},"docType":"articles","slug":"powershell-modules","canonical":"https://staging.business.com/articles/powershell-modules/","skipTOC":false}},"staticQueryHashes":[]}