Built-In Remoting in PowerShell

Windows PowerShell v2 includes built-in remoting for many commands, using the -computername parameter.
( for a quick list of commands that support this parameter, but don't require full session support try this: 
PS> get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
)

One of the advantages of this built-in remoting is that you don't need to have full WS-Man remoting enabled to use these commands, unlike using the PSSession commands. This means you can easily find out if the DNS Server service is running on a remote computer with:

PS> Get-Service DNS -computername <computername>

You can also use built-in remoting for things like Get-Process, but there's a catch. Get-Process requires that the RemoteRegistry service be running. So the following is expected:

PS> Get-Service RemoteRegistry -Computername Charlie-PC

Status                     Name          DisplayName
------                         ----                -----------
Stopped RemoteRegistry    Remote Registry

PS> Get-Process PowerShell -Computername Charlie-PC
Get-Process : Couldn't connect to remote machine.
At line:1 char:12

  • Get-Process <<<<  PowerShell -Computername Charlie-PC
        + CategoryInfo          : NotSpecified: (:) [Get-Process], InvalidOperationException
        + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetProcessCommand

This is true even though I do have WS-Man functionality enabled on Charlie-PC, allowing me to do the following:

PS> $CharliePC = New-PSSession Charlie-PC
PS> Invoke-Command -Session $CharliePC -scriptblock { ps PowerShell }
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName  PSComputerName
-------  ------          -----         -----  -----   ------        --           -----------            --------------
    768         31          54916       56072    600     1.51     1084          powershell                  charlie-pc
    506         29        159344     149904    586     7.47     3612          powershell                  charlie-pc
    536         34          47924       55068    588     1.84     5144          powershell                  charlie-pc