달력

1

« 2025/1 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2009. 7. 13. 14:16

SPF 레코드 등록 방법 (Sender ID, SPF Record) Etc.2009. 7. 13. 14:16

1. DNS Management 를 열어서 추가할 도메인 선택 후 우클릭 -> 다른 새 레코드
2. 레코드 종류를 텍스트 형식으로 선택
3. 아래와 같은 형식으로 입력한다. (~와 -에 따라 처리 방법 다름)
domain.com.  IN  TXT  "v=spf1 ip4:1.1.1.1 ip4:2.2.2.2 ip4:3.3.3.3 -all"
===> 보내는 메일 서버가 일치하지 않는 경우 -> 수신 거부

domain.com.  IN  TXT  "v=spf1 ip4:1.1.1.1 ip4:2.2.2.2 ip4:3.3.3.3 ~all"
===> 보내는 메일 서버가 일치하지 않는 경우 -> 받는 서버 정책에 따라 처리

4. 하루 정도 지난 후에 DNS 적용된 것이 확인되면 화이트 도메인 등록 요청
5. DNS 적용 여부 확인은 Command 창에서
nslookup -> set q=txt -> domain.com

:
Posted by 커널64

Exchange에서는 메시지 크기 제한 설정을 하는 부분이 3군데이다.
1. 사용자별 설정
2. Transport Config 설정
3. 송신 커넥터와 수신 커넥터에서 설정

기본적으로 새 계정을 만들게 되면 제한 설정은 제한 없는 상태이다.
그리고, Transport Config도 없는 상태이다.

세번째, 커넥터 쪽이 문제이다.
기본적으로 커넥터를 만들게 되면 기본 값이 10MB가 된다. (송수신 각각 10MB)
GUI 로 는 확인이 불가능하고, 수정 또한 불가능 하므로 Shell을 사용해야 한다.

Shell에서 아래와 같이 입력을 해 보면 현재 설정 값을 알 수 있다.
Get-SendConnector | Select identity, Maxmessagesize
Get-ReceiveConnector | Select identity, Maxmessagesize

10MB로 제한되어 있는 것이 확인된다면 아래와 같이 입력하여 설정값을 수정한다.

Set-SendConnector "커넥터 이름" -MaxMessageSize 용량
예)  Set-SendConnector "Connector Name" -MaxMessageSize 50MB

Set-ReceiveConnector "커넥터 이름" -MaxMessageSize 용량
예) Set-SendConnector "Connector Name" -MaxMessageSize 50MB

Edge 서버가 있을 경우 Edge 서버에서도 설정해 주어야 한다.

http://technet.microsoft.com/ko-kr/library/bb124345.aspx

:
Posted by 커널64
2009. 7. 13. 14:10

NDR 언어 변경 (Exchange 2003) Collaboration2009. 7. 13. 14:10

=== Change NDR language ===
1. Stop SMTP service
2. Start -> Run -> cmd -> input following command
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set smtpsvc/smtpdsnlanguageid 1033
3. Start SMTP service
 
=== Languageid ===
English (United States) 1033
Japanese 1041
Chinese (PRC) 2052
Korean 1042
Hungary 1038
Albanian 1052
Croatian 1050
Bulgarian 1026
Russian 1049
German (Germany) 1031
Italian (Italy) 1040
Swahili 1089
 
참고 사이트
http://support.microsoft.com/kb/286292/
:
Posted by 커널64

perfmon 결과 값에서 아래 값이 점차적으로 증가하면 메모리 누수 의심
Memory\Pool Nonpaged Bytes
Memory\Pool Paged Bytes

!vm 1 - 메모리 사용량 표시 -> Free System PTEs가 부족하지 않은지 확인
!sysptes - Total System PTE 확인 -> Total System Ptes와 Total free를 확인해 부족 여부 확인
!sysptes 4 - 모듈별로 사용한 PTE 표시

gflag를 이용해서 pooltagging Enable (2003은 Default로 enable)
pool usage - Pool 사용량 표시
!poolused - Module별로 Pool 사용량 표시
!poolused 2 - nonpage pool로 정렬 -> 메모리 많이 먹는 놈의 Pool Tag 확인

Pool Tag가 확인되었다면 어떤 드라이버가 사용하는지 확인
1. CMD 창에서는
C:\WINDOWS\system32\drivers 로 이동해서
findstr.exe /m /i <Tag Name> *.* - 해당 sys 파일이 확인된다

