달력

5

« 2024/5 »

  • 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

(그룹 정책) 원격 데스크톱 연결 시 사용되는 인증서 변경
Remote Desktop Terminal VDI RDS CA

1. 인증 기관에 로그온 후 인증 기관 관리 도구 실행
2. 인증서 템플릿 > 우클릭 > 관리 > 컴퓨터 > 템플릿 복제 > Windows Server 2003 Enterprise
3. 템플릿 표시 이름(예: RemoteDesktopComputer) 및 유효 기간/갱신 기간 설정
4. 확장 > 응용 프로그램 정책 > 편집 > 클라이언트 인증 >제거 > 확인 > 적용 > 확인
5. 인증서 템플릿 > 우클릭 > 새로 만들기 > 발급할 인증서 템플릿 > 생성한 인증서 선택 > 확인
6. 그룹 정책 편집기 실행 > 적절한 OU에 링크해 그룹 정책 생성
7. 컴퓨터 구성 > 정책 > 관리 템플릿 > Windows 구성 요소 > 터미널 서비스 > 원격 데스크톱 세션 호스트 > 보안
8. 서버 인증 인증서 템플릿 > 사용 > 인증서 템플릿 이름에 생성한 인증서 이름 입력 > 확인

:
Posted by 커널64
별도의 IIS 웹 서버에 CRL Distribution Point 개시
인증서 해지 목록 해지목록 인증서해지

[웹 서버 가상 디렉터리 설정]
1. 웹 서버에 로그온 후 IIS 관리자 실행 > 가상 디렉터리 추가
2. 별칭 및 실제 경로 입력(예: CRLD, C:\CRLD), Everyone 읽기 권한 추가
3. 구성 편집기 실행 후 상단의 섹션 > system.webServer/security/requestFiltering
4. allowDoubleEscaping 항목을 True로 변경 > 적용
5. 디렉터리 검색 > 사용
6. 실제 경로(예: C:\CRLD)를 공유 설정 후 CA 서버 컴퓨터 계정에 쓰기 권한 추가

[인증 기관의 CRL 파일 배포 지점 설정]
1. CA 서버에 로그온 후 인증 기관 관리도구 실행 > 인증 기관 속성 > 확장
2. CDP(CRL 배포 지점) > 추가 > 다음과 같은 형태로 입력
   file://\\<웹서버 이름>\<공유 이름>\<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl
3. 이 위치로 CRL을 게시, 이 위치로 델타 CRL을 게시 체크
4. 인증 기관 관리 도구 > 해지된 인증서 > 우클릭 > 모든 작업 > 게시 > 새 CRL > 오류 여부 확인

[인증 기관의 CRL 웹 서버 배포 지점 설정]
1. 인증 기관 관리 도구 > 인증 기관 속성 > 확장
2. CDP(CRL 배포 지점) > 추가 > 다음과 같은 형태로 입력
   http://<웹 서버 공인 URL>/<가상 디렉터리>/<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl
3. CRL에 포함. 클라이언트에서 델타 CRL 위치를 찾도록 해줍니다., 발급된 인증서의 CDP 확장에 포함 체크
4. ldap:// 로 시작하는 CRL 배포 지점 삭제 또는 체크 박스 해제
:
Posted by 커널64
터미널 서버(원격 데스크톱 세션 호스트 또는 XenApp 서버)의 Lock Down을 위한 그룹 정책 항목
Remote Desktop RDS XenApp Terminal Services Group Policy GPO

사용자 구성 > 관리 템플릿 > Windows 구성 요소 > Windows 탐색기
- Windows 탐색기의 기본 상황에 맞는 메뉴 사용 안 함: 사용
- 내 컴퓨터에 있는 지정된 드라이브 숨기기: 사용 및 드라이브 지정
- 내 컴퓨터에 있는 드라이브 액세스 금지: 사용 및 드라이브 지정

사용자 구성 > 관리 템플릿 > 시작 메뉴 및 작업 표시줄
- 시작 메뉴에서 문서 아이콘 제거: 사용
- 설정 메뉴에 있는 프로그램 제거: 사용
- 시작 메뉴에서 네트워크 연결 제거: 사용
- 시작 메뉴에서 검색 링크 제거: 사용
- 시작 메뉴에서 도움말 메뉴 제거: 사용
- 시작 메뉴에서 실행 메뉴 제거: 사용
- 시작 메뉴에 로그오프 추가: 사용
- 시스템 종료, 다시 시작, 절전 모드 및 최대 절전 모드 명령 제거 및 액세스 방지: 사용
- 작업 표시줄 및 시작 메뉴 설정을 변경할 수 없음: 사용
- 작업 표시줄의 상황에 맞는 메뉴 사용 안 함: 사용

