1 – Overview
Windows 8 and Windows Server 2012 introduced a new set of PowerShell cmdlets to manage File Servers and File Shares. If you're not familiar with them, I would recommend reviewing my blog on The Basics of SMB PowerShell.
With the rule that cmdlets have to be written in a way that their purpose is obvious to the user, we sometimes end up with fairly lengthy cmdlets to type. There are two ways to overcome that: one is to use the <TAB> key while you type to autocomplete the cmdlet and the other is to use an alias.
An alias is basically an abbreviated form that maps one-to-one to the complete form of a cmdlet. For instance, if you want to get a list of SMB Shares, you can type just “gsmbs” instead of “Get-SmbShare”. Or, for a more compelling example, you can use just “gsmbsn” instead of “Get-SmbServerNetworkInterface”. You can also use the alias with the same parameters you use with the full cmdlet.
2 – The List of Aliases
Now, as you would expect from a blog like this, here is a complete list of the SMB PowerShell aliases and matching cmdlets:
| Alias | Cmdlet |
| gsmbs | Get-SmbShare |
| nsmbs | New-SmbShare |
| rsmbs | Remove-SmbShare |
| ssmbs | Set-SmbShare |
| blsmba | Block-SmbShareAccess |
| gsmba | Get-SmbShareAccess |
| grsmba | Grant-SmbShareAccess |
| rksmba | Revoke-SmbShareAccess |
| ulsmba | Unblock-SmbShareAccess |
| gsmbc | Get-SmbConnection |
| gsmbm | Get-SmbMapping |
| nsmbm | New-SmbMapping |
| rsmbm | Remove-SmbMapping |
| cssmbse | Close-SmbSession |
| gsmbse | Get-SmbSession |
| cssmbo | Close-SmbOpenFile |
| gsmbo | Get-SmbOpenFile |
| gsmbcc | Get-SmbClientConfiguration |
| ssmbcc | Set-SmbClientConfiguration |
| gsmbsc | Get-SmbServerConfiguration |
| ssmbsc | Set-SmbServerConfiguration |
| gsmbcn | Get-SmbClientNetworkInterface |
| gsmbsn | Get-SmbServerNetworkInterface |
| gsmbmc | Get-SmbMultichannelConnection |
| udsmbmc | Update-SmbMultichannelConnection |
| gsmbt | Get-SmbMultichannelConstraint |
| nsmbt | New-SmbMultichannelConstraint |
| rsmbt | Remove-SmbMultichannelConstraint |
| gsmbw | Get-SmbWitnessClient |
| msmbw | Move-SmbWitnessClient |
3 – Don’t just Memorize. Learn!
Now, more important than memorizing the aliases is to understand the logic behind the way the aliases are created. While the SMB cmdlets are created with a verb, a dash, the term “Smb” and a noun, the SMB aliases are created using a prefix (which is an abbreviation of a verb), the term “smb” and a suffix (which is an abbreviation of a noun).
Here are the prefixes that we use in SMB aliases, in alphabetical order:
| Prefix | Verb |
| Bl | Block |
| Cs | Close |
| G | Get |
| Gr | Grant |
| M | Move |
| N | New |
| R | Remove |
| Rk | Revoke |
| S | Set |
| Ud | Update |
| Ul | Unblock |
Here are the suffixes that we use in SMB Aliases, also in alphabetical order:
| Suffix | Noun |
| A | ShareAccess |
| C | Connection |
| CC | ClientConfiguration |
| CN | ClientNetworkInterface |
| M | Mapping |
| MC | MultichannelConnection |
| O | OpenFile |
| S | Share |
| SC | ServerConfiguration |
| Se | Session |
| SN | ServerNetworkInterface |
| T | MultichannelConstraint |
| W | WitnessClient |
Now that you know the logic behind it, you can guess the aliases more easily. For instance, Get-SmbConnection is gsmbc (g=Get, smb, c=Connection). Also, Grant-SmbShareAccess is grsmba (gr=Grant, smb, a=ShareAccess).
4 – Conclusion
I have mixed feeling about aliases. If you’re writing a script that someone else will have to understand, the full form of the cmdlet is probably a better idea that would make your scripts more legible. In that case, using the <TAB> key can help with the typing. On the other hand they can be a great time saver while typing a quick cmdlet here and there. Use with care… :-)