Vista에서 관리자 권한으로 응용 프로그램을 실행하는 경우 작동합니까?
또한이 코드를 사용하여 상승 된 권한으로 COM 개체를 만들 수 있습니다
HRESULT __stdcall CreateElevatedComObject(HWND hwnd, REFCLSID rclsid, REFIID riid, __out IUnknown ** ppv)
{
OSVERSIONINFO ver={sizeof(ver)};
if (GetVersionEx(&ver) && ver.dwMajorVersion > 5)
{
BIND_OPTS3 bo;
WCHAR wszCLSID[50];
WCHAR wszMonikerName[300];
if (StringFromGUID2(rclsid, wszCLSID, ELEMENTS(wszCLSID)))
{
HRESULT hr = StringCchPrintf(wszMonikerName,
ELEMENTS(wszMonikerName),
L"Elevation:Administrator!new:%s",
wszCLSID);
if (FAILED(hr))
return hr;
memset(&bo, 0, sizeof(bo));
bo.cbStruct = sizeof(bo);
bo.hwnd = hwnd;
bo.dwClassContext = CLSCTX_LOCAL_SERVER;
return CoGetObject(wszMonikerName, &bo, riid, (void **)ppv);
}
return E_FAIL;
}
else
return ::CoCreateInstance(rclsid,NULL,CLSCTX_ALL,riid,(void**)ppv);
}
UAC에서 실행
, 그것은 고도의 대화를 발표 할 예정이다. 이 객체는 dllhost에서 프로세스가 만료 될 것이지만 (전체적으로 생각할 때) 전체 관리자 권한으로 실행됩니다.
step by step guide for UAC in Vista도 확인하십시오.
답장을 보내 주셔서 감사합니다. 아니요, 관리자 권한으로는 작동하지 않습니다. 현재 OCX에이 코드를 삽입 할 수 있습니까? 이것이 디아그그를 일으킬 것입니까? 이것은 웹 페이지에서 실행되는 OCX입니다. 도움 주셔서 감사합니다. – LilMoke
아니요, COM 개체를 만드는 데 사용하는 일반적인 코드 대신이 코드를 실행해야합니다. IE 내부에서 실행중인 경우 권한이 실행될 때 의도적으로 권한을 삭제하기 때문에 보안 경계가 추가로 제공됩니다. –
IE를 마우스 오른쪽 버튼으로 클릭하고 "관리자 권한으로 실행"을 선택하면 IE가 전체 필터링되지 않은 관리자로 실행됩니다. 정상적으로 실행하면 Vista에서 IE (또는 모든 프로세스)가 실제 관리자 권한없이 실행되고, 기계의 관리자 인 경우에도 –