title: 'You cannot call a method on a null-valued expression' Error
body: <p>I have a PowerShell script which will install a TCP/IP printer onto multiple Computers based on user input.
  The Script worked fine but we wanted to add in a safeguard so the user could not accidental install the printer onto an Asset at another site on a different subnet.</p>
  
  <p>I added the following function</p>
  
  <pre><code>### Function to compare subnet of Printer and Asset
  Function CheckSubnet {
      param ($PrinterIP, $ComputerName, $PrinterCaption)
      $Printer = Test-Connection -ComputerName $PrinterIP -Count 1
      $PrintIP = $Printer.IPV4Address.IPAddressToString
      $IPSplit = $PrintIP.Split(".")
      $PrinterSubnet = ($IPSPlit[0]+"."+$IPSplit[1]+"."+$IPSplit[2])
      $getip = Test-Connection -ComputerName $ComputerName -Count 1 
      $IPAddress = $getip.IPV4Address.IPAddressToString
      $AssetIP = $IPAddress.Split(".")
      $AssetSubnet = ($AssetIP[0]+"."+$AssetIP[1]+"."+$AssetIP[2])
      If ($PrinterSubnet -ne $AssetSubnet){
          Write-Host $ComputerName 'is not on the same subnet as ' $PrinterCaption
          $UserInput = Read-Host 'do wish to install anyway?  Y/N'
  
          If ($UserInput -eq "Y") {
          } Else {
              Continue
          }
      } Else {
      }
  }
  </code></pre>
  
  <p>Now when I run the script i get the following error return</p>
  
  <pre class="lang-none prettyprint-override"><code>You cannot call a method on a null-valued expression.
  At C:\Users\sitblsadm\Desktop\Untitled1.ps1:28 char:1
  + $IPSplit = $PrintIP.Split(".")
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
      + FullyQualifiedErrorId : InvokeMethodOnNull
  
  Cannot index into a null array.
  At C:\Users\sitblsadm\Desktop\Untitled1.ps1:29 char:1
  + $PrinterSubnet = ($IPSPlit[0]+"."+$IPSplit[1]+"."+$IPSplit[2])
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
      + FullyQualifiedErrorId : NullArray
  </code></pre>
  
  <p>I understand the null array due to <code>$IPSplit</code> not being given a value,
  But my understanding of "You cannot call a method on a null-valued expression" is that nothing has been assigned to it but in this instance I am trying to assign it a value.</p>