about Scopes - PowerShell (2023)

  • Article
  • 17 minutes to read

Short description

Explains the concept of scope in PowerShell and shows how to set and changethe scope of elements.

Long description

PowerShell protects access to variables, aliases, functions, and PowerShelldrives (PSDrives) by limiting where they can be read and changed. PowerShelluses scope rules to ensure that you do not inadvertently change an item thatshould not be changed.

The following are the basic rules of scope:

  • Scopes may nest. An outer scope is referred to as a parent scope. Any nestedscopes are child scopes of that parent.

  • An item is visible in the scope in which it was created and in any childscopes, unless you explicitly make it private.

  • You can declare variables, aliases, functions, and PowerShell drives for ascope outside of the current scope.

  • An item that you created within a scope can be changed only in the scope inwhich it was created, unless you explicitly specify a different scope.

If you create an item in a scope, and the item shares its name with an item ina different scope, the original item might be hidden under the new item, butit is not overridden or changed.

PowerShell Scopes

PowerShell supports the following scopes:

  • Global: The scope that is in effect when PowerShell starts or when you createa new session or runspace. Variables and functions that are present whenPowerShell starts have been created in the global scope, such as automaticvariables and preference variables. The variables, aliases, and functions inyour PowerShell profiles are also created in the global scope. The globalscope is the root parent scope in a session.

  • Local: The current scope. The local scope can be the global scope or anyother scope.

  • Script: The scope that is created while a script file runs. Only the commandsin the script run in the script scope. To the commands in a script, thescript scope is the local scope.

Parent and Child Scopes

You can create a new child scope by calling a script or function. The callingscope is the parent scope. The called script or function is the child scope.The functions or scripts you call may call other functions, creating ahierarchy of child scopes whose root scope is the global scope.

Unless you explicitly make the items private, the items in the parent scopeare available to the child scope. However, items that you create and change inthe child scope do not affect the parent scope, unless you explicitly specifythe scope when you create the items.


Functions from a module do not run in a child scope of the calling scope.Modules have their own session state that is linked to the global scope.All module code runs in a module-specific hierarchy of scopes that has itsown root scope.


A child scope does not inherit the variables, aliases, and functions from theparent scope. Unless an item is private, the child scope can view the items inthe parent scope. And, it can change the items by explicitly specifying theparent scope, but the items are not part of the child scope.

However, a child scope is created with a set of items. Typically, it includesall the aliases that have the AllScope option. This option is discussedlater in this article. It includes all the variables that have the AllScopeoption, plus some automatic variables.

To find the items in a particular scope, use the Scope parameter ofGet-Variable or Get-Alias.

For example, to get all the variables in the local scope, type:

Get-Variable -Scope local

To get all the variables in the global scope, type:

(Video) PowerShell Tutorial - 2.4 - Scope

Get-Variable -Scope global

Scope Modifiers

A variable, alias, or function name can include any one of the followingoptional scope modifiers:

  • global: - Specifies that the name exists in the Global scope.

  • local: - Specifies that the name exists in the Local scope. The currentscope is always the Local scope.

  • private: - Specifies that the name is Private and only visible to thecurrent scope.


    private is not a scope. It is an option that changesthe visibility of an item outside of the scope where the item is defined.

  • script: - Specifies that the name exists in the Script scope.Script scope is the nearest ancestor script file's scope or Global ifthere is no nearest ancestor script file.

  • using: - Used to access variables defined in another scope while runningscripts via cmdlets like Start-Job and Invoke-Command.

  • workflow: - Specifies that the name exists within a workflow. Note:Workflows are not supported in PowerShell v6 and higher.

  • <variable-namespace> - A modifier created by a PowerShell PSDrive provider.For example:

    Alias:Aliases defined in the current scope
    Env:Environment variables defined in the current scope
    Function:Functions defined in the current scope
    Variable:Variables defined in the current scope

The default scope for scripts is the script scope. The default scope forfunctions and aliases is the local scope, even if they are defined in ascript.

Using scope modifiers

To specify the scope of a new variable, alias, or function, use a scopemodifier.

The syntax for a scope modifier in a variable is:

$[<scope-modifier>:]<name> = <value>

The syntax for a scope modifier in a function is:

function [<scope-modifier>:]<name> {<function-body>}

The following command, which does not use a scope modifier, creates a variablein the current or local scope:

$a = "one"

