Powershell: Get FQDN Hostname











up vote
40
down vote

favorite
14












I want to retrieve the FQDN name of windows server via powershell script. I have found 2 solution so far:



$server =  Invoke-Command -ScriptBlock {hostname}


Above line will print just the short name of the server



$sysinfo = Get-WmiObject -Class Win32_ComputerSystem
$server = “{0}.{1}” -f $sysinfo.Name, $sysinfo.Domain


Above two line will get me the FQDN but this looks really nasty code to retrieve just the hostname :(



So, My question is, is there an easier way to get the FQDN in powershell. I am a bash/perl coder and recently picked up powershell.. so finding it difficult.



Thanks.










share|improve this question
























  • instead of using invoke-command, you can do: $server = (hostname)
    – x0n
    Sep 4 '12 at 22:47















up vote
40
down vote

favorite
14












I want to retrieve the FQDN name of windows server via powershell script. I have found 2 solution so far:



$server =  Invoke-Command -ScriptBlock {hostname}


Above line will print just the short name of the server



$sysinfo = Get-WmiObject -Class Win32_ComputerSystem
$server = “{0}.{1}” -f $sysinfo.Name, $sysinfo.Domain


Above two line will get me the FQDN but this looks really nasty code to retrieve just the hostname :(



So, My question is, is there an easier way to get the FQDN in powershell. I am a bash/perl coder and recently picked up powershell.. so finding it difficult.



Thanks.










share|improve this question
























  • instead of using invoke-command, you can do: $server = (hostname)
    – x0n
    Sep 4 '12 at 22:47













up vote
40
down vote

favorite
14









up vote
40
down vote

favorite
14






14





I want to retrieve the FQDN name of windows server via powershell script. I have found 2 solution so far:



$server =  Invoke-Command -ScriptBlock {hostname}


Above line will print just the short name of the server



$sysinfo = Get-WmiObject -Class Win32_ComputerSystem
$server = “{0}.{1}” -f $sysinfo.Name, $sysinfo.Domain


Above two line will get me the FQDN but this looks really nasty code to retrieve just the hostname :(



So, My question is, is there an easier way to get the FQDN in powershell. I am a bash/perl coder and recently picked up powershell.. so finding it difficult.



Thanks.










share|improve this question















I want to retrieve the FQDN name of windows server via powershell script. I have found 2 solution so far:



$server =  Invoke-Command -ScriptBlock {hostname}


Above line will print just the short name of the server



$sysinfo = Get-WmiObject -Class Win32_ComputerSystem
$server = “{0}.{1}” -f $sysinfo.Name, $sysinfo.Domain


Above two line will get me the FQDN but this looks really nasty code to retrieve just the hostname :(



So, My question is, is there an easier way to get the FQDN in powershell. I am a bash/perl coder and recently picked up powershell.. so finding it difficult.



Thanks.







windows powershell






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 10 at 4:13









Tyler Szabo

5091518




5091518










asked Sep 4 '12 at 17:54









slayedbylucifer

14.6k1364104




14.6k1364104












  • instead of using invoke-command, you can do: $server = (hostname)
    – x0n
    Sep 4 '12 at 22:47


















  • instead of using invoke-command, you can do: $server = (hostname)
    – x0n
    Sep 4 '12 at 22:47
















instead of using invoke-command, you can do: $server = (hostname)
– x0n
Sep 4 '12 at 22:47




instead of using invoke-command, you can do: $server = (hostname)
– x0n
Sep 4 '12 at 22:47












10 Answers
10






active

oldest

votes

















up vote
58
down vote



accepted










How about: "$env:computername.$env:userdnsdomain"



This actually only works if the user is logged into a domain (i.e. no local accounts), logged into the same domain as the server, and doesn't work with disjointed name space AD configurations.



Use this as referenced in another answer:



$myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain


Write-Host $myFQDN






share|improve this answer



















  • 1




    Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
    – slayedbylucifer
    Sep 4 '12 at 18:07






  • 1




    This outputs nothing on my system.....as its not inside any domain..
    – perilbrain
    Sep 4 '12 at 18:08










  • Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
    – aquinas
    Sep 4 '12 at 18:30






  • 2




    We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
    – barrypicker
    Feb 25 '14 at 23:56






  • 3




    This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
    – Daniel
    Aug 6 '15 at 22:50


















up vote
54
down vote













To get FQDN of local computer:



[System.Net.Dns]::GetHostByName($env:computerName)


or



[System.Net.Dns]::GetHostByName($env:computerName).HostName


To get FQDN of Remote computer:



[System.Net.Dns]::GetHostByName('mytestpc1')


or



For better formatted value use:



[System.Net.Dns]::GetHostByName('mytestpc1').HostName



  • For remote machines make sure host is reachable.






share|improve this answer























  • Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
    – slayedbylucifer
    Sep 4 '12 at 18:01








  • 3




    This API is obsolete.
    – Gilbert
    Apr 22 '13 at 14:49






  • 1




    This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
    – BFoust
    May 16 '13 at 18:30






  • 5




    [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
    – Paul Dolphin
    Jan 29 '15 at 11:09


















up vote
25
down vote













Local Computer FQDN via dotNet class



[System.Net.Dns]::GetHostEntry([string]$env:computername).HostName


or



[System.Net.Dns]::GetHostEntry([string]"localhost").HostName


Reference:



Dns Methods (System.Net)



note: GetHostByName method is obsolete





Local computer FQDN via WMI query



$myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
Write-Host $myFQDN


Reference:



Win32_ComputerSystem class






share|improve this answer

















  • 1




    Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
    – mklement0
    Feb 10 at 18:49


















up vote
7
down vote













[System.Net.Dns]::GetHostByName((hostname)).HostName


$env:computerName returns NetBIOS name of the host, so that both previous examples return
netbioshostname.domainsuffix (not FQDN!)
instead of
dnshostname.domainsuffix (FQDN)



for example, host has
FQDN
aa-w2k12sv-storage.something.com
and NetBIOS name
aa-w2k12sv-stor (an easy case, I usually change NetBIOS name)



the hostname utility returns dnshostname, i.e., the first part of FQDN and code



[System.Net.Dns]::GetHostByName((hostname)).HostName


returns the right FQDN



Comment: never use the same NetBIOS and DNS names of AD domains and hosts. If your or 3rd party application writes to the log: "cannot connect to hostname.domainsuffix", what name it tries to resolve? If you see in the log "cannot connect to netbiosname.domainsuffix", no doubt, a lazy programmer added domain suffix to the NetBIOS name and you are sure, this is a bug, and can open a ticket to force them to fix the issue...






share|improve this answer






























    up vote
    1
    down vote













    I use the following syntax :



    $Domain=[System.Net.Dns]::GetHostByName($VM).Hostname.split('.')
    $Domain=$Domain[1]+'.'+$Domain[2]


    it does not matter if the $VM is up or down...






    share|improve this answer




























      up vote
      0
      down vote













      "$env:computername.$env:userdnsdomain" 


      will work if separated out like this



      "$env:computername"+"$env:userdnsdomain"





      share|improve this answer























      • This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
        – Thomas
        May 2 '16 at 20:42










      • the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
        – CommonToast
        May 27 '16 at 10:25


















      up vote
      0
      down vote













      How about this



      $FQDN=[System.Net.Dns]::GetHostByName($VM).Hostname.Split('.')
      [int]$i = 1
      [int]$x = 0
      [string]$Domain = $null
      do {
      $x = $i-$FQDN.Count
      $Domain = $Domain+$FQDN[$x]+"."
      $i = $i + 1
      } until ( $i -eq $FQDN.Count )
      $Domain = $Domain.TrimEnd(".")





      share|improve this answer




























        up vote
        0
        down vote













        Here is a way to determine the FQDN of a server based on the "Name" and "DistinguishedName". Works for multiple domains:



        $server = Get-ADComputer serverName -Server domainName -Properties * | select Name, DistinguishedName
        $domain = $server.DistinguishedName -split ","
        $domain = $domain | ? {$_ -like 'DC=*'}
        $domain = $domain -join "."
        $domain = $domain -replace "DC="
        $FQDN = $server.Name + "." + $domain





        share|improve this answer






























          up vote
          0
          down vote













          I have the following add.. I need to separate out the dns suffix from the hostname.. and I only "know" the servers alias shortname... and want to know what the dns suffix is



          #example:
          #serveralias: MyAppServer.us.fred.com
          #actualhostname: server01.us.fred.com
          #I "know": "MyAppServer" .. I pass this on as an env var called myjumpbox .. this could also be $env:computername


          $forname = $env:myjumpbox
          $fqdn = [System.Net.Dns]::GetHostByName($forname).Hostname
          $shortname = $fqdn.split('.')[0]
          $domainname = $fqdn -split $fqdn.split('.')[0]+"."
          $dnssuf = $domainname[1]
          " name parts are- alias: " + $forname + " actual hostname: " + $shortname + " suffix: " + $dnssuf

          #returns

          name parts are- alias: MyAppServer actual hostname: server01 suffix: us.fred.com





          share|improve this answer























          • this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
            – CBB
            Mar 1 at 15:51










          • Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
            – Petter Friberg
            Mar 1 at 16:35


















          up vote
          0
          down vote













          It can also be retrieved from the registry:



          Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetServicesTcpipParameters' 
          | % { $_.'NV HostName', $_.'NV Domain' -join '.' }





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f12268885%2fpowershell-get-fqdn-hostname%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            10 Answers
            10






            active

            oldest

            votes








            10 Answers
            10






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            58
            down vote



            accepted










            How about: "$env:computername.$env:userdnsdomain"



            This actually only works if the user is logged into a domain (i.e. no local accounts), logged into the same domain as the server, and doesn't work with disjointed name space AD configurations.



            Use this as referenced in another answer:



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain


            Write-Host $myFQDN






            share|improve this answer



















            • 1




              Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
              – slayedbylucifer
              Sep 4 '12 at 18:07






            • 1




              This outputs nothing on my system.....as its not inside any domain..
              – perilbrain
              Sep 4 '12 at 18:08










            • Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
              – aquinas
              Sep 4 '12 at 18:30






            • 2




              We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
              – barrypicker
              Feb 25 '14 at 23:56






            • 3




              This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
              – Daniel
              Aug 6 '15 at 22:50















            up vote
            58
            down vote



            accepted










            How about: "$env:computername.$env:userdnsdomain"



            This actually only works if the user is logged into a domain (i.e. no local accounts), logged into the same domain as the server, and doesn't work with disjointed name space AD configurations.



            Use this as referenced in another answer:



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain


            Write-Host $myFQDN






            share|improve this answer



















            • 1




              Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
              – slayedbylucifer
              Sep 4 '12 at 18:07






            • 1




              This outputs nothing on my system.....as its not inside any domain..
              – perilbrain
              Sep 4 '12 at 18:08










            • Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
              – aquinas
              Sep 4 '12 at 18:30






            • 2




              We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
              – barrypicker
              Feb 25 '14 at 23:56






            • 3




              This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
              – Daniel
              Aug 6 '15 at 22:50













            up vote
            58
            down vote



            accepted







            up vote
            58
            down vote



            accepted






            How about: "$env:computername.$env:userdnsdomain"



            This actually only works if the user is logged into a domain (i.e. no local accounts), logged into the same domain as the server, and doesn't work with disjointed name space AD configurations.



            Use this as referenced in another answer:



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain


            Write-Host $myFQDN






            share|improve this answer














            How about: "$env:computername.$env:userdnsdomain"



            This actually only works if the user is logged into a domain (i.e. no local accounts), logged into the same domain as the server, and doesn't work with disjointed name space AD configurations.



            Use this as referenced in another answer:



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain


            Write-Host $myFQDN







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 6 '15 at 16:06









            Christopher G. Lewis

            4,3122138




            4,3122138










            answered Sep 4 '12 at 18:02









            aquinas

            18.3k44474




            18.3k44474








            • 1




              Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
              – slayedbylucifer
              Sep 4 '12 at 18:07






            • 1




              This outputs nothing on my system.....as its not inside any domain..
              – perilbrain
              Sep 4 '12 at 18:08










            • Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
              – aquinas
              Sep 4 '12 at 18:30






            • 2




              We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
              – barrypicker
              Feb 25 '14 at 23:56






            • 3




              This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
              – Daniel
              Aug 6 '15 at 22:50














            • 1




              Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
              – slayedbylucifer
              Sep 4 '12 at 18:07






            • 1




              This outputs nothing on my system.....as its not inside any domain..
              – perilbrain
              Sep 4 '12 at 18:08










            • Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
              – aquinas
              Sep 4 '12 at 18:30






            • 2




              We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
              – barrypicker
              Feb 25 '14 at 23:56






            • 3




              This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
              – Daniel
              Aug 6 '15 at 22:50








            1




            1




            Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
            – slayedbylucifer
            Sep 4 '12 at 18:07




            Fantastic. This is even shorter. thanks. I will accept both of you guys answers soon as stackoverlow is not allowing me to mark answer right now.
            – slayedbylucifer
            Sep 4 '12 at 18:07




            1




            1




            This outputs nothing on my system.....as its not inside any domain..
            – perilbrain
            Sep 4 '12 at 18:08




            This outputs nothing on my system.....as its not inside any domain..
            – perilbrain
            Sep 4 '12 at 18:08












            Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
            – aquinas
            Sep 4 '12 at 18:30




            Hmm...so what does it mean to get the fully qualified domain name of a computer that isn't ON a domain? What do your answer output? Just the machine name? Your're saying my answer doesn't show your machine name even?
            – aquinas
            Sep 4 '12 at 18:30




            2




            2




            We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
            – barrypicker
            Feb 25 '14 at 23:56




            We have two domains so this won't work. This method assumes the domain the PS script is running on, which may not be the case.
            – barrypicker
            Feb 25 '14 at 23:56




            3




            3




            This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
            – Daniel
            Aug 6 '15 at 22:50




            This fails if the user logged in is in a different domain from the computer. It pulls the user's domain information, not the machine's
            – Daniel
            Aug 6 '15 at 22:50












            up vote
            54
            down vote













            To get FQDN of local computer:



            [System.Net.Dns]::GetHostByName($env:computerName)


            or



            [System.Net.Dns]::GetHostByName($env:computerName).HostName


            To get FQDN of Remote computer:



            [System.Net.Dns]::GetHostByName('mytestpc1')


            or



            For better formatted value use:



            [System.Net.Dns]::GetHostByName('mytestpc1').HostName



            • For remote machines make sure host is reachable.






            share|improve this answer























            • Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
              – slayedbylucifer
              Sep 4 '12 at 18:01








            • 3




              This API is obsolete.
              – Gilbert
              Apr 22 '13 at 14:49






            • 1




              This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
              – BFoust
              May 16 '13 at 18:30






            • 5




              [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
              – Paul Dolphin
              Jan 29 '15 at 11:09















            up vote
            54
            down vote













            To get FQDN of local computer:



            [System.Net.Dns]::GetHostByName($env:computerName)


            or



            [System.Net.Dns]::GetHostByName($env:computerName).HostName


            To get FQDN of Remote computer:



            [System.Net.Dns]::GetHostByName('mytestpc1')


            or



            For better formatted value use:



            [System.Net.Dns]::GetHostByName('mytestpc1').HostName



            • For remote machines make sure host is reachable.






            share|improve this answer























            • Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
              – slayedbylucifer
              Sep 4 '12 at 18:01








            • 3




              This API is obsolete.
              – Gilbert
              Apr 22 '13 at 14:49






            • 1




              This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
              – BFoust
              May 16 '13 at 18:30






            • 5




              [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
              – Paul Dolphin
              Jan 29 '15 at 11:09













            up vote
            54
            down vote










            up vote
            54
            down vote









            To get FQDN of local computer:



            [System.Net.Dns]::GetHostByName($env:computerName)


            or



            [System.Net.Dns]::GetHostByName($env:computerName).HostName


            To get FQDN of Remote computer:



            [System.Net.Dns]::GetHostByName('mytestpc1')


            or



            For better formatted value use:



            [System.Net.Dns]::GetHostByName('mytestpc1').HostName



            • For remote machines make sure host is reachable.






            share|improve this answer














            To get FQDN of local computer:



            [System.Net.Dns]::GetHostByName($env:computerName)


            or



            [System.Net.Dns]::GetHostByName($env:computerName).HostName


            To get FQDN of Remote computer:



            [System.Net.Dns]::GetHostByName('mytestpc1')


            or



            For better formatted value use:



            [System.Net.Dns]::GetHostByName('mytestpc1').HostName



            • For remote machines make sure host is reachable.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Jul 20 at 6:57









            John Oxley

            7,325154472




            7,325154472










            answered Sep 4 '12 at 17:57









            perilbrain

            6,34112032




            6,34112032












            • Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
              – slayedbylucifer
              Sep 4 '12 at 18:01








            • 3




              This API is obsolete.
              – Gilbert
              Apr 22 '13 at 14:49






            • 1




              This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
              – BFoust
              May 16 '13 at 18:30






            • 5




              [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
              – Paul Dolphin
              Jan 29 '15 at 11:09


















            • Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
              – slayedbylucifer
              Sep 4 '12 at 18:01








            • 3




              This API is obsolete.
              – Gilbert
              Apr 22 '13 at 14:49






            • 1




              This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
              – BFoust
              May 16 '13 at 18:30






            • 5




              [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
              – Paul Dolphin
              Jan 29 '15 at 11:09
















            Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
            – slayedbylucifer
            Sep 4 '12 at 18:01






            Thank you for the quick response. This works fine.I googled a lot before posting this question but did not find anything closer to what you have mentioned. could you point me to powershell documents ..if any. Thanks again.
            – slayedbylucifer
            Sep 4 '12 at 18:01






            3




            3




            This API is obsolete.
            – Gilbert
            Apr 22 '13 at 14:49




            This API is obsolete.
            – Gilbert
            Apr 22 '13 at 14:49




            1




            1




            This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
            – BFoust
            May 16 '13 at 18:30




            This is the correct way to get this information when running automation scripts. The $env:userdnsdomain returns NULL unless a user is logged in.
            – BFoust
            May 16 '13 at 18:30




            5




            5




            [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
            – Paul Dolphin
            Jan 29 '15 at 11:09




            [System.Net.Dns]::GetHostByName(($env:computerName)).HostName
            – Paul Dolphin
            Jan 29 '15 at 11:09










            up vote
            25
            down vote













            Local Computer FQDN via dotNet class



            [System.Net.Dns]::GetHostEntry([string]$env:computername).HostName


            or



            [System.Net.Dns]::GetHostEntry([string]"localhost").HostName


            Reference:



            Dns Methods (System.Net)



            note: GetHostByName method is obsolete





            Local computer FQDN via WMI query



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
            Write-Host $myFQDN


            Reference:



            Win32_ComputerSystem class






            share|improve this answer

















            • 1




              Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
              – mklement0
              Feb 10 at 18:49















            up vote
            25
            down vote













            Local Computer FQDN via dotNet class



            [System.Net.Dns]::GetHostEntry([string]$env:computername).HostName


            or



            [System.Net.Dns]::GetHostEntry([string]"localhost").HostName


            Reference:



            Dns Methods (System.Net)



            note: GetHostByName method is obsolete





            Local computer FQDN via WMI query



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
            Write-Host $myFQDN


            Reference:



            Win32_ComputerSystem class






            share|improve this answer

















            • 1




              Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
              – mklement0
              Feb 10 at 18:49













            up vote
            25
            down vote










            up vote
            25
            down vote









            Local Computer FQDN via dotNet class



            [System.Net.Dns]::GetHostEntry([string]$env:computername).HostName


            or



            [System.Net.Dns]::GetHostEntry([string]"localhost").HostName


            Reference:



            Dns Methods (System.Net)



            note: GetHostByName method is obsolete





            Local computer FQDN via WMI query



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
            Write-Host $myFQDN


            Reference:



            Win32_ComputerSystem class






            share|improve this answer












            Local Computer FQDN via dotNet class



            [System.Net.Dns]::GetHostEntry([string]$env:computername).HostName


            or



            [System.Net.Dns]::GetHostEntry([string]"localhost").HostName


            Reference:



            Dns Methods (System.Net)



            note: GetHostByName method is obsolete





            Local computer FQDN via WMI query



            $myFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
            Write-Host $myFQDN


            Reference:



            Win32_ComputerSystem class







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered May 13 '14 at 13:40









            user3632452

            25132




            25132








            • 1




              Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
              – mklement0
              Feb 10 at 18:49














            • 1




              Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
              – mklement0
              Feb 10 at 18:49








            1




            1




            Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
            – mklement0
            Feb 10 at 18:49




            Nicely done. The [string] casts aren't necessary. A variant of the WMI command (updated for CIM) that only requires one call: Get-CimInstance win32_computersystem | % { $_.Name + '.' + $_.Domain }
            – mklement0
            Feb 10 at 18:49










            up vote
            7
            down vote













            [System.Net.Dns]::GetHostByName((hostname)).HostName


            $env:computerName returns NetBIOS name of the host, so that both previous examples return
            netbioshostname.domainsuffix (not FQDN!)
            instead of
            dnshostname.domainsuffix (FQDN)



            for example, host has
            FQDN
            aa-w2k12sv-storage.something.com
            and NetBIOS name
            aa-w2k12sv-stor (an easy case, I usually change NetBIOS name)



            the hostname utility returns dnshostname, i.e., the first part of FQDN and code



            [System.Net.Dns]::GetHostByName((hostname)).HostName


            returns the right FQDN



            Comment: never use the same NetBIOS and DNS names of AD domains and hosts. If your or 3rd party application writes to the log: "cannot connect to hostname.domainsuffix", what name it tries to resolve? If you see in the log "cannot connect to netbiosname.domainsuffix", no doubt, a lazy programmer added domain suffix to the NetBIOS name and you are sure, this is a bug, and can open a ticket to force them to fix the issue...






            share|improve this answer



























              up vote
              7
              down vote













              [System.Net.Dns]::GetHostByName((hostname)).HostName


              $env:computerName returns NetBIOS name of the host, so that both previous examples return
              netbioshostname.domainsuffix (not FQDN!)
              instead of
              dnshostname.domainsuffix (FQDN)



              for example, host has
              FQDN
              aa-w2k12sv-storage.something.com
              and NetBIOS name
              aa-w2k12sv-stor (an easy case, I usually change NetBIOS name)



              the hostname utility returns dnshostname, i.e., the first part of FQDN and code



              [System.Net.Dns]::GetHostByName((hostname)).HostName


              returns the right FQDN



              Comment: never use the same NetBIOS and DNS names of AD domains and hosts. If your or 3rd party application writes to the log: "cannot connect to hostname.domainsuffix", what name it tries to resolve? If you see in the log "cannot connect to netbiosname.domainsuffix", no doubt, a lazy programmer added domain suffix to the NetBIOS name and you are sure, this is a bug, and can open a ticket to force them to fix the issue...






              share|improve this answer

























                up vote
                7
                down vote










                up vote
                7
                down vote









                [System.Net.Dns]::GetHostByName((hostname)).HostName


                $env:computerName returns NetBIOS name of the host, so that both previous examples return
                netbioshostname.domainsuffix (not FQDN!)
                instead of
                dnshostname.domainsuffix (FQDN)



                for example, host has
                FQDN
                aa-w2k12sv-storage.something.com
                and NetBIOS name
                aa-w2k12sv-stor (an easy case, I usually change NetBIOS name)



                the hostname utility returns dnshostname, i.e., the first part of FQDN and code



                [System.Net.Dns]::GetHostByName((hostname)).HostName


                returns the right FQDN



                Comment: never use the same NetBIOS and DNS names of AD domains and hosts. If your or 3rd party application writes to the log: "cannot connect to hostname.domainsuffix", what name it tries to resolve? If you see in the log "cannot connect to netbiosname.domainsuffix", no doubt, a lazy programmer added domain suffix to the NetBIOS name and you are sure, this is a bug, and can open a ticket to force them to fix the issue...






                share|improve this answer














                [System.Net.Dns]::GetHostByName((hostname)).HostName


                $env:computerName returns NetBIOS name of the host, so that both previous examples return
                netbioshostname.domainsuffix (not FQDN!)
                instead of
                dnshostname.domainsuffix (FQDN)



                for example, host has
                FQDN
                aa-w2k12sv-storage.something.com
                and NetBIOS name
                aa-w2k12sv-stor (an easy case, I usually change NetBIOS name)



                the hostname utility returns dnshostname, i.e., the first part of FQDN and code



                [System.Net.Dns]::GetHostByName((hostname)).HostName


                returns the right FQDN



                Comment: never use the same NetBIOS and DNS names of AD domains and hosts. If your or 3rd party application writes to the log: "cannot connect to hostname.domainsuffix", what name it tries to resolve? If you see in the log "cannot connect to netbiosname.domainsuffix", no doubt, a lazy programmer added domain suffix to the NetBIOS name and you are sure, this is a bug, and can open a ticket to force them to fix the issue...







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Aug 7 '13 at 15:52

























                answered Aug 7 '13 at 12:32









                Alexander Petrovsky

                14627




                14627






















                    up vote
                    1
                    down vote













                    I use the following syntax :



                    $Domain=[System.Net.Dns]::GetHostByName($VM).Hostname.split('.')
                    $Domain=$Domain[1]+'.'+$Domain[2]


                    it does not matter if the $VM is up or down...






                    share|improve this answer

























                      up vote
                      1
                      down vote













                      I use the following syntax :



                      $Domain=[System.Net.Dns]::GetHostByName($VM).Hostname.split('.')
                      $Domain=$Domain[1]+'.'+$Domain[2]


                      it does not matter if the $VM is up or down...






                      share|improve this answer























                        up vote
                        1
                        down vote










                        up vote
                        1
                        down vote









                        I use the following syntax :



                        $Domain=[System.Net.Dns]::GetHostByName($VM).Hostname.split('.')
                        $Domain=$Domain[1]+'.'+$Domain[2]


                        it does not matter if the $VM is up or down...






                        share|improve this answer












                        I use the following syntax :



                        $Domain=[System.Net.Dns]::GetHostByName($VM).Hostname.split('.')
                        $Domain=$Domain[1]+'.'+$Domain[2]


                        it does not matter if the $VM is up or down...







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered May 5 '15 at 15:14









                        SnakeNET

                        111




                        111






















                            up vote
                            0
                            down vote













                            "$env:computername.$env:userdnsdomain" 


                            will work if separated out like this



                            "$env:computername"+"$env:userdnsdomain"





                            share|improve this answer























                            • This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
                              – Thomas
                              May 2 '16 at 20:42










                            • the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
                              – CommonToast
                              May 27 '16 at 10:25















                            up vote
                            0
                            down vote













                            "$env:computername.$env:userdnsdomain" 


                            will work if separated out like this



                            "$env:computername"+"$env:userdnsdomain"





                            share|improve this answer























                            • This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
                              – Thomas
                              May 2 '16 at 20:42










                            • the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
                              – CommonToast
                              May 27 '16 at 10:25













                            up vote
                            0
                            down vote










                            up vote
                            0
                            down vote









                            "$env:computername.$env:userdnsdomain" 


                            will work if separated out like this



                            "$env:computername"+"$env:userdnsdomain"





                            share|improve this answer














                            "$env:computername.$env:userdnsdomain" 


                            will work if separated out like this



                            "$env:computername"+"$env:userdnsdomain"






                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited Apr 29 '15 at 14:28









                            Ghost

                            38.1k123958




                            38.1k123958










                            answered Apr 29 '15 at 14:08









                            julian

                            1




                            1












                            • This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
                              – Thomas
                              May 2 '16 at 20:42










                            • the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
                              – CommonToast
                              May 27 '16 at 10:25


















                            • This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
                              – Thomas
                              May 2 '16 at 20:42










                            • the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
                              – CommonToast
                              May 27 '16 at 10:25
















                            This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
                            – Thomas
                            May 2 '16 at 20:42




                            This is unfortunately not accurate, as the user logon domain is not guaranteed to be the the same as the server domain, especially in a production environment, where the users can be declared in domain example.net but the servers be in siteA.example.net, siteB.example.net, corp.example.net, etc.
                            – Thomas
                            May 2 '16 at 20:42












                            the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
                            – CommonToast
                            May 27 '16 at 10:25




                            the $env:USERdnsdomain might also be empty if you run the script under a local user (like NTAUTHOITYLOCAL_SERVICE)
                            – CommonToast
                            May 27 '16 at 10:25










                            up vote
                            0
                            down vote













                            How about this



                            $FQDN=[System.Net.Dns]::GetHostByName($VM).Hostname.Split('.')
                            [int]$i = 1
                            [int]$x = 0
                            [string]$Domain = $null
                            do {
                            $x = $i-$FQDN.Count
                            $Domain = $Domain+$FQDN[$x]+"."
                            $i = $i + 1
                            } until ( $i -eq $FQDN.Count )
                            $Domain = $Domain.TrimEnd(".")





                            share|improve this answer

























                              up vote
                              0
                              down vote













                              How about this



                              $FQDN=[System.Net.Dns]::GetHostByName($VM).Hostname.Split('.')
                              [int]$i = 1
                              [int]$x = 0
                              [string]$Domain = $null
                              do {
                              $x = $i-$FQDN.Count
                              $Domain = $Domain+$FQDN[$x]+"."
                              $i = $i + 1
                              } until ( $i -eq $FQDN.Count )
                              $Domain = $Domain.TrimEnd(".")





                              share|improve this answer























                                up vote
                                0
                                down vote










                                up vote
                                0
                                down vote









                                How about this



                                $FQDN=[System.Net.Dns]::GetHostByName($VM).Hostname.Split('.')
                                [int]$i = 1
                                [int]$x = 0
                                [string]$Domain = $null
                                do {
                                $x = $i-$FQDN.Count
                                $Domain = $Domain+$FQDN[$x]+"."
                                $i = $i + 1
                                } until ( $i -eq $FQDN.Count )
                                $Domain = $Domain.TrimEnd(".")





                                share|improve this answer












                                How about this



                                $FQDN=[System.Net.Dns]::GetHostByName($VM).Hostname.Split('.')
                                [int]$i = 1
                                [int]$x = 0
                                [string]$Domain = $null
                                do {
                                $x = $i-$FQDN.Count
                                $Domain = $Domain+$FQDN[$x]+"."
                                $i = $i + 1
                                } until ( $i -eq $FQDN.Count )
                                $Domain = $Domain.TrimEnd(".")






                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered May 5 '16 at 6:05









                                JABIR ABDUL RAHIMAN

                                1




                                1






















                                    up vote
                                    0
                                    down vote













                                    Here is a way to determine the FQDN of a server based on the "Name" and "DistinguishedName". Works for multiple domains:



                                    $server = Get-ADComputer serverName -Server domainName -Properties * | select Name, DistinguishedName
                                    $domain = $server.DistinguishedName -split ","
                                    $domain = $domain | ? {$_ -like 'DC=*'}
                                    $domain = $domain -join "."
                                    $domain = $domain -replace "DC="
                                    $FQDN = $server.Name + "." + $domain





                                    share|improve this answer



























                                      up vote
                                      0
                                      down vote













                                      Here is a way to determine the FQDN of a server based on the "Name" and "DistinguishedName". Works for multiple domains:



                                      $server = Get-ADComputer serverName -Server domainName -Properties * | select Name, DistinguishedName
                                      $domain = $server.DistinguishedName -split ","
                                      $domain = $domain | ? {$_ -like 'DC=*'}
                                      $domain = $domain -join "."
                                      $domain = $domain -replace "DC="
                                      $FQDN = $server.Name + "." + $domain





                                      share|improve this answer

























                                        up vote
                                        0
                                        down vote










                                        up vote
                                        0
                                        down vote









                                        Here is a way to determine the FQDN of a server based on the "Name" and "DistinguishedName". Works for multiple domains:



                                        $server = Get-ADComputer serverName -Server domainName -Properties * | select Name, DistinguishedName
                                        $domain = $server.DistinguishedName -split ","
                                        $domain = $domain | ? {$_ -like 'DC=*'}
                                        $domain = $domain -join "."
                                        $domain = $domain -replace "DC="
                                        $FQDN = $server.Name + "." + $domain





                                        share|improve this answer














                                        Here is a way to determine the FQDN of a server based on the "Name" and "DistinguishedName". Works for multiple domains:



                                        $server = Get-ADComputer serverName -Server domainName -Properties * | select Name, DistinguishedName
                                        $domain = $server.DistinguishedName -split ","
                                        $domain = $domain | ? {$_ -like 'DC=*'}
                                        $domain = $domain -join "."
                                        $domain = $domain -replace "DC="
                                        $FQDN = $server.Name + "." + $domain






                                        share|improve this answer














                                        share|improve this answer



                                        share|improve this answer








                                        edited Sep 15 '17 at 12:49

























                                        answered Sep 15 '17 at 12:36









                                        StevenMMK

                                        165




                                        165






















                                            up vote
                                            0
                                            down vote













                                            I have the following add.. I need to separate out the dns suffix from the hostname.. and I only "know" the servers alias shortname... and want to know what the dns suffix is



                                            #example:
                                            #serveralias: MyAppServer.us.fred.com
                                            #actualhostname: server01.us.fred.com
                                            #I "know": "MyAppServer" .. I pass this on as an env var called myjumpbox .. this could also be $env:computername


                                            $forname = $env:myjumpbox
                                            $fqdn = [System.Net.Dns]::GetHostByName($forname).Hostname
                                            $shortname = $fqdn.split('.')[0]
                                            $domainname = $fqdn -split $fqdn.split('.')[0]+"."
                                            $dnssuf = $domainname[1]
                                            " name parts are- alias: " + $forname + " actual hostname: " + $shortname + " suffix: " + $dnssuf

                                            #returns

                                            name parts are- alias: MyAppServer actual hostname: server01 suffix: us.fred.com





                                            share|improve this answer























                                            • this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
                                              – CBB
                                              Mar 1 at 15:51










                                            • Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
                                              – Petter Friberg
                                              Mar 1 at 16:35















                                            up vote
                                            0
                                            down vote













                                            I have the following add.. I need to separate out the dns suffix from the hostname.. and I only "know" the servers alias shortname... and want to know what the dns suffix is



                                            #example:
                                            #serveralias: MyAppServer.us.fred.com
                                            #actualhostname: server01.us.fred.com
                                            #I "know": "MyAppServer" .. I pass this on as an env var called myjumpbox .. this could also be $env:computername


                                            $forname = $env:myjumpbox
                                            $fqdn = [System.Net.Dns]::GetHostByName($forname).Hostname
                                            $shortname = $fqdn.split('.')[0]
                                            $domainname = $fqdn -split $fqdn.split('.')[0]+"."
                                            $dnssuf = $domainname[1]
                                            " name parts are- alias: " + $forname + " actual hostname: " + $shortname + " suffix: " + $dnssuf

                                            #returns

                                            name parts are- alias: MyAppServer actual hostname: server01 suffix: us.fred.com





                                            share|improve this answer























                                            • this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
                                              – CBB
                                              Mar 1 at 15:51










                                            • Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
                                              – Petter Friberg
                                              Mar 1 at 16:35













                                            up vote
                                            0
                                            down vote










                                            up vote
                                            0
                                            down vote









                                            I have the following add.. I need to separate out the dns suffix from the hostname.. and I only "know" the servers alias shortname... and want to know what the dns suffix is



                                            #example:
                                            #serveralias: MyAppServer.us.fred.com
                                            #actualhostname: server01.us.fred.com
                                            #I "know": "MyAppServer" .. I pass this on as an env var called myjumpbox .. this could also be $env:computername


                                            $forname = $env:myjumpbox
                                            $fqdn = [System.Net.Dns]::GetHostByName($forname).Hostname
                                            $shortname = $fqdn.split('.')[0]
                                            $domainname = $fqdn -split $fqdn.split('.')[0]+"."
                                            $dnssuf = $domainname[1]
                                            " name parts are- alias: " + $forname + " actual hostname: " + $shortname + " suffix: " + $dnssuf

                                            #returns

                                            name parts are- alias: MyAppServer actual hostname: server01 suffix: us.fred.com





                                            share|improve this answer














                                            I have the following add.. I need to separate out the dns suffix from the hostname.. and I only "know" the servers alias shortname... and want to know what the dns suffix is



                                            #example:
                                            #serveralias: MyAppServer.us.fred.com
                                            #actualhostname: server01.us.fred.com
                                            #I "know": "MyAppServer" .. I pass this on as an env var called myjumpbox .. this could also be $env:computername


                                            $forname = $env:myjumpbox
                                            $fqdn = [System.Net.Dns]::GetHostByName($forname).Hostname
                                            $shortname = $fqdn.split('.')[0]
                                            $domainname = $fqdn -split $fqdn.split('.')[0]+"."
                                            $dnssuf = $domainname[1]
                                            " name parts are- alias: " + $forname + " actual hostname: " + $shortname + " suffix: " + $dnssuf

                                            #returns

                                            name parts are- alias: MyAppServer actual hostname: server01 suffix: us.fred.com






                                            share|improve this answer














                                            share|improve this answer



                                            share|improve this answer








                                            edited Mar 1 at 17:26

























                                            answered Mar 1 at 15:49









                                            CBB

                                            11




                                            11












                                            • this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
                                              – CBB
                                              Mar 1 at 15:51










                                            • Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
                                              – Petter Friberg
                                              Mar 1 at 16:35


















                                            • this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
                                              – CBB
                                              Mar 1 at 15:51










                                            • Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
                                              – Petter Friberg
                                              Mar 1 at 16:35
















                                            this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
                                            – CBB
                                            Mar 1 at 15:51




                                            this works for dns alias as well as "deep" domain names.. eg server01.us.fred.com with C-Name MyAppServer .. you can set $forname to "MyAppServer" and get shortname as well as domain name
                                            – CBB
                                            Mar 1 at 15:51












                                            Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
                                            – Petter Friberg
                                            Mar 1 at 16:35




                                            Consider to delete it while editing and when ready you undelete... like this I'm hovering the dv and flag dialog.
                                            – Petter Friberg
                                            Mar 1 at 16:35










                                            up vote
                                            0
                                            down vote













                                            It can also be retrieved from the registry:



                                            Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetServicesTcpipParameters' 
                                            | % { $_.'NV HostName', $_.'NV Domain' -join '.' }





                                            share|improve this answer



























                                              up vote
                                              0
                                              down vote













                                              It can also be retrieved from the registry:



                                              Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetServicesTcpipParameters' 
                                              | % { $_.'NV HostName', $_.'NV Domain' -join '.' }





                                              share|improve this answer

























                                                up vote
                                                0
                                                down vote










                                                up vote
                                                0
                                                down vote









                                                It can also be retrieved from the registry:



                                                Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetServicesTcpipParameters' 
                                                | % { $_.'NV HostName', $_.'NV Domain' -join '.' }





                                                share|improve this answer














                                                It can also be retrieved from the registry:



                                                Get-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetServicesTcpipParameters' 
                                                | % { $_.'NV HostName', $_.'NV Domain' -join '.' }






                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited Nov 10 at 22:16









                                                marc_s

                                                565k12610921244




                                                565k12610921244










                                                answered Nov 9 at 22:22









                                                Tyler Szabo

                                                5091518




                                                5091518






























                                                     

                                                    draft saved


                                                    draft discarded



















































                                                     


                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function () {
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f12268885%2fpowershell-get-fqdn-hostname%23new-answer', 'question_page');
                                                    }
                                                    );

                                                    Post as a guest















                                                    Required, but never shown





















































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown

































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown







                                                    Popular posts from this blog

                                                    Xamarin.iOS Cant Deploy on Iphone

                                                    Glorious Revolution

                                                    Dulmage-Mendelsohn matrix decomposition in Python