윈도우 서비스를 SYSTEM 계정으로 돌리는데 설정을 위해 응답이 필요하다면 골치 아파진다.

관리자 권한이 필요하면 메뉴에서 '관리자 권한으로 실행'을 선택하거나 runas 를 통해 할 수 있는데 SYSTEM 계정은 애매하다.

검색해보니 PsExec 를 이용하면 SYSTEM 계정으로 프로그램을 실행할 수 있었다. 

마소 홈페이지에서 PsExec 가 포함된 PsTools 를 다운받자. 링크 

 

PsExec - Windows Sysinternals

Execute processes on remote systems.

docs.microsoft.com

 

다운받은 파일을 적절한 곳에 압축을 풀자.

관리자 권한으로 명령 프롬프트(cmd.exe) 를 실행하자.

PSTools 압축을 푼 폴더에서 아래와 같이 PSExec 를 실행하면 SYSTEM 계정의 명령창을 볼 수 있다. 

> psexec -i -s -d cmd

각 옵션은 다음과 같은 의미다.

-i Run the program so that it interacts with the desktop of the specified session on the remote system. If no session is specified the process runs in the console session.
-s Run the remote process in the System account.
-d Don't wait for process to terminate (non-interactive).

 

psexec 최초 실행시에는 동의 창이 뜬다. Agree 를 눌러 동의를 표시하자.

PID 10556 인 새 명령창이 뜨는데 작업 관리자를 통해 보면 SYSTEM 계정으로 실행된 것을 확인할 수 있다.

참고
- How to Run Programs as SYSTEM  
- Lai Go's Blog - CMD 프롬프트를 SYSTEM 사용자 권한으로 실행

728x90

SQL Server 접근할 때  connection string 이 필요하다. 로컬 작업할 때는 별도 id / password 가 아니라 로그인한 계정을 그대로 사용하고 싶은데 이 때 Trusted Connection 를 이용한다. OLE DB Driver 를 사용할 때는 아래와 같은 connection string을 사용했다.

Provider=MSOLEDBSQL; Server=myServerAddress; Database=myDataBase; Trusted_Connection=yes;

.net client 에서는 위 connection string 이 안 먹혀서 지원이 안되나 싶었는데 알고보니 connection string이 달랐다.

Server=myServerAddress; Database=myDataBase; Trusted_Connection=True;

.net client 에서는 yes 가 아닌 True 라고 적어줬어야 했다. 

참고 : SQL Server connection strings

 

SQL Server connection strings - ConnectionStrings.com

 

www.connectionstrings.com

 

728x90

utf-8 코멘트 파일과 함께 commit 했더니 히스토리에서 한글이 깨져보였다. --encoding UTF-8 파라미터와 함께 실행했더니 해결되었다.

> svn ci -F FILENAME --encoding UTF-8 myfile

참고 : https://stackoverflow.com/questions/19832954/how-do-i-commit-with-a-utf-8-message-file

728x90

문자열 길이를 알고 싶을 때 사용하는 함수다. 주의 할 점은 후행 공백이 제외된다는 점이다.

> SELECT LEN('test ') -- 4가 return 된다.

공백 제외가 문제된다면 DATALENGTH 라는 함수를 사용할 수 있는데 이 함수는 문자수가 아니라 사용된 바이트 수를 알려주기 때문에 데이터 형식과 인코딩에 따라 주의해야한다.

참고 : SQL Server - LEN(Transact-SQL)

 

LEN(Transact-SQL) - SQL Server

LEN(Transact-SQL)

docs.microsoft.com

SQL Server - DATALENGTH(Transact-SQL)

 

DATALENGTH(Transact-SQL) - SQL Server

DATALENGTH(Transact-SQL)

docs.microsoft.com

 

728x90

회사에서 resharper 사용중인데 string.Format 만 쓰면 아래와 같은 경고 메시지가 보인다.

string interpolation 표현식을 사용하라는 건데 아래와 같이 문자열 앞에 $ 마크를 붙이고 문자열 내에 {변수} 방식으로 형식화하는 방법이다. 기존 {0}, {1} 형식보다 직관적이라 가독성은 좋아진다.

string name = "Mark";
var date = DateTime.Now;

// Composite formatting:
Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date);
// String interpolation:
Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");
// Both calls produce the same output that is similar to:
// Hello, Mark! Today is Wednesday, it's 19:40 now.

