Implicit remoting allows you to load a module from a remote session and execute it "locally". What you are actually doing is running a proxy command. The actual function executes on the remote session, and the data is returned to you locally.
This approach does have the same caveats as running a command directly via Invoke-Command in that it is deserialized and rehydrated, losing any available methods on the object.
This is still a hugely useful trick, and I highly recommend using a prefix so you know in your code when something is running on the
remote system. For example Get-ADComputer
may become Get-RemoteADComputer
. You can specify whatever prefix you want, just make it
helpful to future you and other members of your team who may have to support the code later.
Here's an older blog post with some more good info and explaination: https://devblogs.microsoft.com/scripting/remoting-the-implicit-way/