Author Posts

February 15, 2018 at 10:40 am


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?


	[String]$SearchBase = "OU=Domain Users,DC=myOrg,DC=com",

function createReport {
	if($CreateReport) {
		Write-Host "Creating a report"

function Get-InactiveAccounts{
		[int32]$Days = 30
	Search-ADAccount `
	-SearchBase $SearchBase `
	-AccountInactive -UsersOnly -TimeSpan "$days" | 
		Where-Object {$_.Enabled -eq $True } |
		Sort-Object Name | 
		Select-Object Name,`

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!

February 15, 2018 at 1:29 pm

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

February 15, 2018 at 2:01 pm

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.

February 15, 2018 at 5:46 pm

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