새해가 다가오니 메일 복사할 생각에 깝깝 -_-;;
작년에는 백업 파일을 만들어서 이전 파일을 백업 후 지우는 방식을 썼으나
시간도 오래 걸리고 뭔가 100% 백업되는 완벽한 스크립트는 아니라서
이번에는 기존 메일 파일을 다른 이름으로 복사하고
같은 이름의 새 파일을 만들어서 갈아치울 생각...

그리고 새 파일에 기존 메일 폴더 구조를 복사하면
아마 규칙이 적용되지 않을까 기대중 -ㅅ-

안되면 뭐 컴퓨터 새로 깔았다고 생각하고 일일이 지정해야지 ㅡㅜ
폴더 구조가 복사 되는 것 만으로도 감지 덕지 =)

아웃룩 2007 에서만 테스트 했음.
메일 용량의 압박으로 오피스 2010으로 넘어갈까 생각중 ㅡㅜ

728x90
회사 테스트 PC를 도메인 가입 뒤에 시간이 동기화 기능 때문에
스케쥴링 테스트하는 데 시간이 계속 동기화되서 캐난감 했다능...

시스템 팀에 물어보니 레지스트리로 하는 방법을 알아본다고 한 뒤에 감감 무소식 -_-

도메인 컨트롤러를 테스트할 때만 ip를 막아버려야하나 라고 생각하다가
'Windows Time'이라는 서비스가 아래와 같은 설명이 있다는 것을 기억하고 중단 시켜버렸다는...
'네트워크 상에서 모든 클라이언트 및 서버의 날짜 및 시간 동기화를 유지합니다. ...'

뭔가 종속적인게 많을 지도 모르지만 일단 시간은 동기화 안되는 듯...
너무 행복하다. -_-

728x90
컴퓨터 버벅임이나 네트워크 끊어짐의 원인 중의 하나인 웹하드 그리드 프로세스

* NAT Service 1.5
; Program Files/NAT Service/natsvc.exe 식으로 존재
; sc stop "NATService" 으로 중지
; 프로그램 추가/제거 에서 "NAT Service 1.5" 삭제

* ExpressService.exe
; 사용 - 폴더 플러스
; FolderPlus/ExpressSerivce.exe
; 서비스에서 "ExpressService" 중지
참고 - http://blog.daum.net/jiam7484/12495251

* CloudManager
; 사용 - 폴더 플러스 or Tple( 폴더 플러스는 Tple로 통합됨 )
; Program Files/CloudManager/CloudManager.exe 식으로 존재
; 서비스에서 "CloudManager", "MiniCloudManager" 중지
728x90
드디어 에디트 플러스에 Hex 뷰어가 들어갔네.
Hex 뷰어 때문에 어쩔 수 없이 UltraEdit 나 Hex 툴을 따로 쓰곤 했는데
이젠 EditPlus 하나 만으로 다되는 듯 ㅡㅜ

1 카피 29700원 이지만
100개 구입하면 개당 8800원 수준이니 회사 입장에서는 가격도 적당하고

에디트 플러스 만세!!

체험판 다운로드
728x90
SVN B repository에서 A repository로 통합 작업 하다가...
A repository의 a 디렉토리를 실수로 삭제하고 commit 해버렸는데...
revert가 폴더 단위는 안되네 ㄷㄷㄷ

SVN merge > Merge a range of revisions 선택하고
Revision range to merge에 문제가 되는 revision 바로 쓰고
Reverse merge 체크하고 merge하면
local copy로 변경된 애들이 돌아온다. ㅡㅜ
그걸 commit 하면 된다는...

아 DB 복원 만큼 살 떨렸네 ㅡㅜ
728x90
PowerShell 로 다음과 같은 코드를 실행하면 어떤 값이 나올까?

# 샘플 1
function f1
{
    $a = New-Object System.Collections.ArrayList
    $a.Add(1)
    $a.Add(2)
    return $a
}

