Programming/기본 (Baisc)

[VMRC] VMRC "MKS에 연결할 수 없음: ticketType" 오류 완전 정복기

YH.Dream 2026. 6. 18. 03:20

VMRC "MKS에 연결할 수 없음: ticketType" 오류 완전 정복기

vSphere 8.0 환경에서 VMware Remote Console(VMRC) 콘솔이 안 열리는 문제를 인증서 정리부터 옵션값 수정까지 끝까지 추적한 기록.

TL;DR (결론부터)

  • 증상: VMRC로 VM 콘솔 접속 시 MKS에 연결할 수 없음: 지정된 매개 변수가 올바르지 않음: ticketType.
  • 진짜 원인: vCenter 8.0부터 구형 mks 티켓 타입이 폐지되고 webmks로 대체됨. 그런데 VMRC 설정이 구형 mks를 우선하도록 되어 있었음.
  • 해결: preferences.ini에 아래 두 줄 설정
    pref.preferWebMKS = "TRUE"
    pref.preferWebRemoteDevice = "TRUE"
  • 근거: Broadcom KB 313645

⚠️ 이 글은 삽질(인증서 의심 → 버전 의심 → VMRC 재설치)까지 포함한 과정 기록입니다. 바로 답만 필요하면 위 TL;DR로 충분합니다.


0. 환경

구성요소 버전
vCenter Server 8.0 U2c (8.0.2.00300, build 23504390)
ESXi 호스트 8.0 U2 (8.0.2, build 23305546)
VMRC (초기) 12.0.5 build 22744838
클라이언트 OS Windows 10 Pro (19045)

1. 1차 증상 — 인증서 오류로 VMRC 멈춤

처음엔 VMRC 실행 시 인증서 경고에서 프로그램이 멈추는 현상이었다. Windows 인증서 저장소를 뒤져보니 옛 vCenter/ESXi 자체서명 인증서가 여러 저장소에 박혀 있었다.

Get-ChildItem Cert:\CurrentUser\Root, Cert:\CurrentUser\CA,
  Cert:\LocalMachine\Root, Cert:\LocalMachine\CA -Recurse |
  Where-Object { $_.Issuer -match 'VMware' } |
  Select-Object PSParentPath, Subject, Thumbprint

발견된 stale 인증서 (CN=CA, OU=VMware Engineering):

  • CurrentUser\Root, CurrentUser\CA, LocalMachine\Root, LocalMachine\CA 4곳에 중복

백업 후 삭제

인증서는 지우기 전 반드시 백업. .cer로 내보내두면 더블클릭으로 복구 가능.

# 백업
$backupDir = "C:\cert_backup_vmware"
New-Item -ItemType Directory -Force -Path $backupDir | Out-Null
Get-ChildItem Cert:\CurrentUser\Root, Cert:\CurrentUser\CA,
  Cert:\LocalMachine\Root, Cert:\LocalMachine\CA |
  Where-Object { $_.Issuer -match 'VMware' } |
  ForEach-Object { Export-Certificate -Cert $_ -FilePath "$backupDir\$($_.Thumbprint).cer" }

# 삭제
$stores = 'Cert:\CurrentUser\Root','Cert:\CurrentUser\CA',
          'Cert:\LocalMachine\Root','Cert:\LocalMachine\CA'
foreach($s in $stores){
  Get-ChildItem $s | Where-Object { $_.Issuer -match 'VMware' } |
    ForEach-Object { Remove-Item $_.PSPath -Force }
}

💡 CurrentUser\Root에서 삭제하면 "UI is not allowed" 경고가 뜰 수 있는데, 관리자 PowerShell이면 실제로는 삭제된다. 삭제 후 재조회로 확인할 것.

덤으로 발견한 설정 파일 손상

%APPDATA%\VMware\preferences.ini 마지막 줄이 곡선따옴표(" ") 로 깨져 있었다.

pref.preferWebMKS = "FALSE"   # ← 곡선따옴표라 파서가 오작동 가능

표준 따옴표로 교정.

$f = "$env:APPDATA\VMware\preferences.ini"
$raw = Get-Content $f -Raw
($raw -replace [char]0x201C,'"' -replace [char]0x201D,'"') |
  Set-Content $f -NoNewline -Encoding UTF8

→ 인증서 멈춤 현상은 해결. 하지만 곧 진짜 빌런이 등장한다.


2. 2차 증상 — ticketType 오류

콘솔을 다시 띄우니 이번엔:

MKS에 연결할 수 없음: 지정된 매개 변수가 올바르지 않음: ticketType.

VMRC 로그 분석

%LOCALAPPDATA%\Temp\vmware-<user>\vmware-vmrc-*.log

GVmomi: Connected to server: VMware vCenter Server 8.0.2 (VC/ESX server)
HostMgr::OpenHost: opening host with MOID "host-1006"
HostInfoVIM::AttachToChildVMs: Failed to get inventory info for host "host-1006".
VMTicketingVIM::DoAcquireTicket - issuing MKS_TICKET ticket acquisition request   ← 주목
CUIMKS: cui::MKS::OnAcquireAbort: 지정된 매개 변수가 올바르지 않음: ticketType

핵심은 issuing MKS_TICKET — VMRC가 구형 MKS 티켓을 요청하고 있다는 점이다.


3. 삽질 1 — "VMRC 버전이 낮아서?"

가장 흔한 조언이 "VMRC를 최신으로 올려라"였다. 그래서 VMRC 12.0.5 → 13.0 업그레이드를 진행.

무인설치에서 만난 함정: 1603 오류

