2012-11-28 3 views
3

컴퓨터를 배포 한 후 컴퓨터를 구성하는 데 도움이되도록 작성한 스크립트가 있습니다. 스크립트는 컴퓨터 이름, 사용 가능 비트 록커 등을 설정하는 것과 같은 작업을 수행합니다. 내가 고심하고있는 한 가지는 IP 주소 설정입니다. 내가 사용하고있는 컴퓨터 (특정 서버)에는 4 개의 NIC 포트가 있으며 이름은 로컬 영역 연결 및 로컬 영역 연결 2-4입니다. 문제는 이러한 서버를 배포하는 기술자가 항상 동일한 포트에 연결되는 것은 아니며 배포 이미지가 항상 NIC 포트 1에 이더넷 넷 로컬 영역 연결을 할당하지 않는다는 것입니다.사용중인 이더넷 인터페이스를 확인하는 명령 줄

다음은 복사본입니다 하나의 NIC 포트만 활성화되어 있으면 완벽하게 작동합니다. 내가해야 할 일은 IP 주소가있는 로컬 영역 연결 이름의 출력을 (그 이유는 DHCP가 이미 존재하기 때문에) netsh 명령에 넣을 수있는 변수에 파이프하는 것입니다. 장소

:IPADDRESS 
@echo Would you like static or DHCP? 
@echo press 1 for static 
@echo press 2 for dhcp 
Choice /C:12 /N /M "?:" 
IF ERRORLEVEL 2 GOTO IPDHCP 
IF ERRORLEVEL 1 GOTO IPSTATIC 

:IPSTATIC 
set /P _IPADDR=Please enter IP address: 
set /p _Subnet=Please enter Subnet: 
set /p _DefaultGateway=Please Enter Default Gateway: 

netsh interface ip set address name="Local Area Connection 2" static %_IPADDR% %_Subnet% %_DefaultGateway% 
goto START 

:IPDHCP 
    netsh interface ip set address "Local Area Connection 2" dhcp 
goto START 

:disipaddr 
    netsh interface ip show config name="Local Area Connection 2" 

이름은 "로컬 영역 연결 2"에서

현재 코드 구축 빌드에서 변경하는 부분입니다. 그래서 그것이 제가 격리해야 할 부분입니다. 나는/p와 ipconfig/all 또는 netsh interface ip show config 중 하나를 사용하는 것이 정확한 방법 일 것이라고 상당히 확신한다.

도움을 주셔서 감사합니다.

답변

0

어쩌면 wmic을 사용할 수 있습니까? 의 라인을 따라 뭔가 : 모든 연결 (NetConnectionStatus=2) ETH/802.3 (AdapterTypeID=0) 인터페이스를 반환해야

for /f "tokens=2 delims==" %F in ('wmic nic where "NetConnectionStatus=2 and AdapterTypeId=0" get NetConnectionID /format:list') do set %activeNet%=%F 

- 인스턴스에 연결 한 즉. (어떤 이유로 XP 랩톱에서 WiFi를 802.3으로보고하지만이 문제는 서버에서는 문제가되지 않습니다.)

직접 명령 줄에서 시도해 볼 수 있습니다. 그럴거야. 일괄 처리로 사용하는 경우 %F%%F으로 바꿉니다.

다양한 OS에 따라 연결 인터페이스에 대해 반환되는 값을 확인해야 할 수도 있습니다. Full description of the Win32_NetworkAdapter class은 (whic nic는 별칭입니다)

당신은 100 % 당신이 "로컬 영역 연결"대신 where "netconnectionID like 'Local Area Connection%'"를 사용 (또는 다른 조건과 결합) 할 수

1

로 시작하는 유일한 사람을 확인 하시겠습니까 경우 이 기능은 Windows 7에서 작동하며 테스트됩니다.

@echo off 

for /f "tokens=2 delims==" %%F in ('wmic nic where "NetConnectionStatus=2 and AdapterTypeId=0" get NetConnectionID /format:list') do set interfaceName=%%F 

echo Your Interface is %interfaceName% 

pause 
관련 문제