Module: wine Branch: master Commit: b7afd8ba26155866adb3c766e6cb877f76742f2e URL: https://gitlab.winehq.org/wine/wine/-/commit/b7afd8ba26155866adb3c766e6cb877...
Author: Francois Gouget fgouget@codeweavers.com Date: Fri Mar 24 20:12:54 2023 +0100
taskschd/tests: Elevated privileges are needed to connect using a hostname.
Being in the administrator group is not sufficient.
---
dlls/taskschd/tests/scheduler.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index 58c02832bcc..7f2c547a83d 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -29,6 +29,22 @@
#include <wine/test.h>
+static BOOL is_process_elevated(void) +{ + HANDLE token; + if (OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, &token )) + { + TOKEN_ELEVATION_TYPE type; + DWORD size; + BOOL ret; + + ret = GetTokenInformation( token, TokenElevationType, &type, sizeof(type), &size ); + CloseHandle( token ); + return (ret && type == TokenElevationTypeFull); + } + return FALSE; +} + static void test_Connect(void) { WCHAR comp_name[MAX_COMPUTERNAME_LENGTH + 1]; @@ -73,7 +89,8 @@ static void test_Connect(void) V_BSTR(&v_comp) = SysAllocString(comp_name);
hr = ITaskService_Connect(service, v_comp, v_null, v_null, v_null); - ok(hr == S_OK || hr == E_ACCESSDENIED /* not an administrator */, "Connect error %#lx\n", hr); + ok(hr == S_OK || (hr == E_ACCESSDENIED && !is_process_elevated()), + "Connect error %#lx\n", hr); was_connected = hr == S_OK; SysFreeString(V_BSTR(&v_comp));