Are global parameters a thing?

This topic contains 3 replies, has 3 voices, and was last updated by  Don Jones 5 days, 15 hours ago.

  • Author
    Posts
  • #93676

    Stuart Luscombe
    Participant

    Hi,

    I'm new to the forum so please excuse me if this is a commonly asked question. I carried out some searches but could not find the answers I need.

    Is it possible to set certain parameters as global within a module?

    Example:

    param(
    	[String]$SearchBase = "OU=Domain Users,DC=myOrg,DC=com",
    	[Switch]$CreateReport
    )
    
    function createReport {
    	if($CreateReport) {
    		Write-Host "Creating a report"
    	}
    }
    
    function Get-InactiveAccounts{
    	param(
    		[int32]$Days = 30
    	)
    	adminCheck
    	Search-ADAccount `
    	-SearchBase $SearchBase `
    	-AccountInactive -UsersOnly -TimeSpan "$days" | 
    		Where-Object {$_.Enabled -eq $True } |
    		Sort-Object Name | 
    		Select-Object Name,`
    			@{Name='Username';Expression={$_.SamAccountName}},`
    			LastLogonDate
    	createReport
    }
    

    What I'm trying to achieve is have a parameter option for all functions in the module called CreateReport, however I am only getting the parameter Days which I've created local to the function.

    Is this something that is possible within the module? Or should I be looking at another way of doing it?

    Any help will be greatly appreciated!

  • #93696

    Simon B
    Participant

    Ahh the joys and pains of variable scopes 🙂 Have a look at the links below they should set you on the correct path.

    http://mikefrobbins.com/2017/06/08/what-is-this-module-scope-in-powershell-that-you-speak-of/

    • #93700

      Stuart Luscombe
      Participant

      Thanks for those links. Unfortunately I'm still not much the wiser on my issue.

      What I'm looking for is a way to define a 'Global' parameter at the top of the module so that each function will have a switch of -CreateReport without me needing to include a separate parameter in each function.

      I've confirmed that the functions can access the 'module defined' parameters, but as I mentioned above, they do not show up as being usable parameters for the functions themselves.

  • #93720

    Don Jones
    Keymaster

    No, there's not. Parameters are always per function.

You must be logged in to reply to this topic.