Using Set-Alias In PowerShell To Create Shortcuts To Functions In Windows 10

#Using Set-Alias In PowerShell To Create Shortcuts To Functions In Windows 10 Edition

#These commands also work in both PowerShell and PowerShell Direct. You can also do this in Microsoft Windows Server 2016.

#Just the code:

Function funk_cnkermit {Enter-PSSession -ComputerName KERMIT -Credential DOMAIN\administrator} #Set fucntion to enter a PowerShell Remote session
Set-Alias kermit funk_cnkermit #Create Alias using computer name
Function funk_vmserver2016 {Enter-PSSession -VMName Server2016 -Credential DOMAIN\administrator} #Set function to enter a PowerShell Direct session
Set-Alias server2016 funk_vmserver #Create Alias using virtual machine name

#The Longer Story…

#These are two basic functions, but the functions you control with Set-Alias can be much more complicated.  An Alias is just a shortcut to a command with a long name, but without any parameters. Parameters still need to be added to most commands when running an Alias. A function can contain commonly used parameters or even more complex command structures. You will also need to add permanent functions to your $Profile for PowerShell and PowerShell ISE separately since they are controlled by two different startup files.

#Using Set-Alias In PowerShell To Create Shortcuts To Functions

#As an example, I am going to create a function to run Enter-PSSession to connect using PowerShell Remote. I also create a similar function to connect using PowerShell Direct so I just type the value of either the -VMName or the -ComputerName to enter my password and connect.

#KERMIT is the computer name of my server. The name of the virtual machine is Server2016. These commands would need to be modified to fit your environment.

#List available Functions using Out-GridView in PowerShell ISE or not

#Note: Out-GridView does not work in a remote session or in PowerShell command prompt.

Get-ChildItem Function: #Take a look a the functions currently defined
Get-ChildItem Function:|Out-GridView #Use PowerShell ISE to provide a grid view of the output

#Check the pre-defined list of aliases using Out-GridView in PowerShell ISE or not

#See pre-defined Alias list

Get-ChildItem Alias: #Take a look at the currently defined alias list
Get-ChildItem Alias:|Out-GridView #Use PowerShell ISE to provide a grid view of the output

#Create Two New Functions To Connect To Server Using PowerShell Remote and PowerShell Direct

#One function called funk_cnkermit initiates a connection to the computer name (-ComputerName) of the server and the other, funk_vmserver2016, connects to a virtual machine name (-VMName). The function name can be anything that is guaranteed to stay unique. The command inside the {} could be any commands that you find useful and use frequently. Multiple lines of code are also supported.

Function funk_cnkermit {Enter-PSSession -ComputerName KERMIT -Credential DOMAIN\administrator} #Set fucntion to enter a PowerShell Remote session
Function funk_vmserver2016 {Enter-PSSession -VMName Server2016 -Credential DOMAIN\administrator} #Set function to enter a PowerShell Direct session

#Use The Set-Alias PowerShell Command To Create Shorter Commands And To Trigger Custom Functions Into Action Without Repetitive Keystrokes

#Set an alias to each new function using the computer name kermit and the virtual machine name server2016 using the commands below:

Set-Alias kermit funk_cnkermit #Create Alias using computer name
Set-Alias server2016 funk_vmserver2016 #Create Alias using virtual machine name

 #Here Is A Useful Docker Function I Created

Function funk_DockerCleanExitedContainers {docker.exe rm $(docker ps -q -f status=exited)} #Function to automatically clean exited containers in Docker
Set-Alias Docker-CleanExitedContainers funk_DockerCleanExitedContainers #Set Alias name

#I’m sure there are much more complicated functions that I’ll add along the way, but just having an alias to Enter-PSSession is such a time saver. Don’t forget to use AutoComplete or Tab to save time when typing all of Docker-CleanExitedContainers. Once the Alias is set, it will be as if it was a command in the environment path.