사용자 구성 > 관리 템플릿 > 바탕 화면
- 바탕 화면에 있는 모든 항목 숨기기 및 사용 안 함: 사용
- 바탕 화면에서 내 문서 아이곤 제거: 사용
- 바탕 화면에서 휴지통 아이콘 제거: 사용
- [문서] 아이콘의 상황에 맞는 메뉴에서 [속성]을 제거합니다.: 사용
- 바탕 화면의 네트워크 위치 아이콘 숨기기: 사용
- 바탕 화면에 있는 Internet Explorer 아이콘 숨기기: 사용

사용자 구성 > 관리 템플릿 > 제어판
- 제어판의 액세스 금지: 사용

사용자 구성 > 관리 템플릿 > 제어판 > 프린터
- 네트워크에서 프린터 찾아보기: 사용
- 프린터 추가 사용 안 함: 사용

사용자 구성 > 관리 템플릿 > 시스템 > 사용자 프로필
- 공유의 루트에 홈 디렉터리 연결: 사용
:
Posted by 커널64
터미널 서버의 명령줄로 로그온 세션 쿼리 및 로그 오프 방법
Remote Desktop 원격 데스크톱 RDS XenApp

로그온되어 있는 세션 쿼리
QUser 또는
QUser /SERVER:<Server Name>

세션 로그 오프
Logoff <Session ID> 또는
Logoff <Session ID> /SERVER:<Server Name>
:
Posted by 커널64

원격 데스크톱 웹 엑세스 페이지 제목 문자열 수정
RDWeb RDS Remote Desktop Service

- 전체 페이지의 큰제목 수정
C:\Windows\Web\RDWeb\App_Data\RDWebAccess.Config 파일의
<WorkspaceSettings Name=""여기 수정"

- RemoteApp 프로그램 페이지의 소제목 수정
C:\Windows\Web\RDWeb\Pages\ko-KR\Default.aspx 파일의
const string L_ApplicationName_Text = "여기 수정"

- 원격 데스크톱 페이지의 소제목 수정
C:\Windows\Web\RDWeb\Pages\ko-KR\Desktops.aspx 파일의
const string L_ApplicationName_Text = "여기 수정"

- 구성 페이지의 소제목 수정
C:\Windows\Web\RDWeb\Pages\ko-KR\Config.aspx 파일의
const string L_ApplicationName_Text = "여기 수정"

:
Posted by 커널64
2011. 8. 11. 09:08

아키텍처 별 최대 대역폭 및 RAID 레벨 비교 Etc.2011. 8. 11. 09:08

아키텍처 별 최대 대역폭 및 RAID 레벨 비교
RAID RAID10 RAID01 RAID1+0 RAID0+1 RAID5 RAID50 RAID05 RAID5+0 RAID0+5

아키텍처 별 최대 대역폭
아키텍처 최대 대역폭(이론상의 최대 MB/sec)
iSCSI (GB Ethernet) 125 MB/s
Fibre Channel (2 GFC) 212.5 MB/s
SATA (SATA II) 300 MB/s
SCSI (U320) 320 MB/s
SAS 375 MB/s
Fibre Channel (4 GFC) 425 MB/s
Fibre Channel (8 GFC) 850 MB/s
iSCSI (10 GB Ethernet) 1250 MB/s


RAID 레벨(구성) 별 비교, 디스크 용량, 디스크 구성, 읽기 쓰기 성능 등
http://www.pcguide.com/ref/hdd/perf/raid/levels/comp-c.html
:
Posted by 커널64

스크립트로 단일 임계값 비교가 아닌 다수의 임계값 비교가 필요한 경우 VBS VBScript
파일로 이전 수집 값을 기록했다가 샘플링 횟수와 임계치 비교
예를 들면, 5회 수집 후 5회 연속 임계값 초과 시 등등

' 파라미터로 비교 횟수, 임계값 제공
Set oArgs = WScript.Arguments
MonCount = oArgs(0)
Threshold = oArgs(1)

' 로그 파일 위치
strLogFile = "C:\TEST.Log"

Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strLogFile) Then
Else Set objTextFile = objFSO.CreateTextFile(strLogFile)
End If