To create the same variable in the global scope, use the scope global:modifier:

$global:a = "one"Get-Variable a | Format-List *

Notice the Visibility and Options property values.

Name : aDescription :Value : oneVisibility : PublicModule :ModuleName :Options : NoneAttributes : {}

Compare that to a private variable:

$private:pVar = 'Private variable'Get-Variable pVar | Format-List *

Using the private scope modifier sets the Options property to Private.

Name : pVarDescription :Value : Private variableVisibility : PublicModule :ModuleName :Options : PrivateAttributes : {}

To create the same variable in the script scope, use the script: scopemodifier:

$script:a = "one"

You can also use a scope modifier with functions. The following functiondefinition creates a function in the global scope:

function global:Hello { Write-Host "Hello, World"}

You can also use scope modifiers to refer to a variable in a different scope.The following command refers to the $test variable, first in the local scopeand then in the global scope:


The Using: scope modifier

Using is a special scope modifier that identifies a local variable in a remotecommand. Without a modifier, PowerShell expects variables in remote commandsto be defined in the remote session.

(Video) Windows PowerShell Fundamentals Chapter 13 - Scope

The Using scope modifier is introduced in PowerShell 3.0.

For any script or command that executes out of session, you need the Usingscope modifier to embed variable values from the calling session scope, so thatout of session code can access them. The Using scope modifier is supported inthe following contexts:

  • Remotely executed commands, started with Invoke-Command using theComputerName, HostName, SSHConnection or Session parameters(remote session)
  • Background jobs, started with Start-Job (out-of-process session)
  • Thread jobs, started via Start-ThreadJob or ForEach-Object -Parallel(separate thread session)

Depending on the context, embedded variable values are either independentcopies of the data in the caller's scope or references to it. In remote andout-of-process sessions, they are always independent copies.

For more information, see about_Remote_Variables.

In thread sessions, they are passed by reference. This means it is possible tomodify call scope variables in a different thread. To safely modify variablesrequires thread synchronization.

For more information see:

  • Start-ThreadJob
  • ForEach-Object

Serialization of variable values

Remotely executed commands and background jobs run out-of-process.Out-of-process sessions use XML-based serialization and deserialization to makethe values of variables available across the process boundaries. Theserialization process converts objects to a PSObject that contains theoriginal objects properties but not its methods.

For a limited set of types, deserialization rehydrates objects back to theoriginal type. The rehydrated object is a copy of the original object instance.It has the type properties and methods. For simple types, such asSystem.Version, the copy is exact. For complex types, the copy isimperfect. For example, rehydrated certificate objects do not include theprivate key.

Instances of all other types are PSObject instances. The PSTypeNamesproperty contains the original type name prefixed with Deserialized, forexample, Deserialized.System.Data.DataTable

The AllScope Option

Variables and aliases have an Option property that can take a value ofAllScope. Items that have the AllScope property become part of any childscopes that you create, although they are not retroactively inherited by parentscopes.

An item that has the AllScope property is visible in the child scope, andit is part of that scope. Changes to the item in any scope affect all thescopes in which the variable is defined.

Managing Scope

Several cmdlets have a Scope parameter that lets you get or set (create andchange) items in a particular scope. Use the following command to find all thecmdlets in your session that have a Scope parameter:

Get-Help * -Parameter scope

To find the variables that are visible in a particular scope, use the Scopeparameter of Get-Variable. The visible variables include global variables,variables in the parent scope, and variables in the current scope.

For example, the following command gets the variables that are visible in thelocal scope:

Get-Variable -Scope local

To create a variable in a particular scope, use a scope modifier or theScope parameter of Set-Variable. The following command creates a variablein the global scope:

New-Variable -Scope global -Name a -Value "One"

You can also use the Scope parameter of the New-Alias, Set-Alias, orGet-Alias cmdlets to specify the scope. The following command creates analias in the global scope:

New-Alias -Scope global -Name np -Value Notepad.exe

To get the functions in a particular scope, use the Get-Item cmdlet when youare in the scope. The Get-Item cmdlet does not have a Scope parameter.


For the cmdlets that use the Scope parameter, you can also refer toscopes by number. The number describes the relative position of one scope toanother. Scope 0 represents the current, or local, scope. Scope 1 indicatesthe immediate parent scope. Scope 2 indicates the parent of the parent scope,and so on. Numbered scopes are useful if you have created many recursivescopes.