참고 : $ - string interpolation (C# reference) at docs.microsoft.com

728x90

 std::tuple 로 return 되는 결과를 std::tie 로 연결해서 받을 때 사용하지 않는 값을 처리하기 위해서 std::ignore 를 사용하면 좋다.

std::set<std::string> setOfStr;
bool bInserted = false;
std::tie(std::ignore, inserted) = setOfStr.insert("test);

참고 : cppreference - std::ignore

728x90

애플워치 3 가 용량이 부족해서 최근 업데이트를 진행할 수 없었다. 오래 사용하다 보니 건강 데이터가 쌓여서 그런 것 같다. 애플워치 4 이후 모델은 재시동, 미디어 및 앱 제거하기 등을 이용해 용량을 확보하는 방법도 있는데 애플워치 3는 '애플워치 쌍으로 연결 해제 및 업데이트' 방법을 사용해야한다.

연결을 해제하고 초기화 후 업데이트 하는 방식이다.

아이폰 Watch 앱에서 나의 시계 목록에서 오른쪽에 있는 i 버튼을 탭한다.

'Apple Watch 연결 해제' 를 탭해서 연결을 해제한다.

처음 개봉했을 때 처럼 아이폰과 연결한다.

'새로운 Apple Watch(으)로 설정'을 탭한다.

설정이 완료된 후 새 Watch OS 로 업데이트한다. 그리고 다시 쌍으로 연결 해제 후 백업에서 복원을 선택한다. 

P.S. 백업에서 복원은 안했는데 딱히 앱 깔아둔 것도 없고 데이터 날라간게 있는지도 잘 모르겠다.

참고 : Apple Watch 업데이트를 위한 공간이 부족할 경우

728x90

Synology DiskStation 종료는 DiskStation 로그인 후 오른쪽 위 사용자 마크 '옵션' 메뉴에서 '종료'를 선택하면 됩니다.

728x90

iOS 14.5 가 정식 릴리즈 되었네요. 

베타 뉴스로 알고 있었지만 마스크 착용 상태에서 애플워치로 아이폰을 해제하는 옵션이 추가되었습니다. 

업데이트하고 설정 > Face ID 및 암호 로 들어가니 APPLE WATCH로 잠금 해제 항목이 보입니다. 애플워치도 업데이트가 필요하네요.

이 기능 사용을 위해서는 애플워치도 watchOS 7.4로 업데이트가 필요합니다.

아이폰, 애플워치 둘 다 업데이트 후 설정에서 APPLE WATCH로 잠금 해제를 활성화해줘야 합니다.

활성화하려면 애플워치 암호 설정이 필요하네요.

마스크 착용 후 최초 한번은 암호를 입력하거나 Face ID 로 열어줘야 합니다.

애플워치도 착용 후 한번은 비번 입력해서 인증된 상태여야 잠금해제되네요.

잘못 해제되었을 경우에는 와치를 사용해서 다시 잠글 수 있네요. 잠궜을 경우에는 다시 비번 입력이 필요합니다.

마스크에 후드까지 써도 잠금이 풀립니다. 모자를 써도 마찬가지로 풀립니다. 시계 찬 손을 등뒤로 하고 했더니 Apple Watch 를 가까이 이동하라는 메시지가 보입니다. 

(2021-05-15) 잠금 해제 쓰려면 wi-fi 도 켜 있어야 하네요.

다른 사람이 마스크 써도 열린다고 합니다. 복합 인증을 기대했는데 인증된 애플워치가 근처에 있으면 잠금이 해제되는 시스템인가 봅니다.

보안은 낮아졌지만 외부에서 마스크 착용하고 있을 때 비번 반복해서 입력해야하는 번거로움은 사라진 것 같습니다.

 

728x90

Plastic SCM 기본은 아래와 같이 수정, 삭제, 추가된 파일 목록만 보이는데 위와 같이 작업을 분류해서 볼 수 있다.

Main actions > 'Pending Changes' 탭에서 Options 창을 연다. What to show 탭에서 2번째에 있는 Group changes in "change lists" 를 체크해서 활성화한다.

위와 같이 보이던 Pending changes 목록이 아래와 같이 Default 그룹이 추가되어 보인다.

다른 changelist 로 옮기고 싶은 파일을 선택해서 checkout 한다. checkout 된 파일을 move to changelist 를 이용해서 새 changelist 나 기존 changelist 로 이동하면 된다. new 를 이용할 경우 이름과 설명을 적을 수 있다. 아쉽게도 위 내용은 그룹 구분 용이고 check-in comment 는 기존과 같이 comment 영역에 수동으로 입력해줘야 한다.

checkout -> move to changelist -> checkin 플로우 잊지말자.

728x90

+ Recent posts