[help]detect the status of iis server
-
hello, i want to write a program in vc++ 2008 using win32 c which run on client and check the status of iis server. the status means ---- server is down or not, sql is working or not and iis is working or stopped. please guide me thanks rahul
Can you check the IIS service on that remote machine?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
Can you check the IIS service on that remote machine?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
i dont know. i want to this project but i dont know much about it. i come to know that socket programming will be used for this project. actually i am totally new to windows programming but i have to summit this project soon or i will in big trouble. i am trying my best to learn it but time is less, work is more. i will learn windows programming in detail after this project because then i will have more time.
-
i dont know. i want to this project but i dont know much about it. i come to know that socket programming will be used for this project. actually i am totally new to windows programming but i have to summit this project soon or i will in big trouble. i am trying my best to learn it but time is less, work is more. i will learn windows programming in detail after this project because then i will have more time.
rahuljin wrote:
i will learn windows programming in detail after this project because then i will have more time.
Famous last words. :rolleyes:
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
rahuljin wrote:
i will learn windows programming in detail after this project because then i will have more time.
Famous last words. :rolleyes:
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
really, i know basic of c, c++, java, html\xhtml, vb, etc. this is the frist time i am doing the advance level programming. i want to learn asp .net but not know.
rahuljin wrote:
this is the frist time i am doing the advance level programming.
It's not really an advanced topic as much as it is a specialized topic. See here for an idea.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
rahuljin wrote:
this is the frist time i am doing the advance level programming.
It's not really an advanced topic as much as it is a specialized topic. See here for an idea.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
thanks for the link. i have tried to write some code but it is not working. can u find the mistake i am making ? i want to find the status of the service "W3SVC", and when it is running, the program should print "Found" ----
#ifndef UNICODE #define UNICODE #endif #include <stdio.h> #include <assert.h> #include <windows.h> #include <lm.h> #include <tchar.h> #include <wchar.h> int wmain(int argc, wchar_t * argv[]) { LPSERVER_INFO_101 pBuf = NULL; LPSERVER_INFO_101 pTmpBuf; DWORD dwLevel = 101; DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; DWORD dwEntriesRead = 0; DWORD dwTotalEntries = 0; DWORD dwTotalCount = 0; DWORD dwServerType = SV_TYPE_SERVER; // all servers DWORD dwResumeHandle = 0; NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; LPTSTR pszDomainName = NULL; DWORD i; if (argc > 2) { fwprintf(stderr, L"Usage: %s [DomainName]\n", argv[0]); exit(1); } // The request is not for the primary domain. // if (argc == 2) pszDomainName = argv[1]; // // Call the NetServerEnum function to retrieve information // for all servers, specifying information level 101. // nStatus = NetServerEnum((LPCWSTR) pszServerName, dwLevel, (LPBYTE *) & pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries, dwServerType, (LPCWSTR) pszDomainName, &dwResumeHandle); // // If the call succeeds, // if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA)) { if ((pTmpBuf = pBuf) != NULL) { // // Loop through the entries and // print the data for all server types. // for (i = 0; i < dwEntriesRead; i++) { assert(pTmpBuf != NULL); if (pTmpBuf == NULL) { fprintf(stderr, "An access violation has occurred\n"); break; } printf("\tPlatform: %d\n", pTmpBuf->sv101_platform_id); wprintf(L"\tName: %s\n", pTmpBuf->sv101_name); printf("\tVersion: %d.%d\n", pTmpBuf->sv101_version_major, pTmpBu
-
thanks for the link. i have tried to write some code but it is not working. can u find the mistake i am making ? i want to find the status of the service "W3SVC", and when it is running, the program should print "Found" ----
#ifndef UNICODE #define UNICODE #endif #include <stdio.h> #include <assert.h> #include <windows.h> #include <lm.h> #include <tchar.h> #include <wchar.h> int wmain(int argc, wchar_t * argv[]) { LPSERVER_INFO_101 pBuf = NULL; LPSERVER_INFO_101 pTmpBuf; DWORD dwLevel = 101; DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; DWORD dwEntriesRead = 0; DWORD dwTotalEntries = 0; DWORD dwTotalCount = 0; DWORD dwServerType = SV_TYPE_SERVER; // all servers DWORD dwResumeHandle = 0; NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; LPTSTR pszDomainName = NULL; DWORD i; if (argc > 2) { fwprintf(stderr, L"Usage: %s [DomainName]\n", argv[0]); exit(1); } // The request is not for the primary domain. // if (argc == 2) pszDomainName = argv[1]; // // Call the NetServerEnum function to retrieve information // for all servers, specifying information level 101. // nStatus = NetServerEnum((LPCWSTR) pszServerName, dwLevel, (LPBYTE *) & pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries, dwServerType, (LPCWSTR) pszDomainName, &dwResumeHandle); // // If the call succeeds, // if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA)) { if ((pTmpBuf = pBuf) != NULL) { // // Loop through the entries and // print the data for all server types. // for (i = 0; i < dwEntriesRead; i++) { assert(pTmpBuf != NULL); if (pTmpBuf == NULL) { fprintf(stderr, "An access violation has occurred\n"); break; } printf("\tPlatform: %d\n", pTmpBuf->sv101_platform_id); wprintf(L"\tName: %s\n", pTmpBuf->sv101_name); printf("\tVersion: %d.%d\n", pTmpBuf->sv101_version_major, pTmpBu
rahuljin wrote:
if ((QueryServiceStatus(hService, &ss) == SERVICE_RUNNING)||(QueryServiceStatus(hService, &ss) == SERVICE_START_PENDING)) printf("Found");
Should be:
if (QueryServiceStatus(hService, &ss) != FALSE)
{
if (ss.dwCurrentState == SERVICE_RUNNING || ss.dwCurrentState == SERVICE_START_PENDING)
printf("Found");
}"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
rahuljin wrote:
if ((QueryServiceStatus(hService, &ss) == SERVICE_RUNNING)||(QueryServiceStatus(hService, &ss) == SERVICE_START_PENDING)) printf("Found");
Should be:
if (QueryServiceStatus(hService, &ss) != FALSE)
{
if (ss.dwCurrentState == SERVICE_RUNNING || ss.dwCurrentState == SERVICE_START_PENDING)
printf("Found");
}"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
thanks, it is working now. i will bother u soon if i stuck in something. one more thing i want to ask. currently i have only one computer so no network. will this program work on a network of computers too ? i cant check myself. suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ? also, if i have the ip address of the server then how to use it in this program ? thanks again :thumbsup: rahul update : when i make a try to make a array of processes like this -------
wchar_t selPro[] = { _T("W3SVC"), _T("Iisadmin")};
SC_HANDLE hService = OpenService(hSCM, selPro[j], SERVICE_QUERY_STATUS);
where j is for "for" lool (0,1). when i compile this code, compiling completes without any error and when i try to run it, it crashes. if i pass without array, it works fine. please guide me
modified on Saturday, June 13, 2009 5:05 PM
-
thanks, it is working now. i will bother u soon if i stuck in something. one more thing i want to ask. currently i have only one computer so no network. will this program work on a network of computers too ? i cant check myself. suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ? also, if i have the ip address of the server then how to use it in this program ? thanks again :thumbsup: rahul update : when i make a try to make a array of processes like this -------
wchar_t selPro[] = { _T("W3SVC"), _T("Iisadmin")};
SC_HANDLE hService = OpenService(hSCM, selPro[j], SERVICE_QUERY_STATUS);
where j is for "for" lool (0,1). when i compile this code, compiling completes without any error and when i try to run it, it crashes. if i pass without array, it works fine. please guide me
modified on Saturday, June 13, 2009 5:05 PM
rahuljin wrote:
will this program work on a network of computers too ?
That's what
NetServerEnum()
is for.rahuljin wrote:
suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ?
First, did you try it? Second, did you check MSDN to see how
OpenSCManager()
handles its first argument?rahuljin wrote:
also, if i have the ip address of the server then how to use it in this program ?
Convert the IP address to the host name using
gethostbyaddr()
.rahuljin wrote:
...it crashes.
Meaning what? A "crash" is fairly meaningless.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
rahuljin wrote:
will this program work on a network of computers too ?
That's what
NetServerEnum()
is for.rahuljin wrote:
suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ?
First, did you try it? Second, did you check MSDN to see how
OpenSCManager()
handles its first argument?rahuljin wrote:
also, if i have the ip address of the server then how to use it in this program ?
Convert the IP address to the host name using
gethostbyaddr()
.rahuljin wrote:
...it crashes.
Meaning what? A "crash" is fairly meaningless.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
here is error from windows. it says "new01" has stopped working
Problem signature:
Problem Event Name: APPCRASH
Application Name: new01.exe
Application Version: 0.0.0.0
Application Timestamp: 4a349ab0
Fault Module Name: RPCRT4.dll
Fault Module Version: 6.1.7100.0
Fault Module Timestamp: 49eea681
Exception Code: c0000005
Exception Offset: 0002f3b0
OS Version: 6.1.7100.2.0.0.256.1
Locale ID: 16393
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txthere is the complete code of the program ----
// setting unicode
#ifndef UNICODE
#define UNICODE
#endif// header files
#include <stdio.h>
#include <assert.h>
#include <windows.h>
#include <lm.h>
#include <tchar.h>
#include <wchar.h>void printServer(LPSERVER_INFO_101 ppTmpBuf, DWORD ddwEntriesRead)
{
SC_HANDLE hSCM;
SERVICE_STATUS ss;
DWORD i;
short int j, x;
x = 2;
wchar_t* prName[] = {\_T("W3SVC"), \_T("Themes") }; for (i = 0; i < ddwEntriesRead; i++) { for(j=0; j<x ; j++) { hSCM = OpenSCManager((LPCTSTR) ppTmpBuf->sv101\_name, NULL, SC\_MANAGER\_CONNECT); if (hSCM != NULL) { SC\_HANDLE hService = OpenService(hSCM, prName\[j\], SERVICE\_QUERY\_STATUS); if (hService != NULL) { if (QueryServiceStatus(hService, &ss) != FALSE) { if ((ss.dwCurrentState == SERVICE\_RUNNING)||(ss.dwCurrentState == SERVICE\_START\_PENDING)) wprintf(\_T("%-20s %-15s This service is running.\\n"),ppTmpBuf->sv101\_name, prName\[j\]); else wprintf(\_T("%-20s %-15s This service is stopped or not found.\\n"),ppTmpBuf->sv101\_name, prName\[j\]); } CloseServiceHandle(hService); }
-
here is error from windows. it says "new01" has stopped working
Problem signature:
Problem Event Name: APPCRASH
Application Name: new01.exe
Application Version: 0.0.0.0
Application Timestamp: 4a349ab0
Fault Module Name: RPCRT4.dll
Fault Module Version: 6.1.7100.0
Fault Module Timestamp: 49eea681
Exception Code: c0000005
Exception Offset: 0002f3b0
OS Version: 6.1.7100.2.0.0.256.1
Locale ID: 16393
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txthere is the complete code of the program ----
// setting unicode
#ifndef UNICODE
#define UNICODE
#endif// header files
#include <stdio.h>
#include <assert.h>
#include <windows.h>
#include <lm.h>
#include <tchar.h>
#include <wchar.h>void printServer(LPSERVER_INFO_101 ppTmpBuf, DWORD ddwEntriesRead)
{
SC_HANDLE hSCM;
SERVICE_STATUS ss;
DWORD i;
short int j, x;
x = 2;
wchar_t* prName[] = {\_T("W3SVC"), \_T("Themes") }; for (i = 0; i < ddwEntriesRead; i++) { for(j=0; j<x ; j++) { hSCM = OpenSCManager((LPCTSTR) ppTmpBuf->sv101\_name, NULL, SC\_MANAGER\_CONNECT); if (hSCM != NULL) { SC\_HANDLE hService = OpenService(hSCM, prName\[j\], SERVICE\_QUERY\_STATUS); if (hService != NULL) { if (QueryServiceStatus(hService, &ss) != FALSE) { if ((ss.dwCurrentState == SERVICE\_RUNNING)||(ss.dwCurrentState == SERVICE\_START\_PENDING)) wprintf(\_T("%-20s %-15s This service is running.\\n"),ppTmpBuf->sv101\_name, prName\[j\]); else wprintf(\_T("%-20s %-15s This service is stopped or not found.\\n"),ppTmpBuf->sv101\_name, prName\[j\]); } CloseServiceHandle(hService); }
So where's the problem?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
So where's the problem?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
when i remove the following statements from the program, program run without any error.
NetApiBufferFree(ppTmpBuf);
NetApiBufferFree(pTmpBuf);what may be the problem with this ?
rahuljin wrote:
what may be the problem with this ?
It appears you are freeing the same memory three times.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
rahuljin wrote:
what may be the problem with this ?
It appears you are freeing the same memory three times.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
yes, that may be the reason for the program crash. is there a way to access from a client if it have minimum access ? i mean that the client can access only a few folder in the other pc. also when i try this program on xp OS system, it gives the error --- NetQueryDisplayInformation gave error ERROR_ACCESS_DENIED. Due to this error, it does not display the status of service even of the system it is running on. it is a client pc. though i can ping the ip of other computers in the network. is there any remedy for this ?
modified on Tuesday, June 16, 2009 3:50 AM