' 값 가져오는 로직 추가
' CurTemp = XXXX


On Error Resume Next
Set objTextFile = objFSO.OpenTextFile(strLogFile, ForReading)
FirstLine = objTextFile.ReadLine & CurTemp & "|"
If Err.Number <> 0 Then
FirstLine = CurTemp & "|"
End If
arrTemp = Split(FirstLine,"|")

If cInt(UBound(arrTemp)) > cInt(MonCount) Then
FirstLine = ""
For i=0 To MonCount-2
arrTemp(i) = arrTemp(i+1)
FirstLine = FirstLine & arrTemp(i) & "|"
Next
FirstLine = FirstLine & CurTemp & "|"
End If
Set objTextFile = objFSO.OpenTextFile(strLogFile, ForWriting)
objTextFile.Write(FirstLine)
objTextFile.Close
Set objFSO = Nothing

' 임계치 비교
arrTemp = Split(FirstLine,"|")
OverCount = 0
For i =0 To Ubound(arrTemp)-1
If cInt(arrTemp(i)) > cInt(Threshold) Then
OverCount = OverCount + 1
End If
Next

If cInt(OverCount) > 0 Then
WScript.Echo "샘플링 수: "& MonCount & ", 초과 수: " & OverCount
Else WScript.Echo "임계값 초과 안 함"
End If

:
Posted by 커널64
2011. 6. 14. 20:38

[VBS] VBS를 통한 MySQL 쿼리 Etc.2011. 6. 14. 20:38

VBS VBScript MySQL
VBS를 통한 MySQL 쿼리, 이전에 먼저 MySQL ODBC Connector를 설치하여야 한다.
http://www.mysql.com/downloads/connector/odbc/

USER = "root"
PASSWORD = "Password"
SQLQUERY = "Show Variables"

ConnString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;USER="&USER&";PASSWORD="&PASSWORD
Set Connection = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.Recordset")
Connection.Open ConnString
Recordset.Open SQLQUERY,Connection

If Recordset.EOF Then
WScript.Echo "No rows returned."
WScript.Quit
Else
Do While NOT Recordset.EOF
WScript.Echo Recordset(0), Recordset(1)
Recordset.MoveNext
Loop
End If

Recordset.Close
Set Recordset=nothing
Connection.Close
Set Connection=nothing

:
Posted by 커널64

VBS VBScript EventLog EventID
Security Event Log를 이벤트 ID로 필터링해 원격 서버에 저장하고 로컬 서버에는 전체 이벤트 로그를 Export해 저장한다. 저장이 끝난 후 이벤트 로그를 비운다.

' ------------------------------------------------------------------
' ------------------------------------------------------------------
' --------- Filtering by Event ID (Comma Separated)
EventID = "528,529,540,4624,4625"

' --------- Local Store
LocalDir = "C:\SecurityEvent"

' --------- Destination
ServerShare = \\123.123.123.123\FileShare
UserName = "Domain\User"
Password = "Password"
' ------------------------------------------------------------------
' ------------------------------------------------------------------


' --------- Start Script
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Security)}!\\.\root\cimv2")
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set NetworkObject = CreateObject("WScript.Network")
If  Not FileSystem.FolderExists(LocalDir) Then
Createfolder = FileSystem.CreateFolder (LocalDir)
End If

EventIDFilter = ""
arrEventID = Split(EventID,",")
For Each EventID in arrEventID
EventIDFilter = EventIDFilter & "EventCode=" & Trim(EventID) & " OR "
Next
EventIDFilter = Left(EventIDFilter,Len(EventIDFilter)-4)

If Right(LocalDir,1) <> "\" Then
LocalDir = LocalDir & "\"
End If
If Right(ServerShare,1) <> "\" Then
ServerShare = ServerShare & "\"
End If

Set colOS = objWMIService.ExecQuery ("Select * From Win32_OperatingSystem")
For Each OSInfo in colOS
HostName = OSInfo.CSName
Next
Set colOS = Nothing
LogFileName = HostName & "-" & Year(Date) & Month(Date) & Day(Date) & "-" & "SecurityLog.csv"
LogFileFullPath = LocalDir & LogFileName

NetworkObject.MapNetworkDrive "", Left(ServerShare,Len(ServerShare)-1), False, UserName, Password
Set colLoggedEvents = objWMIService.ExecQuery ("Select * From Win32_NTLogEvent Where Logfile = 'Security' AND (" & EventIDFilter & ")")
Set oFile = FileSystem.CreateTextFile(LogFileFullPath, True)