2. Windbg 에서는
!for_each_module s-a @#Base @#End "<Tag Name>" - 해당 Tag를 사용하는 메모리 주소가 확인된다
lm <Memory Address> - 메모리 주소에 Mapping되어 있는 파일이 확인된다.

:
Posted by 커널64
2009. 6. 29. 17:49

오래된 파일 삭제 VBS (VB Script) Etc.2009. 6. 29. 17:49

strFolder = "C:\TEMP"
strExtensionUp = "TXT"
strExtensionLo = "txt"
DateDiffer = -30

Set dateTime = CreateObject("WbemScripting.SWbemDateTime")

Dim strFileName(), strFileCre(), Differ(), DelList()
strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objItem in colItems
dateTime.Value = objItem.LocalDateTime
strToday = dateTime.GetVarDate
Next

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colFileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='" & strFolder & "'} Where " _
        & "ResultClass = CIM_DataFile")

ReDim Preserve strFileName(colFileList.count), strFileCre(colFileList.count), Differ(colFileList.count), DelList(colFileList.count)

n = 0
d = 0
For Each objFile In colFileList
If objFile.Extension = strExtensionUp or objFile.Extension = strExtensionLo Then
strFileName(n) = objFile.Name
dateTime.Value = objFile.CreationDate
strFileCre(n) = dateTime.GetVarDate
Differ(n) = DateDiff ("D", strToday, strFileCre(n))
If Differ(n) < DateDiffer Then
DelList(d) = strFileName(n)
d = d + 1
End If
n = n + 1
End If
Next

strMessage = DateDiffer & "일 보다 오래된 다음 백업 파일들을 삭제합니다." & vbCrLf & vbCrLf
For i = 0 to d
strMessage = strMessage & DelList(i) & vbCrLf
Next

If d = 0 Then WScript.Quit

set objWSHShell = Wscript.CreateObject("Wscript.Shell")
WriteEvent = objWSHShell.LogEvent(4, strMessage, strComputer)