$ret = f
$ret.getType().fullname
$ret

ArrayList를 return 했으니 다음과 같이 나올 것이라고 기대했다.

System.Collections.ArrayList
1
2

하지만 실제 나오는 값은 다음과 같다.

System.Object[]
0
1
1
2

알고 보니 powershell 의 return 은 생각하던 것과 다르게 동작하고 있었다.
다음 코드는

return $a

사실 다음과 같이 동작한다는 것

$a
return

그리고 return으로 넘어오는 값은 중간에 output으로 내보낸 값이 다 넘어 오더라는

# 샘플 2
function f2
{
$a = 1
$b = 2
$c = 3
$a
$b
$c
return $c
}

$ret = f2
$ret.getType().fullname
$ret

# 결과
System.Object[]
1
2
3
3

위와 같이 $a, $b, $c, $c 식으로 output으로 나간 결과가 return 되어서 처리되더라능 :(

샘플 1의 문제가 되는 부분은
System.Collections.ArrayList.Add 이 value가 add된 index를 return 해서 문제였다능.

Object 그대로 return 되기를 원한다면 다음과 같이 수정하면 되는 듯

# 샘플 1 수정
function f1
{
    $a = New-Object System.Collections.ArrayList
    [void]$a.Add(1) # ouput 제거
    [void]$a.Add(2) # output 제거
    ,$a # Object 그대로 return 하도록
}

$ret = f
$ret.getType().fullname
$ret

# 결과
System.Collections.ArrayList
1
2

[ 참고 ]

Effective PowerShell Item 7: Understanding "Output"
Effective PowerShell Item 8: Output Cardinality - Scalars, Collections and Empty Sets - Oh My!



728x90
MS SQL Profiler 파일(확장자 trc)을 분석할려고 받았는데
Profiler에서 검색하는 게 한계가 있어서
DB로 바꿀려고 했더니 Profiler에서는 못 찾겠더라능 :(

검색하다가 알게된 fn_trace_gettable
이걸 몇 년 동안 찾고 있었더라니 참...( -_-)

fn_trace_gettable ( filename , number_files )
filename
읽을 초기 추적 파일을 지정합니다. filename은 nvarchar(256)이며 기본값은 없습니다.
number_files
읽을 롤오버 파일의 수를 지정합니다. 이 숫자에는 filename에 지정된 초기 파일이 포함됩니다. number_files는 int입니다.

ex)
USE AdventureWorks;
GO
SELECT * INTO temp_trc
FROM fn_trace_gettable('c:\temp\my_trace.trc', default);
GO

728x90
for /f %%i in ("%0") do set curpath=%%~dpi
cd /d %curpath%

출처 : http://blogs.msdn.com/b/oldnewthing/archive/2005/01/28/362565.aspx

728x90
iconv 로 파일변환하는 스크립트 짜는게 너무 귀찮아서
윈도우 버젼은 없나 싶어서 찾다보니 발견한 프로그램

Simple Text Encoding Converter



설정하고 Start conversion 누르면 ok
파일을 덮어 쓴다고 하니 주의!!
728x90
PowerShell의 기본 실행정책이 Restricted 인 관계로...
다른 사람 컴퓨터에서 스크립트를 실행할 때
ps1 파일을 PowerShell 이랑 연결하고 실행정책을 Unrestricted 로 바꿔주는게 번거롭더라는...

어차피 다른 사람들은 한번 클릭으로 실행되기를 바랄테니...
다음과 같이 배치파일로 파워쉘을 실행하도록 해주는게 맞을 것 같다는...

powershell.exe -ExecutionPolicy Unrestricted -Command "&{.\script.ps1}"

P.S -ExecutionPolicy는 powershell 2.0에 추가된 parameter 인 듯
http://support.microsoft.com/kb/968929 Windows PowerShell 2.0 다운로드
728x90

+ Recent posts