Understanding Type Accelerators (Part 1)

by Jun 11, 2018

“Type Accelerators” work like aliases for .NET types. They are intended to save typing. For example, the [ADSI] “type” really does not exist. It is a mere alias for System.DirectoryServices.DirectoryEntry. You could replace [ADSI] by [System.DirectoryServices.DirectoryEntry]:

 
PS> [ADSI].FullName
System.DirectoryServices.DirectoryEntry 


PS> [System.DirectoryServices.DirectoryEntry].FullName
System.DirectoryServices.DirectoryEntry   
 

Since type accelerators are hard-coded into PowerShell, it is safe to use them. The line below dumps all the predefined type accelerators, and if you ever wanted to play with .NET types, you should pick some of these because they are important to PowerShell:

 
PS> [PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')::Get

Key                          Value                                             
---                          -----                                             
Alias                        System.Management.Automation.AliasAttribute       
AllowEmptyCollection         System.Management.Automation.AllowEmptyCollecti...
AllowEmptyString             System.Management.Automation.AllowEmptyStringAt...
AllowNull                    System.Management.Automation.AllowNullAttribute   
ArgumentCompleter            System.Management.Automation.ArgumentCompleterA...
array                        System.Array                                      
bool                         System.Boolean                                    
byte                         System.Byte                                       
char                         System.Char                                       
CmdletBinding                System.Management.Automation.CmdletBindingAttri...
datetime                     System.DateTime                                   
decimal                      System.Decimal                                    
double                       System.Double                                     
DscResource                  System.Management.Automation.DscResourceAttribute 
float                        System.Single                                     
single                       System.Single                                     
guid                         System.Guid                                       
hashtable                    System.Collections.Hashtable                      
int                          System.Int32                                      
int32                        System.Int32                                      
int16                        System.Int16                                      
long                         System.Int64                                      
int64                        System.Int64                                      
ciminstance                  Microsoft.Management.Infrastructure.CimInstance   
cimclass                     Microsoft.Management.Infrastructure.CimClass      
cimtype                      Microsoft.Management.Infrastructure.CimType       
cimconverter                 Microsoft.Management.Infrastructure.CimConverter  
IPEndpoint                   System.Net.IPEndPoint                             
NullString                   System.Management.Automation.Language.NullString  
OutputType                   System.Management.Automation.OutputTypeAttribute  
ObjectSecurity               System.Security.AccessControl.ObjectSecurity      
Parameter                    System.Management.Automation.ParameterAttribute   
PhysicalAddress              System.Net.NetworkInformation.PhysicalAddress     
pscredential                 System.Management.Automation.PSCredential         
PSDefaultValue               System.Management.Automation.PSDefaultValueAttr...
pslistmodifier               System.Management.Automation.PSListModifier       
psobject                     System.Management.Automation.PSObject             
pscustomobject               System.Management.Automation.PSObject             
psprimitivedictionary        System.Management.Automation.PSPrimitiveDictionary
ref                          System.Management.Automation.PSReference          
PSTypeNameAttribute          System.Management.Automation.PSTypeNameAttribute  
regex                        System.Text.RegularExpressions.Regex              
DscProperty                  System.Management.Automation.DscPropertyAttribute 
sbyte                        System.SByte                                      
string                       System.String                                     
SupportsWildcards            System.Management.Automation.SupportsWildcardsA...
switch                       System.Management.Automation.SwitchParameter      
cultureinfo                  System.Globalization.CultureInfo                  
bigint                       System.Numerics.BigInteger                        
securestring                 System.Security.SecureString                      
timespan                     System.TimeSpan                                   
uint16                       System.UInt16                                     
uint32                       System.UInt32                                     
uint64                       System.UInt64                                     
uri                          System.Uri                                        
ValidateCount                System.Management.Automation.ValidateCountAttri...
ValidateDrive                System.Management.Automation.ValidateDriveAttri...
ValidateLength               System.Management.Automation.ValidateLengthAttr...
ValidateNotNull              System.Management.Automation.ValidateNotNullAtt...
ValidateNotNullOrEmpty       System.Management.Automation.ValidateNotNullOrE...
ValidatePattern              System.Management.Automation.ValidatePatternAtt...
ValidateRange                System.Management.Automation.ValidateRangeAttri...
ValidateScript               System.Management.Automation.ValidateScriptAttr...
ValidateSet                  System.Management.Automation.ValidateSetAttribute 
ValidateTrustedData          System.Management.Automation.ValidateTrustedDat...
ValidateUserDrive            System.Management.Automation.ValidateUserDriveA...
version                      System.Version                                    
void                         System.Void                                       
ipaddress                    System.Net.IPAddress                              
DscLocalConfigurationManager System.Management.Automation.DscLocalConfigurat...
WildcardPattern              System.Management.Automation.WildcardPattern      
X509Certificate              System.Security.Cryptography.X509Certificates.X...
X500DistinguishedName        System.Security.Cryptography.X509Certificates.X...
xml                          System.Xml.XmlDocument                            
CimSession                   Microsoft.Management.Infrastructure.CimSession    
adsi                         System.DirectoryServices.DirectoryEntry           
adsisearcher                 System.DirectoryServices.DirectorySearcher        
wmiclass                     System.Management.ManagementClass                 
wmi                          System.Management.ManagementObject                
wmisearcher                  System.Management.ManagementObjectSearcher        
mailaddress                  System.Net.Mail.MailAddress                       
scriptblock                  System.Management.Automation.ScriptBlock          
psvariable                   System.Management.Automation.PSVariable           
type                         System.Type                                       
psmoduleinfo                 System.Management.Automation.PSModuleInfo         
powershell                   System.Management.Automation.PowerShell           
runspacefactory              System.Management.Automation.Runspaces.Runspace...
runspace                     System.Management.Automation.Runspaces.Runspace   
initialsessionstate          System.Management.Automation.Runspaces.InitialS...
psscriptmethod               System.Management.Automation.PSScriptMethod       
psscriptproperty             System.Management.Automation.PSScriptProperty     
psnoteproperty               System.Management.Automation.PSNoteProperty       
psaliasproperty              System.Management.Automation.PSAliasProperty      
psvariableproperty           System.Management.Automation.PSVariableProperty   
 

Twitter This Tip! ReTweet this Tip!