<# .Synopsis Add-ADTSInfo adds terminal services fields to user object .DESCRIPTION This script adds TerminalServicesHomeDrive, TerminalServicesHomeDirectory, TerminalServicesProfilePath and AllowLogon as additional members of user object. This is done by binding to each user to get the data .PARAMETER USEROBJECT One or more user objects .EXAMPLE Get-ADUser -Filter * -server 'Contoso.com' | Add-ADTSInfo Get all user objects in contoso.com and add Terminal Service informationhelp .NOTES Alan Kaplan version 1 2/3/2017 #> #Requires -version 3 Function Add-ADTSInfo { [CmdletBinding(HelpURI="http://www.akaplan.com/blog")] [OutputType([PSObject])] Param ( [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelinebyPropertyName=$true, ValueFromRemainingArguments=$false, Position=0)] [Object[]]$UserObject ) Begin { } Process { foreach ($oUsr in $UserObject){ $strDN= ($oUsr).DistinguishedName $dom = $strDN.Substring($strDN.IndexOf(",DC")).Replace(",DC=",".").Substring(1) $ADSIUser = [ADSI]"LDAP://$dom/$strDN" Try{ #Get the fields $TSUserProfile = $ADSIUser.psbase.InvokeGet('TerminalServicesProfilePath') $AllowLogon = if ($($ADSIUser.psbase.InvokeGet('allowLogon')) -eq '1'){$True}else{$False} $TSHomeDir = $ADSIUser.psbase.InvokeGet('TerminalServicesHomeDirectory') $TSDrive = $ADSIUser.psbase.InvokeGet('TerminalServicesHomeDrive') }Catch{ #if fails, show as empty $TSUserProfile=$AllowLogon=$TSHomeDir=$TSHomeDir='' } #Add additional fields to user object in the pipeline Add-Member -NotePropertyName TerminalServicesHomeDirectory -NotePropertyValue $TSHomeDir -inputobject $oUsr -Force Add-Member -NotePropertyName TerminalServicesHomeDrive -NotePropertyValue $TSHomeDR -inputobject $oUsr -Force Add-Member -NotePropertyName TerminalServicesProfilePath -NotePropertyValue $TSUserProfile -inputobject $oUsr -Force Add-Member -NotePropertyName TerminalServicesAllowLogon -NotePropertyValue $AllowLogon -inputobject $oUsr -Force #Alpha sort object out by property name $pNames = (($oUsr | gm -m Properties).Name | sort) -split "`r`n" $oUsr | select $pnames } } End{} }