How do I assign a null value to a variable in PowerShell? How do I assign a null value to a variable in PowerShell? powershell powershell

How do I assign a null value to a variable in PowerShell?


These are automatic variables, like $null, $true, $false etc.

about_Automatic_Variables, see https://technet.microsoft.com/en-us/library/hh847768.aspx?f=255&MSPPError=-2147217396

$NULL
$null is an automatic variable that contains a NULL or empty value. You can use this variable to represent an absent or undefined value in commands and scripts.

Windows PowerShell treats $null as an object with a value, that is, as an explicit placeholder, so you can use $null to represent an empty value in a series of values.

For example, when $null is included in a collection, it is counted as one of the objects.

C:\PS> $a = ".dir", $null, ".pdf"C:\PS> $a.count3

If you pipe the $null variable to the ForEach-Object cmdlet, it generates a value for $null, just as it does for the other objects.

PS C:\ps-test> ".dir", $null, ".pdf" | Foreach {"Hello"}HelloHelloHello

As a result, you cannot use $null to mean "no parameter value." A parameter value of $null overrides the default parameter value.

However, because Windows PowerShell treats the $null variable as a placeholder, you can use it scripts like the following one, which would not work if $null were ignored.

$calendar = @($null, $null, “Meeting”, $null, $null, “Team Lunch”, $null)$days = Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"$currentDay = 0foreach($day in $calendar){    if($day –ne $null)    {        "Appointment on $($days[$currentDay]): $day"    }    $currentDay++}

output:

Appointment on Tuesday: MeetingAppointment on Friday: Team lunch


Use $dec = $null

From the documentation:

$null is an automatic variable that contains a NULL or empty value. You can use this variable to represent an absent or undefined value in commands and scripts.

PowerShell treats $null as an object with a value, that is, as an explicit placeholder, so you can use $null to represent an empty value in a series of values.


If the goal simply is to list all computer objects with an empty description attribute try this

import-module activedirectory  $domain = "domain.example.com" Get-ADComputer -Filter '*' -Properties Description | where { $_.Description -eq $null }