L
Windows Ereignisanzeige schrieb:
Vom Windows-Defender-Echtzeitschutz-Agent wurden Änderungen erkannt. Microsoft empfiehlt, die Software, die diese Änderungen vorgenommen hat, zu analysieren, um potenzielle Risiken festzustellen. Sie können anhand der Informationen über die Funktionsweise dieser Programme entscheiden, ob die Software ausgeführt werden kann oder vom Computer entfernt werden soll. Lassen Sie nur Änderungen zu, wenn das Programm oder der Softwareherausgeber vertrauenswürdig ist. Windows-Defender kann Änderungen, die Sie zugelassen haben, nicht mehr rückgängig machen.
Weitere Informationen finden Sie im Folgenden:
Nicht zutreffend
Scan-ID: {901E38D9-350C-4DCE-91CD-EB767F31056E}
Benutzer: ***
Name: Unknown
ID:
Schweregrad-ID:
Kategorie-ID:
Gefundener Pfad: service:SyDWatch;file:C:\Windows\System32\SyD\SyD_Watch.exe
Warnungsart: Nicht klassifizierte Software
Feststellungstyp:
So das kommt, wenn ich meinen Service installiere...
3004 == "An AddJob call was not issued."
Liegt das Prob an Vista???
[edit]
int installMyService( char *head )
{
char strDir[1024];
int lastErr = 0,
retValue;
SC_HANDLE myService,
svcManager;
LPCTSTR binPath = strDir;
svcManager = OpenSCManager( NULL, NULL, SC_MANAGER_CREATE_SERVICE );
if(svcManager != NULL)
{
myService = CreateService( svcManager, svcName, svcDesc,
SERVICE_ALL_ACCESS, //Der Service hat Adminrechte
SERVICE_WIN32_OWN_PROCESS, //Der Service ist ein Systemprozess
SERVICE_DEMAND_START, //Manueller Start
SERVICE_ERROR_NORMAL, //Normale Fehlerausgabe
"C:\\Windows\\System32\\SyD\\SyD_Watch.exe", //Binäre Pfadangabe
NULL, //Gruppenmitglied von gruppe (zu finden in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder)
NULL, //TagID
NULL, //Services die gestartet werden müssen, bevor dieser läuft
NULL, //User
NULL ); //Passwort
if( NULL == myService )
{
lastErr = GetLastError();
if( ERROR_DUPLICATE_SERVICE_NAME == lastErr )
retValue = -1; //doppelter Servicename
else if ( ERROR_ACCESS_DENIED == lastErr )
retValue = -2; //zugriff verweigert
else if ( ERROR_CIRCULAR_DEPENDENCY == lastErr )
retValue = -3; //anzeigename schon vorhanden oder derselbe anzeigename wie ein service-name
else if ( ERROR_INVALID_NAME == lastErr )
retValue = -4; //fehlerhafter servicename
else if ( ERROR_SERVICE_EXISTS == lastErr )
retValue = -5; //service schon vorhanden
else
retValue = -6;
CloseServiceHandle( svcManager );
}
else
{
MessageBox( NULL, "Installation of the service was successful.\nStart service", "Installation complete", 0);
StartService( myService, 0, NULL );
CloseServiceHandle( myService );
CloseServiceHandle( svcManager );
}
}
else
{
retValue = -1;
MessageBox( NULL, "OpenSCManager has got a failure.", head, 0);
}
return retValue;
}
und
int installMyService( char *head )
//Service wird installiert
{
char strDir[1024];
int retValue = 0;
SC_HANDLE myService,
svcManager;
LPCTSTR binPath = strDir;
int lastErr = 0;
svcManager = OpenSCManager(
NULL, //Computername to install the Service (NULL ?or ""? = local)
NULL, //Database of services (NULL = default)
SC_MANAGER_CREATE_SERVICE //access rights
);
if(svcManager == NULL)
//OpenSCManager fehlgeschlagen
{
writeToLog( "OpenSCManager got a failure\t", GetLastError(), 0 );
retValue = -7;
}
else
//OpenSCManager erfolgreich, service wird installiert
{
myService = CreateService(
svcManager, //Der Servicemanager (durch OpenSCManager)
svcName, //Service-Name
svcDesc, //Service-Beschreibung
SERVICE_ALL_ACCESS, //Der Service hat Adminrechte
SERVICE_WIN32_OWN_PROCESS, //Der Service ist ein Systemprozess
SERVICE_DEMAND_START, //Manueller Start
SERVICE_ERROR_NORMAL, //Normale Fehlerausgabe
"C:\\Windows\\System32\\SyD\\SyD_Watch.exe", //Binäre Pfadangabe
NULL, //Gruppenmitglied von gruppe (zu finden in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder)
NULL, //TagID
NULL, //Services die gestartet werden müssen, bevor dieser läuft
NULL, //User
NULL //Passwort
);
if( NULL == myService )
//CreateService ist fehlgeschlagen, fehler werden eventuell speziell behandelt
{
lastErr = GetLastError();
if( ERROR_DUPLICATE_SERVICE_NAME == lastErr )
retValue = -1; //doppelter Servicename
else if ( ERROR_ACCESS_DENIED == lastErr )
retValue = -2; //zugriff verweigert
else if ( ERROR_CIRCULAR_DEPENDENCY == lastErr )
retValue = -3; //anzeigename schon vorhanden oder derselbe anzeigename wie ein service-name
else if ( ERROR_INVALID_NAME == lastErr )
retValue = -4; //fehlerhafter servicename
else if ( ERROR_SERVICE_EXISTS == lastErr )
retValue = -5; //service schon vorhanden
else
retValue = -6;
writeToLog( "Service installation fail\t", GetLastError(), 0 );
CloseServiceHandle( svcManager );
}
else
//CreateService war erfolgreich, service wird gesartet
{
writeStringToLog( "Service installation\t\t", "successfull");
/*StartService(
myService, //Servicehandle
0, //Number of services arguments
NULL //Services arguments
);*/
CloseServiceHandle( myService );
CloseServiceHandle( svcManager );
}
}
return retValue;
}
Ersteres ist eine minimalumschreibung des Original-SVC-Setups.
Sie Funktioniert und überall ist der SErvice eingetragen. Windows erkennt, das es eine Installation von irgendwas ist, und die Datei wird automatisch im Adminmodus (nach aufgefordertem login) ausgeführt,
zweiteres ist eine große umschreibung des Original-SVC-Setups.
Hier wird der Service nur im Taskmanager gelistet...
Wo ist da bitte der unterschied??? Das eine heist svcSetup2.exe das andere SyD_Service.exe.... sollte nmich am Namen liegen oder?