• remote windows OS 노드들을 psexec로 ns1, ns2 수정하기
  • 접근 가능 네트웍 대역과 수정 권한이 있는 계정 사용을 전제로 함 (Update: Jun 26, 2021)

환경 구성

  • OS: Windows Server 2012
  • Service: psexec (v2.11)

1. 실행 조건과 테스트

; 원격지 서버의 수정할 이더넷 장치의 이름을 알고 있어야 한다
; 이더넷 장치의 이름이 ‘nic1’ 이란 이름으로 되어 있을 경우로 진행

$ psexec -v

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\> type edit-nsinfo.bat
:: nic1 이름의 이더넷 장치의 ns1, ns2 값 지우고 다시 넣기
psexec \\DestHostname -u 도메인명\계정명 -p 계정암호 -h netsh interface ip delete dnsservers name="nic1" all no
psexec \\DestHostname -u 도메인명\계정명 -p 계정암호 -h netsh interface ip add dnsservers name="nic1" address=192.168.1.11 index=1 no
psexec \\DestHostname -u 도메인명\계정명 -p 계정암호 -h netsh interface ip add dnsservers name="nic1" address=192.168.1.12 index=2 no

2. 원격지 노드들의 반복 수정

; 대상이 많을 경우 반복해서 실행하는 예

c:\> type edit-nsinfo-all.bat
@echo off

for /f "tokens=1 delims=" %%a in ('type hosts.txt') do (
echo "ns1,ns2 delete %%a" >> ./log.txt & psexec \\%%a -u 도메인명\계정명 -p 계정암호 -h netsh interface ip delete dnsservers name="nic1" all no >> ./log.txt

echo "ns1 add %%a" >> ./log.txt & psexec \\%%a -u 도메인명\ 계정명 -p 계정암호 -h netsh interface ip add dnsservers name="nic1" address=192.168.1.11 index=1 no >> ./log.txt

echo "ns2 add %%a" >> ./log.txt & psexec \\%%a -u 도메인명\ 계정명 -p 계정암호 -h netsh interface ip add dnsservers name="nic1" address=192.168.1.12 index=2 no >> ./log.txt
echo "-----------------------------------------" >> ./log.txt
)

c:\> type hosts.txt
test01
Test02
MSDB03

3. 참고 사항

; 반복 수정 대상이 많을 경우 실행 중 멈추거나 느려질 수 있어 로그 확인 필요
; 기존 ns정보 삭제가 아닌 업데이트의 경우 ns1 값만 수정되어 모두 삭제 후 재 입력으로 진행
; 대량 작업시 psexec 보다 powershell 작성, 실행을 권장