【问题标题】:How do I get the localhost name in PowerShell?如何在 PowerShell 中获取 localhost 名称?
【发布时间】:2010-11-13 06:47:32
【问题描述】:

如何在 PowerShell 中获取 localhost(机器)名称?我正在使用 PowerShell 1.0。

【问题讨论】:

    标签: .net powershell


    【解决方案1】:

    您可以只使用 .NET Framework 方法:

    [System.Net.Dns]::GetHostName()

    还有

    $env:COMPUTERNAME

    【讨论】:

    • 注意:如果您的 DNS 名称超过 15 个字符,[System.Net.Dns]::GetHostName()(不截断)优于 $env:COMPUTERNAME(截断)
    • 在 Windows 10 企业版中,env:COMPUTERNAME 产生了以下错误:env:COMPUTERNAME:术语“env:COMPUTERNAME”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 line:1 char:1 + env:COMPUTERNAME + ~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (env:COMPUTERNAME:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException跨度>
    • @mathisfun $env:COMPUTERNAME 在 Windows 10 上运行良好(请注意开头的美元符号)
    • $env:COMPUTERNAME 不适用于 Linux 和 macOS。但是,[Environment]::MachineName 可以。
    【解决方案2】:

    长格式:

    get-content env:computername
    

    短格式:

    gc env:computername
    

    【讨论】:

    • 超短:$env:COMPUTERNAME
    • 这可以正常工作,直到您的服务器名称超过 15 个字符。
    • @GaryPendlebury 然后会发生什么?
    • @Sajuuk computername 是 NetBIOS 名称,限制为 15 个字符。
    【解决方案3】:

    不要忘记所有旧的控制台实用程序都可以在 PowerShell 中正常工作:

    PS> hostname
    KEITH1
    

    【讨论】:

    • 这是一个很好的答案,但是,如果您想将值保存在变量中,请使用已接受的答案。
    • 可以按如下方式存储值$name = $(hostname)
    【解决方案4】:

    以上所有问题都是正确的,但如果您想要主机名和域名,请尝试以下操作:

     [System.Net.DNS]::GetHostByName('').HostName
    

    【讨论】:

      【解决方案5】:

      对@CPU-100 的回答稍作调整,用于本地 FQDN:

      [System.Net.DNS]::GetHostByName($Null).HostName

      【讨论】:

        【解决方案6】:

        在 PowerShell Core v6 中(适用于 macOS、Linux 和 Windows):

        [Environment]::MachineName
        

        【讨论】:

          【解决方案7】:

          Powershell 中 bat 文件代码的模拟

          命令

          wmic path Win32_ComputerSystem get Name
          

          Powershell

          Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name
          

          和...

          hostname.exe
          

          【讨论】:

            【解决方案8】:

            hostname 在 Powershell 中也可以正常工作

            【讨论】:

              【解决方案9】:

              对我来说最具描述性的方式是:

              [System.Net.DNS]::GetHostByName($env:COMPUTERNAME).HostName
              

              【讨论】:

                【解决方案10】:

                您可以将值存储为$name = $(hostname)

                我想补充一点,简单地执行$name = hostname也会将PC的本地主机名保存到一个变量中。

                【讨论】:

                猜你喜欢
                • 2013-07-16
                • 2022-10-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-11-07
                相关资源
                最近更新 更多