bvi1998
September 10, 2014, 3:51am
1
Hi,
I am using get-adcomputer to get the name and dnshostname of servers.
The dnshostname value is servername.domain.global.
I would like to change this to just the domain.global value in my output, not servername.domain.global.
Struggling, testing with only one server, I have tried to get the computername and domain name only (as opposed to the fqdn) into two columns:
$computerdetails = Get-ADComputer -server $dc -Filter {Name -like “servername*” } -Property * | select @{N=“computername”;E={$_.name}}`
,@{N=“dnsdomain”;E={$computerdetails.DNSHostName.Replace(“$computerdetails.computername.”,“”)}}
The computername works ok, but the dnsdomain is empty.
Can someone advise me please?
Thanks!
Try:
select @{n=“ComputerName”;e={$.name}},@{n=“dnsdomain”;e={$ .DNSHostName.Replace(“$($_.name).”,“”)}}
bvi1998
September 10, 2014, 4:19am
3
haha I’m answering my own questions today it seems.
I did this and it worked:
$computerdetails = Get-ADComputer -server $DC -Filter {Name -like “servername*” } -Property * | select @{N=“computername”;E={$.name}}`
,@{N=“dnsdomain”;E={$ .DNSHostName.Split(“.”)[1] + “.” + $_.DNSHostName.Split(“.”)[2]}}
bvi1998
September 10, 2014, 4:21am
4
Thanks! In the meantime I used split, but Jason’s solution worked as well
Here’s another option. Note that you don’t need to use -Properties * as the properties you’re looking for are returned by Get-ADComputer by default:
Get-ADComputer -server $dc -Filter {Name -like ‘servername*’} |
Select-Object -Property @{name=‘computername’;expression={$.name}},
@{name=‘dnsdomain’;expression={$ .DNSHostName -Replace ‘^(.*?).’}}