Windows XP kutusunun tam etki alanı adını bulmanın bir yolu var mı?
Windows ile aşina olmam, aradığım şeyi hostname --fqdn
Linux'taki komutun karşılığı olarak tanımlarım .
Windows XP kutusunun tam etki alanı adını bulmanın bir yolu var mı?
Windows ile aşina olmam, aradığım şeyi hostname --fqdn
Linux'taki komutun karşılığı olarak tanımlarım .
Yanıtlar:
Bunu sistem özelliklerinde bulabilirsiniz ("Bilgisayar adı" sekmesi).
Komut satırı ile IPCONFIG /ALL
"Ana bilgisayar adı" ve "Birincil DNS soneki" alanlarını çalıştırabilir ve inceleyebilirsiniz.
hostname
Pencerelerde komut için böyle bir seçenek yoktur . Ancak, bu hile yapmak gerekir:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
: Yoksa (Windows altında grep edebilir find /I "string"
dan host ve Etki Alanı için) set
veya systeminfo
veya ipconfig -all
adı ve başka bir yerde bir araya tutkal.
Düzenleme: yazım hatası düzeltildi. Teşekkürler Benoit
Güncelleme:
Değişken %USERDNSDOMAIN%
yalnızca bir etki alanına oturum açıldığında kullanılabilir ... Bir DHCP sunucusundan aldığınız DNS soneki, bir ortam değişkenine (tahmin edebileceğim kadarıyla) alınmadı.
wmic computersystem get domain
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
YAZI YUKARI ÇAĞRISI İÇİN DOS BATCH DOSYASI:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause
Bunu komut isteminden deneyin:
FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i
çift kullanmayı unutmayın %
için %i
bir batchfile bu kullanılıyorsa. Örneğin%%i
Bu şekilde yapmak isteyebilirsiniz nedeni: Kullanıcılarınız ve bilgisayarlarınız farklı alanlarda %USERDNSDOMAIN%
ise, bilgisayarınıza uygulandığında doğru olmaz. Yalnızca bir etki alanınız varsa ve alt etki alanınız yoksa, yukarıdaki diğer çözümleri kullanabilirsiniz.
Bu da işe yarayacak ve sistem bilgisinde gecikme olmaz:
/ f "tokens = 2 delims =:" içinde% i ('ipconfig / all ^ | findstr Ara'), SET etki alanını =% i & SET newdomain =% etki alanı: =% & echo% BİLGİSAYAR ADI.%.% newdomain%
Unix kabuk komut dosyalarını pencerelere taşımanız ya da CLI üzerinde çalışmayı seviyorsanız , GNUwin32'ye bir bakın . Windows için kesme, grep, vb. Gibi genel araçları sağlar.
İşte bunun için bir CMD betiği:
@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%