Using Dot Source Notation with Scope

Scripts and functions follow all the rules of scope. You create them in aparticular scope, and they affect only that scope unless you use a cmdletparameter or a scope modifier to change that scope.

But, you can add a script or function to the current scope by using dot sourcenotation. Then, when a script runs in the current scope, any functions,aliases, and variables that the script creates are available in the currentscope.

To add a function to the current scope, type a dot (.) and a space before thepath and name of the function in the function call.

For example, to run the Sample.ps1 script from the C:\Scripts directory in thescript scope (the default for scripts), use the following command:

(Video) Global Variables and Local Variables in PowerShell


To run the Sample.ps1 script in the local scope, use the following command:

. c:\scripts.sample.ps1

When you use the call operator (&) to run a function or script, it is notadded to the current scope. The following example uses the call operator:

& c:\scripts.sample.ps1

You can read more about the call operator in about_operators.

Any aliases, functions, or variables that the Sample.ps1 script creates arenot available in the current scope.

Restricting Without Scope

A few PowerShell concepts are similar to scope or interact with scope. Theseconcepts may be confused with scope or the behavior of scope.

Sessions, modules, and nested prompts are self-contained environments, butthey are not child scopes of the global scope in the session.


A session is an environment in which PowerShell runs. When you create a sessionon a remote computer, PowerShell establishes a persistent connection to theremote computer. The persistent connection lets you use the session formultiple related commands.

Because a session is a contained environment, it has its own scope, but asession is not a child scope of the session in which it was created. Thesession starts with its own global scope. This scope is independent of theglobal scope of the session. You can create child scopes in the session. Forexample, you can run a script to create a child scope in a session.


You can use a PowerShell module to share and deliver PowerShell tools. A moduleis a unit that can contain cmdlets, scripts, functions, variables, aliases, andother useful items. Unless explicitly defined, the items in a module are notaccessible outside the module. Therefore, you can add the module to yoursession and use the public items without worrying that the other items mightoverride the cmdlets, scripts, functions, and other items in your session.

By default, modules are loaded into the top-level of the current sessionstate not the current scope. The current session state could be a modulesession state or the global session state. Adding a module to a session doesnot change the scope. If you are in the global scope, then modules are loadedinto the global session state. Any exports are placed into the global tables.If you load module2 from within module1, module2 is loaded into the sessionstate of module1 not the global session state. Any exports from module2 areplaced at the top of the module1 session state. If you useImport-Module -Scope local, then the exports are placed into the currentscope object rather than at the top level. If you are in a module and useImport-Module -Scope global (or Import-Module -Global) to load anothermodule, that module and its exports are loaded into the global session stateinstead of the module's local session state. This feature was designed forwriting module that manipulate modules. The WindowsCompatibility moduledoes this to import proxy modules into the global session state.

Within the session state, modules have their own scope. Consider the followingmodule C:\temp\mod1.psm1:

$a = "Hello"function foo { "`$a = $a" "`$global:a = $global:a"}

Now we create a global variable $a, give it a value and call the functionfoo.

$a = "Goodbye"foo

The module declares the variable $a in the module scope then the functionfoo outputs the value of the variable in both scopes.

$a = Hello$global:a = Goodbye

Nested Prompts

Nested prompts do not have their own scope. When you enter a nestedprompt, the nested prompt is a subset of the environment. But, you remainwithin the local scope.

Scripts do have their own scope. If you are debugging a script, and you reach abreakpoint in the script, you enter the script scope.

Private Option

Aliases and variables have an Option property that can take a value ofPrivate. Items that have the Private option can be viewed and changedin the scope in which they are created, but they cannot be viewed or changedoutside that scope.

For example, if you create a variable that has a private option in the globalscope and then run a script, Get-Variable commands in the script do notdisplay the private variable. Using the global scope modifier in this instancedoes not display the private variable.

You can use the Option parameter of the New-Variable, Set-Variable,New-Alias, and Set-Alias cmdlets to set the value of the Option property toPrivate.


The Visibility property of a variable or alias determines whether you cansee the item outside the container, in which it was created. A container couldbe a module, script, or snap-in. Visibility is designed for containers in thesame way that the Private value of the Option property is designed forscopes.

The Visibility property takes the Public and Private values. Itemsthat have private visibility can be viewed and changed only in the container inwhich they were created. If the container is added or imported, the items thathave private visibility cannot be viewed or changed.