For i = 0 to d-1
strFilePath = DelList(i)
reFile = Replace(strFilePath,"\","\\")
set objFile = GetObject("winmgmts:\\"& strComputer & "\root\cimv2:CIM_Datafile.Name='" & reFile & "'")
objFile.Delete
Next

:
Posted by 커널64

[증상]
Windows 2000을 SCVMM으로 P2V 진행 후 SCVMM 관리 콘솔에서 확인 시 CPU 사용량이 매우 높고(90% 가량) 시스템의 성능이 잘 나오지 않는 경우

[원인]
원본 머신이 다중 프로세서를 가지는 Windows 2000 이었던 경우 시스템 종류가  'ACPI 다중 프로세서 PC'인데 P2V 수행 후 가상화된 상황에서는 CPU를 하나만 지원하게 되나 여전히 시스템 종류가 'ACPI 다중 프로세서 PC'로 되어 있기 때문이다.

[해결]
시스템 종류를 'ACPI 단일 프로세서 PC'로 변경한다.

:
Posted by 커널64

SQL Server 2005 Clustering on Windows Server 2003

1. 클러스터 서비스를 위한 도메인 계정 생성
2. 네트워크 설정
2-1. Public 및 Private IP 주소 할당
2-2. 네트워크 바인딩 순서를 Public을 우선으로 설정
2-3. 인터넷 프로토콜(TCP/IP)를 제외한 모든 구성 요소 체크 해제
2-4. Private 네트워크의 NetBIOS over TCP/IP 기능 해제
2-5. DNS 동적 업데이트 기능 해제
3. 첫 번째 노드에 클러스터 디스크 할당
(ex. 쿼럼(512MB:Q), SQL 데이터(20GB:S), MSDTC(512MB:M))
4. 첫 번째 노드 시스템 종료 후 두 번째 노드에 동일하게 구성
4-1. 드라이브 문자 및 경로 변경
5. 첫 번째 노드 전원 On
6. 각 노드에 DTC, COM+ 설치
(응용 프로그램 서버 > 네트워크 COM+ 액세스 사용, 네트워크 DTC 액세스 사용)
7. 클러스터 생성 (Cluadmin)
7-1. 첫 번째 노드 입력
7-2. 클러스터 IP 입력
7-3. 클러스터 서비스 계정 입력
7-4. 쿼럼 디스크(Q) 설정
7-5. 두 번째 노드 추가
8. 클러스터 네트워크 설정
8-1. Private 네트워크를 '내부 클러스터 통신에만 사용' 설정
8-2. 클러스터 속성 > 네트워크 우선 순위 > Private 우선
9. MSDTC 설정
9-1. MSDTC 그룹 > 새로 만들기 > 리소스 > MSDTC IP 주소, 리소스 종류: IP 주소
9-2. IP 입력, 네트워크: Public
9-3. MSDTC 그룹 > 새로 만들기 > 리소스 > MSDTC 네트워크 이름, 리소스 종류: 네트워크 이름
9-4. MSDTC IP 주소 종속성 추가
9-5. 네트워크 이름 입력, DNS 등록 필수 체크
9-6. MSDTC 그룹 > 새로 만들기 > 리소스 > MSDTC, 리소스 종류: 분산 트랜잭션 코디네이터
9-7. 디스크(M), MSDTC 네트워크 이름 종속성 추가
9-8. 구성 요소 서비스 콘솔 실행(DCOMCNFG)
9-9. 내 컴퓨터 > 속성 > MSDTC > 보안 구성 > 네트워크 DTC 액세스, 원격 클라이언트 허용, 원격 관리 허용, 인바운드 허용, 아웃바운드 허용, 인증 필요 없음, XA 트랜잭션 사용
10. MSDTC 그룹 이동 테스트
11. SQL Server 2005 설치
11-1. SQL Server Database Services, Create a SQL Server failover cluster 체크
11-2. Workstation components, Books Online.... 은 각 노드별로 설치 필요
11-3. 가상 서버 이름 입력,  IP 주소 입력
11-4. SQL 클러스터 그룹 선택
11-5. 두 번째 노드 추가
11-6. 설치 경로 입력, 클러스터 계정 입력, 도메인 그룹 입력
11-7. 설치 진행
12. 서비스팩, 업데이트 롤업 등은 한 노드에만 설치하면 양 노드에 모두 적용됨

:
Posted by 커널64

Task Scheduler를 이용해 VMWare와 비슷한 기능을 구현해보세~!
1. VM 종료
2. 메모리 크기/CPU 개수 수정
   (밤 시간 대에 특정 작업에 리소스를 더 준다던지...)
3. VM 이동
   (리소스 적은 서버로 몰고...)
4. VM 가동

머... 중간 중간에 제대로 넘어 갔는지... 혹시 넘어가다 실패했는지..에 대해 체크하는 부분이
더 필요하겠지만 괜찮은(?) 시도인 듯...

Powershell 실행
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft System Center Virtual Machine Manager 2008\bin\cli.psc1" -NoExit -Command <Script File Full Path>

###Script###
$VMMServer = Get-VMMServer -ComputerName <VMM Server Name>
$VMHost = Get-VMHost -ComputerName <Destination Hyper-V Host Name>
$VM = Get-VM -Name <VM Name>
Shutdown-VM -VM $VM
Set-VM -VM $VM -MemoryMB <Memory Size(MB)>
Move-VM -VMHost $VMHost -VM $VM
Start-VM -VM $VM
EXIT

:
Posted by 커널64
2009. 6. 22. 16:30

서버 이름 쿼리 VBS Etc.2009. 6. 22. 16:30

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem In colItems
WScript.Echo "ServerName: " & objItem.CSName
Next
Set colItems = NOTHING
:
Posted by 커널64
2009. 6. 22. 16:28

원격 포트 접속 확인 VBS (Script) Etc.2009. 6. 22. 16:28

strMessage = ""

set shellobj=WScript.CreateObject("WScript.Shell")

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile (".\RUNNETSTAT.BAT", 8, True)

objTextFile.WriteLine("netstat -an | findstr " & Chr(34) & "168.126.63.1:53" & Chr(34) & " | findstr " & Chr(34) & "EST" & Chr(34))
objTextFile.Close
set objTextFile = nothing

set execObj=shellobj.Exec(".\RUNNETSTAT.BAT")
OutData=execObj.StdOut.ReadAll()
val=execObj.StdOut.Line - 3

Set aFile = objFSO.GetFile(".\RUNNETSTAT.BAT")
aFile.Delete
Set aFile = nothing

If val = 0 Then
strMsg = MsgBox("Port Error!!",16,"Caution")
End If

set OutData = nothing
set execObj = nothing
set shellobj = nothing

:
Posted by 커널64