powershell – You cannot call a method on a null-valued expression
The simple answer for this one is that you have an undeclared (null) variable. In this case it is
$md5. From the comment you put this needed to be declared elsewhere in your code
$md5 = new-object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
The error was because you are trying to execute a method that does not exist.
PS C:UsersMatt> $md5 | gm TypeName: System.Security.Cryptography.MD5CryptoServiceProvider Name MemberType Definition ---- ---------- ---------- Clear Method void Clear() ComputeHash Method byte ComputeHash(System.IO.Stream inputStream), byte ComputeHash(byte buffer), byte ComputeHash(byte buffer, int offset, ...
$md5.ComputeHash() was the null valued expression. Typing in gibberish would create the same effect.
PS C:UsersMatt> $bagel.MakeMeABagel() You cannot call a method on a null-valued expression. At line:1 char:1 + $bagel.MakeMeABagel() + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) , RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull
PowerShell by default allows this to happen as defined its StrictMode
When Set-StrictMode is off, uninitialized variables (Version 1) are assumed to have a value of 0 (zero) or $Null, depending on type. References to non-existent properties return $Null, and the results of function syntax that is not valid vary with the error. Unnamed variables are not permitted.