Because visibility is designed for containers, it works differently in a scope.

  • If you create an item that has private visibility in the global scope, youcannot view or change the item in any scope.
  • If you try to view or change the value of a variable that has privatevisibility, PowerShell returns an error message.

You can use the New-Variable and Set-Variable cmdlets to create a variablethat has private visibility.


Example 1: Change a Variable Value Only in a Script

The following command changes the value of the $ConfirmPreference variable ina script. The change does not affect the global scope.

First, to display the value of the $ConfirmPreference variable in the localscope, use the following command:

(Video) PowerShell Scoping for Mere Mortals.- Anthony Allen - PSCONFEU 2020

PS> $ConfirmPreferenceHigh

Create a Scope.ps1 script that contains the following commands:

$ConfirmPreference = "Low""The value of `$ConfirmPreference is $ConfirmPreference."

Run the script. The script changes the value of the $ConfirmPreferencevariable and then reports its value in the script scope. The output shouldresemble the following output:

The value of $ConfirmPreference is Low.

Next, test the current value of the $ConfirmPreference variable in the currentscope.

PS> $ConfirmPreferenceHigh

This example shows that changes to the value of a variable in the script scopedoes not affect the variable`s value in the parent scope.

Example 2: View a Variable Value in Different Scopes

You can use scope modifiers to view the value of a variable in the local scopeand in a parent scope.

First, define a $test variable in the global scope.

$test = "Global"

Next, create a Sample.ps1 script that defines the $test variable. In thescript, use a scope modifier to refer to either the global or local versionsof the $test variable.

In Sample.ps1:

$test = "Local""The local value of `$test is $test.""The global value of `$test is $global:test."

When you run Sample.ps1, the output should resemble the following output:

The local value of $test is Local.The global value of $test is Global.

When the script is complete, only the global value of $test is defined in thesession.

PS> $testGlobal

Example 3: Change the Value of a Variable in a Parent Scope

Unless you protect an item by using the Private option or another method, youcan view and change the value of a variable in a parent scope.

First, define a $test variable in the global scope.

$test = "Global"

Next, create a Sample.ps1 script that defines the $test variable. In thescript, use a scope modifier to refer to either the global or local versionsof the $test variable.

In Sample.ps1:

$global:test = "Local""The global value of `$test is $global:test."

When the script is complete, the global value of $test is changed.

PS> $testLocal

Example 4: Creating a Private Variable

A private variable is a variable that has an Option property that has avalue of Private. Private variables are inherited by the child scope,but they can only be viewed or changed in the scope in which they were created.

The following command creates a private variable called $ptest in the localscope.

New-Variable -Name ptest -Value 1 -Option Private

You can display and change the value of $ptest in the local scope.

PS> $ptest1PS> $ptest = 2PS> $ptest2

Next, create a Sample.ps1 script that contains the following commands. Thecommand tries to display and change the value of $ptest.

In Sample.ps1:

"The value of `$Ptest is $Ptest.""The value of `$Ptest is $global:Ptest."

The $ptest variable is not visible in the script scope, the output isempty.

"The value of $Ptest is .""The value of $Ptest is ."

Example 5: Using a Local Variable in a Remote Command

For variables in a remote command created in the local session, use the Usingscope modifier. PowerShell assumes that the variables in remote commands werecreated in the remote session.

The syntax is:


For example, the following commands create a $Cred variable in the localsession and then use the $Cred variable in a remote command:

(Video) 29- Configure DHCP Server Options and DHCP Scope Options BY (powershell)

$Cred = Get-CredentialInvoke-Command $s {Remove-Item .\Test*.ps1 -Credential $Using:Cred}

The Using scope was introduced in PowerShell 3.0. In PowerShell 2.0, toindicate that a variable was created in the local session, use the followingcommand format.

$Cred = Get-CredentialInvoke-Command $s { param($c) Remove-Item .\Test*.ps1 -Credential $c} -ArgumentList $Cred

See also

  • about_Variables
  • about_Environment_Variables
  • about_Functions
  • about_Script_Blocks
  • Start-ThreadJob


What is scope in PowerShell? ›

PowerShell Scopes

Global: The scope that is in effect when PowerShell starts or when you create a new session or runspace. Variables and functions that are present when PowerShell starts have been created in the global scope, such as automatic variables and preference variables.

