none
VS2010 C#에서 MSTSC연결시 Credentials 이용 RRS feed

  • 질문

  • 하기와 같이 C# Code내에서 원격데스크톱을 사용하려고 합니다.

    System.Diagnostics.Process rdcProcess = new System.Diagnostics.Process();

                // Create credential
                rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
                rdcProcess.StartInfo.Arguments = "/generic:TERMSRV/" + txtSystemName.Text + " /user:" + txtOSUSerID.Text + " /pass:" + txtOSPassword.Text;
                rdcProcess.Start();

                rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
                rdcProcess.StartInfo.Arguments = "/v " + txtSystemName.Text + " /admin"; // ip or name of computer to connect
                rdcProcess.Start();

                // Delete credential
                rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
                rdcProcess.StartInfo.Arguments = "/delete:TERMSRV/" + txtSystemName.Text;
                rdcProcess.Start();

    Credential을 사용하므로 접속시 User ID/Password를 물어보지 말아야 하는데 물어봅니다.

    혹시나 해서 DOS Command mode에서도 아래와 같이 해 봤습니다.

    cmdkey /generic:TERMSRV/ServerName /user:Administrator /pass:Password
    mstsc /admin /v:Servername

    이렇게 해도 계정을 물어오네요...

    왜 안되는지 모르겠습니다. 아시는 분 계시면 지식을 좀 나눠주셨으면 합니다.

    감사합니다.


    Thanks

    2015년 9월 24일 목요일 오전 12:55

답변

  • 안녕하세요, IH Lee 님.
    Microsoft TechNet의 Forum 사이트를 방문해 주셔서 감사합니다.
    문의 하신 "VS2010 C#에서 MSTSC연결시 Credentials 이용" 문의에 대한 답변을 드리겠습니다.

    cmdkey로는 Credential을 묻는 대화상자 보여집니다. cmdkey에 대한 자세한 내용은 다음을 참고하십시오.

    https://technet.microsoft.com/en-us/library/cc754243.aspx
    Cmdkey

    그래서 저는 rdp 파일을 이용하여 mstsc.exe를 Credential을 묻는 대화상자없이 실행하는 방법은 성공하였습니다.

    1. 다음의 웹 문서에서 제공되는 password hash 툴 cryptRDP5.exe를 이용하여 hashed password를 생성하였습니다.

    https://www.petri.com/forums/forum/microsoft-networking-services/terminal-services/25839-automatically-create-rdp-file-with-password
    Automatically create RDP file with password

    C:\>cryptRDP5 password > pwdhash.txt

    2. test.rdp 파일을 다음과 같이 만들었습니다.
    full address:s:10.168.mmm.nnn
    username:s:smpark
    domain:s:NO-DOMAIN
    password 51:b:pwdhash.txt 내용을 복사

    3. mstsc.exe를 test.rdp를 매개변수로 실행합니다

    C:\>mstsc.exe test.rdp

    제시해 드린 답변이 도움이 되었기를 바랍니다.
      
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.



    • 편집됨 SMPark82Moderator 2015년 9월 24일 목요일 오전 6:38
    • 답변으로 표시됨 IH Lee 2015년 9월 24일 목요일 오전 8:11
    2015년 9월 24일 목요일 오전 6:36
    중재자

