PowerShell, Remoting, Scripting
comments 2

Remote file explorer using PowerShell remoting and Windows forms

Last week, I released the remote file explorer powerpack for PowerGUI. The concept of this powerpack is quite simple. We use PowerShell remoting to access the PS drives of a remote machine and then use the same remoting channel to transfer files between computers.

I’ve published a free book on PowerShell 2.0 remoting. You can download it at:
[download id=”22″ format=”4″]

So, here is the first release of this forms based script. I have put this on CodePlex for better visibility and availability. This will also let me use the version control features of CodePlex. I am no expert in developing GUI applications and there will be some inefficient code. Do let me know when you find some thing like. I will fix it as soon as possible.

The project is available at http://psremoteexplorer.codeplex.com/ and the latest release is http://psremoteexplorer.codeplex.com/releases/view/40933.

Here is how the initial release looks

Remote File Explorer

Remote File Explorer

As shown in the above screenshot, I have used TreeView control for the computer listing and then a DataGrid for listing the files.


1. PowerShell 2.0
2. pModem 0.5 or later pModem download: http://www.nivot.org/2009/11/02/PowerShell20IntroducingThePModemFileTransferProtocol.aspx
Make sure you copy this module to all remote computer to the $ENV:PSModulePath
3. You need to run this script with admin elevated privileges

Getting Started

1. Enable PS remoting on computers by using Enable-PSRemoting. For guidance on how to do this in a workgroup environment check
2. Check PS remoting on each computer by using Enter-PSSession -ComputerName Localhost
3. Make sure execution policy is set to run unsigned scripts
4. Download the latest release and extract it to c:\scripts. At present, this path is hardcoded for pulling the node images. If you don’t like it, change the path in the script.

Running the Script
At PowerShell command prompt, dot source the PS1 script. This opens up the forms interface. By default, Localhost is always displayed in the tree view. You can add a remote computer by clicking on Add Computer button.

Transferring Files
To transfer a file, click on the row header within the data grid view and click Get remote File button.

At present, this supports only remote file transfers. Sending local files to remote machines is not implemented yet. The Get Remote File and Send Local file button are context aware and get enabled or disabled based on the machine context.

known issues
Check the release notes for a list of known issues

Filed under: PowerShell, Remoting, Scripting


Ravikanth is a principal engineer and the lead architect for Microsoft and VMware virtualized and hybrid cloud solutions within the Infrastructure Solutions Group at Dell EMC. He is a multi-year recipient of Microsoft Most Valuable Professional (MVP) award in Windows PowerShell (CDM) and Microsoft Azure. Ravikanth is the author of Windows PowerShell Desired State Configuration Revealed (Apress) and leads Bangalore PowerShell and Bangalore IT Pro user groups. He can be seen speaking regularly at local user group events and conferences in India and abroad.