Powershell Get-Process negative memory value

Is this an x64 Server? If so, it's possible this blogpost explains your issue. Apparently it has to do with the way the get-process reads x64 systems memory:

The reason the poster was seeing negative numbers is fairly simple: the WS property is aliased to WorkingSet, but WorkingSet is a 32-bit value. In the poster’s case, the working set size overflowed the 32-bit value, resulting in a negative number being displayed.

The solution according to the blog is ultimately to enforce formatting of the query result:

$process = “*SQL"*” GPS $process | ft name, workingset64 –auto