запланированное задание с использованием NetScheduleJobAdd в Active Directory не выполняется в клиенте - PullRequest
0 голосов
/ 16 марта 2019

Я администратор Active Directory.я хочу скопировать исполняемый файл в папке ADMIN $ общего клиентского программного обеспечения.после запуска моей программы исполняемая копия в папку общего ресурса ADMIN $ успешно завершена, и при запуске ее состояние в планировщике заданий меняется на «Выполняется», но исполняемый файл фактически не запускается.моя программа:

#include "stdafx.h"
#include <windows.h> 
#include <stdio.h>
#include <lmuse.h>
#include <Lmat.h>
#include <lm.h>
#include <string>
#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "Netapi32.lib")
#ifndef UNICODE
#define UNICODE
#endif
int main(int argc, wchar_t *argv[])
{
CopyFileW(L"C:\\Users\\Administrator\\Desktop\\SampleExecutable.exe", L"\\\\192.168.1.5\\ADMIN$\\system32\\MyExecutable.exe", FALSE);

LPTIME_OF_DAY_INFO pBuf = NULL;
NET_API_STATUS nStatus;
LPTSTR pszServerName = NULL;
pszServerName = TEXT("\\\\192.168.1.5");

nStatus = NetRemoteTOD((LPCWSTR)pszServerName,
    (LPBYTE *)&pBuf);
if (nStatus == NERR_Success)
{
    if (pBuf != NULL)
    {
        fprintf(stderr, "\nThe current date is: %d/%d/%d\n",
            pBuf->tod_month, pBuf->tod_day, pBuf->tod_year);
        fprintf(stderr, "The current time is: %d:%d:%d\n",
            pBuf->tod_hours, pBuf->tod_mins, pBuf->tod_secs);


        AT_INFO a_info;

        memset(&a_info, 0, sizeof(a_info));
        a_info.DaysOfMonth = 0;
        a_info.DaysOfWeek = 0;
        a_info.JobTime = 360000; // Run in 12:06:00 AM
        a_info.Command = L"\\\\192.168.1.5\\ADMIN$\\system32\\MyExecutable.exe";
        a_info.Flags = JOB_ADD_CURRENT_DATE;


        DWORD jobid = 0;
        if (NetScheduleJobAdd(TEXT("192.168.1.5"), (LPBYTE)&a_info, &jobid) == NERR_Success)
        {
            MessageBoxA(NULL, "", "", MB_OK);
        }


    }
}
//
// Otherwise, display a system error.
else
    fprintf(stderr, "A system error has occurred: %d\n", nStatus);
//
// Free the allocated buffer.
//program
if (pBuf != NULL)
    NetApiBufferFree(pBuf);

system("pause");
return 0;
}

Пожалуйста, помогите мне об этой проблеме.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...