How do I prepare for a PowerShell interview? ›

You should be prepared to answer PowerShell interview questions on different types of loops. The concept of loops is useful in PowerShell when you need to execute the block of commands or statements several times. Following are categories of loops in PowerShell: While loop: It is also called an entry-controlled loop.

What is PowerShell Interview Questions and Answers? ›

PowerShell Interview Questions
  • 2) What are the features of PowerShell? ...
  • 3) How to launch the PowerShell in the Windows operating system? ...
  • 4) What is a pipeline in PowerShell? ...
  • 5) What is the Execution policy in PowerShell? ...
  • 6) Explain the types of Execution policy? ...
  • 7) What is Try, Catch, and finally in PowerShell?

What is the best way to learn PowerShell scripting? ›

The only way to truly learn PowerShell is by experimenting with the various cmdlets. However, before doing so, I recommend setting up a dedicated physical or virtual machine to use solely for practicing PowerShell.

What are the 3 types of scope? ›

JavaScript has 3 types of scope:
  • Block scope.
  • Function scope.
  • Global scope.

What is scope used for? ›

Scope refers to the combined objectives and requirements needed to complete a project. The term is often used in project management as well as in consulting. Properly defining the scope of a project allows managers to estimate costs and the time required to finish the project.

How do I ace a 10 minute interview? ›

10 last-minute interview tips
  1. Dress professionally.
  2. Review the job description.
  3. Research the company.
  4. Research the industry.
  5. Identify some key examples.
  6. Find something unique about yourself.
  7. Connect with employees online.
  8. Prepare responses to key questions.
May 4, 2020

What are 3 good interview questions and answers? ›

Most Common Interview Questions:
  • Tell me something about yourself.
  • How did you hear about this position?
  • Why do you want to work here?
  • Why did you decide to apply for this position?
  • What is your greatest strength?
  • What are your strengths and weaknesses?
  • What do you know about this company/organization?
Jan 3, 2023

What are 3 benefits of PowerShell? ›

Top 12 Advantages of PowerShell
  • Extensible format system. Using PowerShell, it is straightforward for a user to format his input and get an output however he wants. ...
  • Built-in data formats. ...
  • Extended type system. ...
  • Secure scripting engine. ...
  • Self-service development. ...
  • Consistent API. ...
  • Easy automation. ...
  • Cross-product composability.
Aug 26, 2022

What are 3 drawbacks of PowerShell? ›

Following are the few disadvantages of PowerShell:
  • Framework: It requires . ...
  • Object-based: With most shells, the text-based commands are used to get the work done while writing scripts. ...
  • Security risks: Another drawback of using PowerShell is that it can create some potential security risks.

What is the most important PowerShell command? ›

The Top 10 PowerShell Commands That You Should Know
  • Get-Process.
  • Stop-Process.
  • Get-Service.
  • Get-History.
  • Start-Job.
  • ConvertTo-HTML.
  • Out-File.
  • Export-CSV.
Feb 17, 2022

Why do hackers use PowerShell? ›

PowerShell was used to carry out the critical piece of the attack. The PowerShell script was used to disable Windows Defender's antivirus prevention capabilities like real-time detection, script and file scanning and a host-based intrusion prevention system.

How long does IT take to master PowerShell? ›

How Long Does it Take to Learn PowerShell? PowerShell is a powerful command-line interface solution for Windows devices. As such, it usually takes around one to two weeks to get a handle on it.

What coding language is used in PowerShell? ›

Scripting language

PowerShell is built on the . NET Common Language Runtime (CLR). All inputs and outputs are . NET objects.

What are 4 scopes? ›

There are four levels of scope: product, hit, session, and user: Product – value is applied to the product for which it has been set (Enhanced Ecommerce only). Hit – value is applied to the single hit for which it has been set.

Why is scope important in programming? ›

Scope is a concept that refers to where values and functions can be accessed. Various scopes include: Global scope (a value/function in the global scope can be used anywhere in the entire program) File or module scope (the value/function can only be accessed from within the file)

What is meant by scope and example? ›

scope noun [U] (RANGE)

C1. the range of a subject covered by a book, program, discussion, class, etc.: I'm afraid that problem is beyond/outside the scope of my lecture. Oil painting does not come within the scope of a class of this kind.

What is scope and meaning? ›

: space or opportunity for action or thought. full scope for expression. : area or amount included, reached, or viewed : range. a subject broad in scope.

