diff --git a/powershell_completions.go b/powershell_completions.go
index 746dcb92..943cca43 100644
--- a/powershell_completions.go
+++ b/powershell_completions.go
@@ -303,8 +303,17 @@ filter __%[1]s_escapeStringWithSpecialChars {
 
     }
 }
+# Enumerate the cmds for %[1]s (set by System.Environment)
+$available%[2]s = Get-Command -Name '%[1]s' -All -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Definition -ErrorAction SilentlyContinue
 
-Register-ArgumentCompleter -CommandName '%[1]s' -ScriptBlock ${__%[2]sCompleterBlock}
+# Enumerate extant aliases for %[1]s (already set by user)
+${__%[2]sAliases} = @()
+foreach($__%[2]sCmd in $available%[2]s){
+	$__%[2]sAliases += Get-Alias | Where-Object { $_.Definition -eq ($__%[2]sCmd | Resolve-Path -ErrorAction SilentlyContinue) -or $_.Definition -eq (Get-Command -Name $__%[2]sCmd -ErrorAction SilentlyContinue).Definition } 
+}
+# Register args completer for all cmds and aliases
+[string[]]$joint%[2]snames = [array]$available%[2]s.Name + [array]${__%[2]sAliases}.Name + @('%[1]s')
+Register-ArgumentCompleter -CommandName $joint%[2]snames -ScriptBlock ${__%[2]sCompleterBlock}
 `, name, nameForVar, compCmd,
 		ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,
 		ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name)))