모든 응답

  • 안녕하세요, IH Lee 님.
    Microsoft TechNet의 Forum 사이트를 방문해 주셔서 감사합니다.
    문의 하신 "VS2010 C#에서 MSTSC연결시 Credentials 이용" 문의에 대한 답변을 드리겠습니다.

    다음 미국 stackoverflow 질문을 참조하십시오. C# 코딩은 아니고 cmdkey이용한 Remote Desktop Connection Automation 내용입니다. 

    http://stackoverflow.com/questions/16479652/automating-remote-desktop-connection
    Automating remote desktop connection

    제시해 드린 답변이 도움이 되었기를 바랍니다.
      
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다

    2015년 9월 24일 목요일 오전 1:17
    중재자
  • 답변 감사합니다.

    알려주신 내용은 이미 봤던 것으로, 아래와 같은 경우도 모두 해봤지만 안되더군요.

    cmdkey /generic:TERMSRV/ServerName /user:UserName /pass:Password

    or

    cmdkey /generic:ServerName /user:UserName /pass:Password

    or

    cmdkey /add:ServerName /user:UserName /pass:Password

    위의 3가지 case모두 해당 Server로 화면 전환시 User name & Password를 물어봅니다.

    다른 방안은 없을까요?


    Thanks

    2015년 9월 24일 목요일 오전 1:28
  • 제 PC들에서는 잘됩니다만. 아래와 같이 Command Prompt에서 실행했습니다.(Not Admin Command Prompt)
    Local은 윈도우 8.1 이고 가장 최신 업데이트까지 모두 설치된 상태입니다.
    Remote는 윈도우 7이고 업데이트를 설치안한 상태입니다만. Local 쪽 운영체제가 무엇인지요? 최신 업데이트가 모두 설치된 상태이신지요?

    C:\Users\smpark>cmdkey /generic:10.168.mmm.nnn /user:NO-DOMAIN\smpark /pass:123
    CMDKEY: Credential added successfully.

    C:\Users\smpark>mstsc /v:10.168.mmm.nnn

    2015년 9월 24일 목요일 오전 1:52
    중재자
  • 응답을 두번씩이나 달았는데 없어지네요..ㅠㅜ

    제 PC는 Windows 2010이구요,

    혹시나 해서 Windows 7에서 해보면 잘 되네요...

    Windows 10에서 뭔가 바뀐것 같은데, 알 수 있을까요?


    Thanks

    2015년 9월 24일 목요일 오전 4:07
  • 그럼 Remote가 윈도우 10이시고 Local은 윈도우 2012인가요? 아니면 윈도우 10인가요? 윈도우 2010은???

    2015년 9월 24일 목요일 오전 4:17
    중재자
  • Local(PC)이 Windows 10이고,

    Server OS는 여러 종류입니다.(Windows 2012, Windows 2000, Windows 2008...)


    Thanks

    2015년 9월 24일 목요일 오전 4:48
  • 안녕하세요, IH Lee 님.
    Microsoft TechNet의 Forum 사이트를 방문해 주셔서 감사합니다.
    문의 하신 "VS2010 C#에서 MSTSC연결시 Credentials 이용" 문의에 대한 답변을 드리겠습니다.

    cmdkey로는 Credential을 묻는 대화상자 보여집니다. cmdkey에 대한 자세한 내용은 다음을 참고하십시오.

    https://technet.microsoft.com/en-us/library/cc754243.aspx
    Cmdkey

    그래서 저는 rdp 파일을 이용하여 mstsc.exe를 Credential을 묻는 대화상자없이 실행하는 방법은 성공하였습니다.

    1. 다음의 웹 문서에서 제공되는 password hash 툴 cryptRDP5.exe를 이용하여 hashed password를 생성하였습니다.

    https://www.petri.com/forums/forum/microsoft-networking-services/terminal-services/25839-automatically-create-rdp-file-with-password
    Automatically create RDP file with password

    C:\>cryptRDP5 password > pwdhash.txt

    2. test.rdp 파일을 다음과 같이 만들었습니다.
    full address:s:10.168.mmm.nnn
    username:s:smpark
    domain:s:NO-DOMAIN
    password 51:b:pwdhash.txt 내용을 복사

    3. mstsc.exe를 test.rdp를 매개변수로 실행합니다

    C:\>mstsc.exe test.rdp

    제시해 드린 답변이 도움이 되었기를 바랍니다.
      
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.



    • 편집됨 SMPark82Moderator 2015년 9월 24일 목요일 오전 6:38
    • 답변으로 표시됨 IH Lee 2015년 9월 24일 목요일 오전 8:11
    2015년 9월 24일 목요일 오전 6:36
    중재자
  • rdp file을 사용하지 않으려고 했던건데 그것 밖에는 방법이 없군요...ㅠㅜ

    하여튼 답변 감사 드립니다.


    Thanks

    2015년 9월 24일 목요일 오전 8:11