What are the 5 hardest interview questions? ›

The most difficult interview questions (and answers)
  • What is your greatest weakness?
  • Why should we hire you?
  • What's something that you didn't like about your last job?
  • Why do you want this job?
  • How do you deal with conflict with a co-worker?
  • Here's an answer for you.

What are 3 good interview questions? ›

Common interview questions
  • Tell me about yourself.
  • Why are you interested in working for this company?
  • Tell me about your education.
  • Why have you chosen this particular field?
  • Describe your best/worst boss.
  • In a job, what interests you most/least?
  • What is your major weakness?

What are the six P's of an interview? ›

Landing an interview doesn't mean landing the job, because selling your skills and abilities depends on you: Prepare, Practice, Presentation, Powerful Interview, Post-Interview, and Ponder the Position are the six Ps that ensure the best possible outcome for you and the interviewer.

What is the 80/20 rule in interviewing? ›

As a rule of thumb, it is recommended that you spend just 20% of your preparation time researching the company in question, and 80% of your time focusing on yourself and your relevant skills and experience.

How do you describe yourself in 3 words interview answer? ›

"Enthusiastic, confident and friendly are three words I'd pick to describe myself. My enthusiasm for health care allows me to stay motivated at work and find importance in what I'm doing. My confidence helps me recognize my abilities while also knowing that there's always room to learn more.

How do you pass a tough interview? ›

5 Tips for Handling Difficult Interview Questions
  1. Bring an extra copy of your résumé—for yourself. ...
  2. Bring paper and pen. ...
  3. Answer a question with a question. ...
  4. Consider the motivation behind the question. ...
  5. Keep a sense of humor.
Sep 26, 2016

What does @{} mean in PowerShell? ›

@{} in PowerShell defines a hashtable, a data structure for mapping unique keys to values (in other languages this data structure is called "dictionary" or "associative array"). @{} on its own defines an empty hashtable, that can then be filled with values, e.g. like this: $h = @{} $h['a'] = 'foo' $h['b'] = 'bar'

How many types of PowerShell are there? ›

There are two real (or floating-point) types: Type float uses the 32-bit IEEE single-precision representation. Type double uses the 64-bit IEEE double-precision representation.

Which are the two forms of PowerShell? ›

As of PowerShell 6.0 there are two editions of PowerShell:
  • Desktop, which runs on . NET Framework. ...
  • Core, which runs on . NET Core.
Sep 19, 2022

What is scope and types? ›

“ - [Instructor] In JavaScript there are a few different types of scope, local, global and block scope. We'll explore each one in depth with code examples but, in short, local scope is when a variable object or function is only available locally to a function, like the warrior2 variable.

What is scope and its types? ›

The main reason for a scope is to keep variables with the same names confined to separate parts of a program. Programmers may use the same variable names repeatedly; therefore, the scope defines the region in which that variable is valid. There are two types of scope: Global Scope. Local Scope.

What is scope in lambda function? ›

1 Scope of a Lambda Expression. The body of a lambda expression has the same scope as a nested block. The same rules for name conflicts and shadowing apply. It is illegal to declare a parameter or a local variable in the lambda that has the same name as a local variable.

What is scope in spring controller? ›

Scopes a single bean definition to the lifecycle of a single HTTP request; that is each and every HTTP request will have its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext .


1. PowerShell CapsLock Detection and Variable Scope
2. Chapter 17 - A Quick Look at Scope.mp4
(Don Jones)
3. Scoping in Depth - Bruce Payette
(PowerShell Conference EU)
4. Group Scopes
(Roger Zimmerman)
5. Jakub Jareš - Pester internals and concepts (v2)
(PowerShell Conference EU)
6. Creating a DHCP v4 scope in PowerShell
(David Dalton)
Top Articles
Latest Posts
Article information

Author: Trent Wehner

Last Updated: 12/23/2022

Views: 6061

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Trent Wehner

Birthday: 1993-03-14

Address: 872 Kevin Squares, New Codyville, AK 01785-0416

Phone: +18698800304764

Job: Senior Farming Developer

Hobby: Paintball, Calligraphy, Hunting, Flying disc, Lapidary, Rafting, Inline skating

Introduction: My name is Trent Wehner, I am a talented, brainy, zealous, light, funny, gleaming, attractive person who loves writing and wants to share my knowledge and understanding with you.