Setara dengan perintah Linux `hostname --fqdn` di Windows XP?


33

Apakah ada cara untuk menemukan nama domain yang sepenuhnya memenuhi syarat dari kotak Windows XP?

Menjadi tidak terbiasa dengan Windows saya akan menggambarkan apa yang saya cari sebagai setara dengan perintah yang hostname --fqdntersedia di Linux.

Jawaban:


18

Anda dapat menemukannya di properti sistem (tab "Nama komputer").

Dengan baris perintah, Anda bisa menjalankan IPCONFIG /ALLdan melihat bidang "Nama host" dan "Akhiran DNS primer".


Dua cara yang berbeda memberikan hasil yang berbeda. ipconfig memberikan apa yang saya harapkan, tetapi di tab 'Computer Name', domainnya berbeda. Itu terlihat seperti nama Workgroup daripada akhiran domain. Apakah ini hal khusus Windows yang setara?
Grundlefleck

Di tab "Nama komputer", Anda harus melihat nilai "Nama komputer lengkap"; nilai "domain" adalah domain Windows (atau kelompok kerja) yang menjadi anggota komputer.
Massimo

Ah benar. Yah pasti ada yang salah dengan instal di mesin ini, karena hanya menunjukkan nama host (dengan titik di akhir). Mungkin tidak perlu mengajukan pertanyaan jika telah menunjukkannya seperti yang diharapkan :-D. +1
Grundlefleck

Sudahkah Anda mencoba mengklik "Ubah" dan kemudian "Lainnya"?
Massimo

1
Hanya ingat beberapa sistem terlokalisasi sehingga mencari garis yang tepat oleh nr mungkin lebih baik dalam beberapa kasus (ini garis 5 afaik).
RnR

28

Tidak ada opsi seperti itu untuk hostnameperintah di windows. Namun, ini harus dilakukan:

echo %COMPUTERNAME%.%USERDNSDOMAIN%

Atau Anda dapat grep (di Windows find /I "string":) untuk Host- dan Domain dari setatau systeminfoatau memberi ipconfig -allnama dan merekatkannya di tempat lain.

Edit: tetap salah ketik. Benoit terima kasih

Pembaruan: Variabel %USERDNSDOMAIN%ini hanya tersedia ketika masuk ke domain ... Akhiran DNS yang Anda dapatkan dari server DHCP tidak dimasukkan ke dalam variabel lingkungan (sejauh yang saya tahu).


1
Variabel kedua adalah "% USERDNSDOMAIN%".
Benoit

% USERDNSDOMAIN% tampaknya tidak menjadi variabel pada sistem ini. Kecuali jika saya melakukan sesuatu yang salah: H: \> echo% COMPUTERNAME%.% USERDNSDOMAIN% [koreksi nama].% USERDNSDOMAIN%
Grundlefleck

Ach, lupa bahwa menempelkan itu akan mengerikan dalam komentar.
Grundlefleck

2
Anda dapat menggunakan WMIC untuk mengambil nama domain:wmic computersystem get domain
Noam Manos


1

vbscript:

' Print FQDN in lower case letters
' Volker Fröhlich (2011)

option explicit
dim Message
dim output
dim WshShell, objEnv
dim mydomain

' Read value from registry
function readFromRegistry (strRegistryKey, strDefault )
    Dim WSHShell, value

    On Error Resume Next
    Set WSHShell = CreateObject("WScript.Shell")
    value = WSHShell.RegRead( strRegistryKey )

    if err.number <> 0 then
        readFromRegistry= strDefault
    else
        readFromRegistry=value
    end if

    set WSHShell = nothing
end function

mydomain = readfromRegistry("HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Domain", "asdf")

' Get the WshShell object
Set WshShell = CreateObject("WScript.Shell")

' Get collection by using the Environment property
Set objEnv = WshShell.Environment("Process")

if (mydomain="") then
Message = LCase(objEnv("COMPUTERNAME"))
else
Message = LCase(objEnv("COMPUTERNAME")) & "." & mydomain
end if

' Write to stdout
set output = wscript.stdout
output.writeline Message

FILE BATCH DOS UNTUK MEMANGGIL DI ATAS SCRIPT:

for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause

1

Coba ini dari command prompt:

FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i

ingatlah untuk menggunakan double %karena %ijika menggunakan ini dalam batchfile. misalnya%%i

Alasan Anda mungkin ingin melakukannya dengan cara ini adalah: jika pengguna dan komputer Anda berada di domain yang berbeda, %USERDNSDOMAIN%itu tidak akan benar ketika diterapkan ke komputer Anda. Jika Anda hanya memiliki satu domain dan tidak ada domain anak, maka Anda dapat menggunakan solusi lain di atas jika Anda mau.


1

Ini juga akan berfungsi dan tidak memiliki penundaan systeminfo:

untuk / f "token = 2 delims =:"% i in ('ipconfig / all ^ | findstr Search') lakukan SET domain =% i & SET newdomain =% domain: =% & echo% COMPUTERNAME%.% newdomain%


1
Gunakan empat spasi utama untuk memformat jawaban Anda sebagai 'kode'. Tautan 'bantuan' yang ada di mana-mana sebenarnya membantu.
Xalorous

0

Jika Anda perlu melakukan porting skrip Unix ke windows atau hanya ingin bekerja pada CLI, lihatlah GNUwin32 . Ini menyediakan alat-alat umum seperti cut, grep, dll untuk Windows.


0

Berikut ini adalah skrip CMD untuk ini:

@ECHO OFF

FOR /f "tokens=2,* delims= " %%a in ('IPCONFIG ^/ALL ^| FINDSTR "Primary Dns"') do set tempsuffix=%%b
FOR /f "tokens=1,2 delims=:" %%a in ('echo %tempsuffix%') do set dnssuffix=%%b
SET FQDN=%COMPUTERNAME%.%DNSSUFFIX:~1%

ECHO Server FQDN: %FQDN%

0

Versi lain:

echo.
echo Getting FQDN...
FOR /F "tokens=1-2" %%A in ('ping -a localhost -n 1') do (
    echo %%A | find /i "Pinging" >nul
    IF NOT ERRORLEVEL 1 SET "FQDN=%%B"
)
echo %FQDN%
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.