You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.5 KiB
115 lines
3.5 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: M A I N . C P P
|
|
//
|
|
// Contents: Code to provide a simple cmdline interface to
|
|
// the sample code functions
|
|
//
|
|
// Notes: The code in this file is not required to access any
|
|
// netcfg functionality. It merely provides a simple cmdline
|
|
// interface to the sample code functions provided in
|
|
// file snetcfg.cpp.
|
|
//
|
|
// Author: kumarp 28-September-98
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#include "pch.h"
|
|
#pragma hdrstop
|
|
|
|
#include "snetcfg.h"
|
|
#include <wbemcli.h>
|
|
#include <winnls.h>
|
|
#include "tracelog.h"
|
|
|
|
BOOL g_fVerbose=FALSE;
|
|
|
|
BOOL WlbsCheckSystemVersion ();
|
|
BOOL WlbsCheckFiles ();
|
|
HRESULT WlbsRegisterDlls ();
|
|
HRESULT WlbsCompileMof ();
|
|
|
|
// ----------------------------------------------------------------------
|
|
//
|
|
// Function: wmain
|
|
//
|
|
// Purpose: This is the main function for NLBUninst, which is for removing
|
|
// W2K installations of NLB. Making this application compatible
|
|
// with post-W2K releases may require changes, e.g., in
|
|
// function WlbsCheckSystemVersion.
|
|
//
|
|
// Arguments: standard main args
|
|
//
|
|
// Returns: 0 on success, non-zero otherwise
|
|
//
|
|
// Author: kumarp 25-December-97
|
|
//
|
|
// Notes:
|
|
//
|
|
EXTERN_C int __cdecl wmain (int argc, WCHAR * argv[]) {
|
|
HRESULT hr=S_FALSE;
|
|
WCHAR szFileFullPath[MAX_PATH+1];
|
|
WCHAR szFileFullPathDest[MAX_PATH+1];
|
|
|
|
if (!WlbsCheckSystemVersion()) {
|
|
LOG_ERROR("The NLB install pack can only be used on Windows 2000 Server Service Pack 1 or higher.");
|
|
return S_OK;
|
|
}
|
|
|
|
/* Check to see if the service is already installed. */
|
|
hr = FindIfComponentInstalled(_TEXT("ms_wlbs"));
|
|
|
|
if (hr == S_OK) {
|
|
LOG_INFO("Network Load Balancing Service is installed. Proceeding with uninstall...");
|
|
} else {
|
|
LOG_ERROR("Network Load Balancing Service is not installed.");
|
|
return S_OK;
|
|
}
|
|
|
|
/* Now uninstall the service. */
|
|
hr = HrUninstallNetComponent(L"ms_wlbs");
|
|
|
|
if (!SUCCEEDED(hr))
|
|
LOG_ERROR("Error uninstalling Network Load Balancing.");
|
|
else
|
|
LOG_INFO("Uninstallation of Network Load Balancing succeeded.");
|
|
|
|
/* Remove the .inf and the .pnf files. */
|
|
if (GetWindowsDirectory(szFileFullPathDest, MAX_PATH + 1) == 0)
|
|
{
|
|
return HRESULT_FROM_WIN32(GetLastError());
|
|
}
|
|
wcscat(szFileFullPathDest, L"\\INF\\netwlbs.inf");
|
|
DeleteFile(szFileFullPathDest);
|
|
|
|
if (GetWindowsDirectory(szFileFullPathDest, MAX_PATH + 1) == 0)
|
|
{
|
|
return HRESULT_FROM_WIN32(GetLastError());
|
|
}
|
|
wcscat(szFileFullPathDest, L"\\INF\\netwlbs.pnf");
|
|
DeleteFile(szFileFullPathDest);
|
|
|
|
return hr;
|
|
}
|
|
|
|
/* This checks whether the system on which NLB is being installed is a W2K Server or not. */
|
|
BOOL WlbsCheckSystemVersion () {
|
|
OSVERSIONINFOEX osinfo;
|
|
|
|
osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
|
|
|
|
if (!GetVersionEx((LPOSVERSIONINFO)&osinfo)) return FALSE;
|
|
|
|
/* For uninstalls, we return TRUE only if its Windows 2000 Server. */
|
|
if ((osinfo.dwMajorVersion == 5) &&
|
|
(osinfo.dwMinorVersion == 0) &&
|
|
(osinfo.wProductType == VER_NT_SERVER) &&
|
|
!(osinfo.wSuiteMask & VER_SUITE_ENTERPRISE) &&
|
|
!(osinfo.wSuiteMask & VER_SUITE_DATACENTER))
|
|
return TRUE;
|
|
|
|
return FALSE;
|
|
}
|