VMRC 13.0을 silent 설치하니 계속 exit code 1603. MSI 로그를 까보니:

VM_ValidateEULAAccepted → 반환 값 3
"사용자가 명령줄에서 EULAS_AGREED=1을 전달하여 라이센스 계약에 동의하지 않았습니다."

🔑 VMRC 13.0부터 무인설치 시 EULAS_AGREED=1(라이선스 동의) 속성이 필수. 12.x엔 없던 조건이라 처음엔 안 보인다.

# exe에서 추출한 MSI를 직접 설치 (EULA 동의 포함)
msiexec /i "VMware-VMRC-13.0.0.0.24645870.msi" /qn /norestart EULAS_AGREED=1

또는 exe 래퍼로:

Start-Process "VMware-VMRC-13.0.0.0.24645870.exe" `
  -ArgumentList '/s','/v"/qn EULAS_AGREED=1"' -Wait

→ 설치 성공 (VMRC 13.0.0.0 build-24645870 확인).

그런데도 같은 오류

VMRC 13.0으로도 ticketType 오류 그대로. 로그를 다시 보니 13.0조차 여전히 issuing MKS_TICKET. → 버전 문제가 아니다.


4. 삽질 2 — "vCenter와 ESXi 버전 스큐?"

vCenter(8.0.2)가 ESXi(처음엔 8.0.3으로 잘못 알고 있었음)보다 낮아서 MKS 티켓 방식이 안 맞는 줄 알았다. vCenter REST/SOAP API로 실제 버전을 직접 조회:

# REST 세션
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("$user:$pass"))
$token = Invoke-RestMethod -Method Post -Uri "https://<vcenter>/api/session" `
  -Headers @{ Authorization = "Basic $b64" } -SkipCertificateCheck
# 호스트 목록
Invoke-RestMethod -Uri "https://<vcenter>/api/vcenter/host" `
  -Headers @{ 'vmware-api-session-id' = $token } -SkipCertificateCheck

SOAP RetrieveProperties로 각 호스트 빌드까지 확인한 결과:

호스트 버전 build
host-1006 8.0.2 23305546
host-1037 8.0.2 23305546
host-1054 8.0.2 22380479
host-1079 8.0.2 22380479

전부 8.0.2. vCenter도 8.0.2. → 버전 스큐 아님. (호스트 상태도 전부 green / connected, VM도 poweredOn)

교훈: 추측으로 가설 세우지 말고 API로 사실부터 확정할 것.


5. 진짜 원인 — vCenter 8.0의 티켓 타입 변경

오류 문구 그대로 검색해서 Broadcom KB 313645를 찾았다.

vCenter Server는 8.0.0부터 구형 mks 티켓 타입 지원을 종료하고 webmks 포맷을 채택했다.

즉:

  • vCenter 8.0 → webmks 티켓만 발급
  • VMRC가 mks 티켓을 요청 → vCenter가 ticketType 파라미터를 거부

그런데 왜 VMRC는 계속 mks를 요청했나? → preferences.ini의 설정 때문.

pref.preferWebMKS = "FALSE"   # ← "구형 mks 우선"

1차 작업 때 곡선따옴표만 고치고 값은 FALSE로 유지했던 게 화근이었다. (이게 디폴트였음)


6. 최종 해결

KB 313645의 vCenter 8.0.x용 권장 설정 적용:

pref.preferWebMKS = "TRUE"
pref.preferWebRemoteDevice = "TRUE"
# VMRC 완전 종료 (종료 시 preferences를 덮어쓰므로 반드시 먼저)
Get-Process vmrc -ErrorAction SilentlyContinue | Stop-Process -Force

$f = "$env:APPDATA\VMware\preferences.ini"
Copy-Item $f "$f.bak" -Force
$out = foreach($l in (Get-Content $f)){
  if($l -match '^\s*pref\.preferWebMKS\s*='){ 'pref.preferWebMKS = "TRUE"' } else { $l }
}
if(-not ($out -match 'pref\.preferWebRemoteDevice')){
  $out += 'pref.preferWebRemoteDevice = "TRUE"'
}
Set-Content $f -Value $out -Encoding UTF8
버전별 권장값 preferWebMKS preferWebRemoteDevice
vCenter 8.0.x "TRUE" "TRUE"
vCenter 7.0.x "FALSE" "FALSE"

VMRC를 새로 띄우면 이제 webmks 티켓을 요청 → 콘솔 정상 접속. ✅


7. 정리 — 무엇을 배웠나

  1. ticketType 오류 = vCenter 8.0 + 구형 mks 티켓 요청의 조합. 핵심 해결은 VMRC의 preferWebMKS = "TRUE".
  2. VMRC 버전 업그레이드는 권장이지만 그것만으로 안 되는 경우가 있다. 설정값이 우선.
  3. VMRC 13.0 무인설치엔 EULAS_AGREED=1 필수 (없으면 1603).
  4. 인증서 멈춤과 ticketType 오류는 별개 문제. 인증서는 백업 후 정리.
  5. 트러블슈팅은 로그 → API로 사실 확정 → 정확한 오류문구 검색 순서. 버전 스큐 같은 그럴듯한 가설에 빠지지 말 것.

참고 자료


환경 정보의 내부 IP/계정/비밀번호는 공개 게시 전 반드시 마스킹하세요.

사업자 정보 표시
디알소프트 | 유용훈 | 서울시 양천구 오목로 30길 | 사업자 등록번호 : 184-47-00657 | TEL : 02-2692-1002 | Mail : gkioo@daum.net | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기