oFile.WriteLine ("EventType,EventID,Date,Time,Description")
For Each objEvent in colLoggedEvents
strDateTime = DateAdd("h",9,WMIDateStringToDate(objEvent.TimeGenerated))
strDate = FormatDateTime(strDateTime,2)
strTime = FormatDateTime(strDateTime,3)
strDescription = ""
arrDescription = Split(objEvent.Message,vbCRLF)
For Each objDescription in arrDescription
If InStr(objDescription,"계정 이름:") OR InStr(objDescription,"로그온 유형:") OR InStr(objDescription,"워크스테이션 이름:") OR InStr(objDescription,"원본 네트워크 주소:") _
OR InStr(objDescription,"User Name:") OR InStr(objDescription,"Account Name:") OR InStr(objDescription,"Logon Type:") OR InStr(objDescription,"Workstation Name:") OR InStr(objDescription,"Source Network Address:") Then
strDescription = strDescription & Replace(objDescription,vbTab,"") & " "
End If
Next
oFile.WriteLine (objEvent.Type&","&objEvent.EventCode&","&strDate&","&strTime&","&strDescription)
Next

oFile.Close
Set colLoggedEvents = Nothing
If (FileSystem.FileExists(ServerShare & LogFileName)) Then
Set aFile = FileSystem.GetFile(ServerShare & LogFileName)
aFile.Delete
End If
FileSystem.MoveFile LogFileFullPath, ServerShare & LogFileName
NetworkObject.RemoveNetworkDrive Left(ServerShare,Len(ServerShare)-1), True, False

If (FileSystem.FileExists(LocalDir & HostName & "-" & Year(Date) & Month(Date) & Day(Date) & "-" & "SecurityLog.evt")) Then
Set bFile = FileSystem.GetFile(LocalDir & HostName & "-" & Year(Date) & Month(Date) & Day(Date) & "-" & "SecurityLog.evt")
bFile.Delete
End If
Set objWMIService2 = GetObject("winmgmts:{impersonationLevel=impersonate,(Backup)}!\\.\root\cimv2")
Set colLogFiles = objWMIService2.ExecQuery("Select * from Win32_NTEventLogFile Where LogFileName='Security'")
For Each objLogfile in colLogFiles
objLogFile.BackupEventLog(LocalDir & HostName & "-" & Year(Date) & Month(Date) & Day(Date) & "-" & "SecurityLog.evt")
objLogFile.ClearEventLog()
Next

Set colLogFiles = Nothing
Set objWMIService = Nothing
Set objWMIService2 = Nothing
Set NetworkObject = Nothing
Set FileSystem  = Nothing

Function WMIDateStringToDate(dtmInstallDate)
WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) & " " & Mid (dtmInstallDate, 9, 2) & ":" &Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, 13, 2))
End Function

:
Posted by 커널64
2011. 4. 4. 16:22

SCOM DW DB에서 성능 집계 데이터 쿼리 Etc.2011. 4. 4. 16:22

SCOM DW DB에서 성능 집계 데이터 쿼리

Select   
dbo.vManagedEntity.Path as [Name],     
MAX(Round(MinValue,2)) as [Minimum],     
MAX(Round(AverageValue,2)) as [Average],     
MAX(Round(MaxValue,2)) as [Maximum],     
Convert(Char(10),DateAdd(hh,9,DateTime),120) as [Date]     
from Perf.vPerfDaily     
Join dbo.vPerformanceRuleInstance on dbo.vPerformanceRuleInstance.PerformanceRuleInstanceRowId = Perf.vPerfDaily.PerformanceRuleInstanceRowId     
Join dbo.vPerformanceRule on dbo.vPerformanceRule.RuleRowId = dbo.vPerformanceRuleInstance.RuleRowId     
Join dbo.vManagedEntity on dbo.vManagedEntity.ManagedEntityRowId = Perf.vPerfDaily.ManagedEntityRowId     
Where dbo.vPerformanceRule.ObjectName = 'Processor'     
AND dbo.vPerformanceRule.CounterName = '% ProcessoR Time' 
AND dbo.vPerformanceRuleInstance.InstanceName = '_Total' 
AND dbo.vManagedEntity.Path <> 'NULL' 
Group By dbo.vManagedEntity.Path, Perf.vPerfDaily.DateTime

:
Posted by 커널64