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.
330 lines
11 KiB
330 lines
11 KiB
#include "netsh.h"
|
|
#include "strdefs.h"
|
|
|
|
STRINGTABLE
|
|
{
|
|
MSG_NULL, ""
|
|
MSG_OKAY, "Ok.\n"
|
|
|
|
//
|
|
// Error messages
|
|
//
|
|
|
|
ERROR_INVALID_SYNTAX, "\
|
|
The syntax supplied for this command is not valid. Check help for the correct syntax.\n"
|
|
|
|
ERROR_PROTOCOL_NOT_IN_TRANSPORT, "\
|
|
First, add the protocol to the transport, and then add it to the interface.\n"
|
|
|
|
ERROR_NO_CHANGE, "\
|
|
No change was made.\n"
|
|
|
|
ERROR_CMD_NOT_FOUND, "\
|
|
The following command was not found: %1!s!.\n"
|
|
|
|
ERROR_ENTRY_PT_NOT_FOUND, "\
|
|
The following entry point is not available in the helper: %1!s!.\n"
|
|
|
|
ERROR_DLL_LOAD_FAILED, "\
|
|
The following helper DLL cannot be loaded: %1!s!.\n"
|
|
|
|
ERROR_INIT_DISPLAY, "\
|
|
The netsh console cannot be initialized for display.\n"
|
|
|
|
ERROR_TAG_ALREADY_PRESENT, "\
|
|
Two or more arguments in the command have the same name.\n"
|
|
|
|
ERROR_INVALID_OPTION_TAG, "\
|
|
'%1!s!' is not a valid argument for this command.\n"
|
|
|
|
ERROR_INVALID_OPTION_VALUE, "\
|
|
'%1!s!' is not an acceptable value for '%2!s!'.\n"
|
|
|
|
ERROR_NO_TAG, "\
|
|
Expected a value for '%1!s!'\n"
|
|
|
|
ERROR_MISSING_OPTION, "\
|
|
One or more essential parameters were not entered.\n\
|
|
Verify the required parameters, and reenter them.\n"
|
|
|
|
ERROR_TRANSPORT_NOT_PRESENT, "\
|
|
The requested transport is not available.\n"
|
|
|
|
ERROR_HELPER_ALREADY_REGISTERED, "\
|
|
This helper has already been registered.\n"
|
|
|
|
ERROR_CONTEXT_ALREADY_REGISTERED, "\
|
|
This context has already been registered.\n"
|
|
|
|
HLP_GROUP_ADD, "Adds a configuration entry to a list of entries.\n"
|
|
HLP_GROUP_DELETE, "Deletes a configuration entry from a list of entries.\n"
|
|
HLP_GROUP_SET, "Updates configuration settings.\n"
|
|
HLP_GROUP_SHOW, "Displays information.\n"
|
|
|
|
HLP_HELP1, "Displays a list of commands.\n"
|
|
|
|
HLP_HELP1_EX, "\
|
|
\nUsage: %1!s!\n\
|
|
\nRemarks:\
|
|
\n Displays a list of commands.\n"
|
|
|
|
HLP_DUMP, "Displays a configuration script.\n"
|
|
|
|
HLP_DUMP_EX, "\
|
|
\nUsage: %1!s!\n\
|
|
\nRemarks:\
|
|
\n Creates a script that contains the current configuration. If saved to a\
|
|
\n file, this script can be used to restore altered configuration settings.\
|
|
\n"
|
|
|
|
MSG_ALIAS_NOT_FOUND, "The following alias was not found: %1!s!.\n"
|
|
MSG_CMD_FAILED, "The command cannot be executed.\n"
|
|
|
|
MSG_NOT_ENOUGH_MEMORY, "There is not enough memory available to complete this action.\n"
|
|
|
|
MSG_DLL_LOAD_FAILED, "The following helper DLL cannot be loaded: %1!s!.\n"
|
|
MSG_DLL_START_FAILED, "Initialization Function %1!s! in %2!s! failed to start with error code %3!d!\n"
|
|
|
|
MSG_OPEN_FAILED, "Windows cannot open the file named %1!s!.\n"
|
|
MSG_COMMIT_ERROR, "The commit call to %1!s! cannot be completed.\n"
|
|
MSG_NETSH_USAGE, "\
|
|
\nUsage: %1!s! [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\\]UserName] [-p Password | *]\
|
|
\n [Command | -f ScriptFile]\n"
|
|
|
|
MSG_NETSH_LOGIN_PASSWORD "Type the password for '%1!s!': "
|
|
|
|
MSG_HELP_FOOTER, "\n\
|
|
To view help for a command, type the command, followed by a space, and then\
|
|
\n type %1!s!.\n"
|
|
|
|
MSG_GLOBAL_COMMANDS, "\nGlobal commands:\n"
|
|
MSG_INHERITED_COMMANDS, "\n\
|
|
Commands inherited from the %1!s! context:\n"
|
|
MSG_LOCAL_COMMANDS, "\nCommands in this context:\n"
|
|
|
|
MSG_INVALID_TOPLEVEL_CMD "\n\
|
|
Invalid Top Level command name: %1!s!\n"
|
|
|
|
MSG_INVALID_CMD_GROUP "\n\
|
|
Invalid command group name: %1!s!\n"
|
|
|
|
MSG_INVALID_CMD "\n\
|
|
Invalid command name: %1!s!\n"
|
|
|
|
HLP_ADD_HELPER, "Installs a helper DLL.\n"
|
|
|
|
HLP_DEL_HELPER, "Removes a helper DLL.\n"
|
|
|
|
MSG_HELPER_HELP, "Changes to the `%2!s!%3!s!%1!s!' context.\n"
|
|
|
|
MSG_SHELL_CMD_HELP_HEADER, "\n\
|
|
The following commands are available:\n"
|
|
|
|
MSG_WARN_COULDNOTVERCHECKHOST, "\n\
|
|
WARNING: Could not obtain host information from machine: [%1!s!]. Some commands may not be available.\n"
|
|
|
|
MSG_SUBCONTEXT_LIST, "\n\
|
|
The following sub-contexts are available:\n"
|
|
|
|
HLP_ALIAS, "Adds an alias.\n"
|
|
|
|
HLP_ALIAS_EX, "\n\
|
|
Usage : %1!s! [alias-name] [string1 string 2 ...]\n\n\
|
|
\t If no arguments are specified, all aliases will be displayed.\n\
|
|
\t If alias-name is specified, then the equivalent string for it\n\
|
|
\t will be displayed (if found).\n\
|
|
\t If one or more strings are specified, then alias-name is set to \n\
|
|
\t these strings.\n\n"
|
|
|
|
HLP_UNALIAS, "Deletes an alias.\n"
|
|
|
|
HLP_UNALIAS_EX, "\n\
|
|
Usage : %1!s! alias-name\n\n\
|
|
\t Deletes alias alias-name.\n\n"
|
|
|
|
HLP_UPLEVEL, "Goes up one context level.\n"
|
|
|
|
HLP_UPLEVEL_EX, "\n\
|
|
Usage : %1!s!\n\n\
|
|
\t Goes up one context level.\n\n"
|
|
|
|
HLP_PUSHD, "Pushes current context on stack.\n"
|
|
|
|
HLP_PUSHD_EX, "\n\
|
|
Usage : %1!s!\n\n\
|
|
\t Pushes current context on stack.\n\n"
|
|
|
|
HLP_POPD, "Pops a context from the stack.\n"
|
|
|
|
HLP_POPD_EX, "\n\
|
|
Usage : %1!s!\n\n\
|
|
\t Pops a context from the stack.\n\n"
|
|
|
|
HLP_COMMIT, "Sets the current mode to online.\n"
|
|
|
|
HLP_COMMIT_EX, "\n\
|
|
Usage: %1!s!\n\n\
|
|
Remarks:\
|
|
\n Sets the current mode to online. Changes made while in online mode are\
|
|
\n immediately reflected in the running configuration. If changes are\
|
|
\n made while in offline mode, they are reflected in the running\
|
|
\n configuration when the mode is switched back to online.\n"
|
|
|
|
HLP_UNCOMMIT, "Sets the current mode to offline.\n"
|
|
|
|
HLP_UNCOMMIT_EX, "\n\
|
|
Usage: %1!s!\n\n\
|
|
Remarks:\
|
|
\n Sets the current mode to offline. Changes made while in offline mode\
|
|
\n are saved and made in the running configuration when the mode is\
|
|
\n switched back to online.\n"
|
|
|
|
HLP_SAVE, "Commits changes made while in offline mode.\n"
|
|
|
|
HLP_SAVE_EX, "\n\
|
|
Usage: %1!s!\n\n\
|
|
Remarks:\
|
|
\n Commits changes to the running configuration that were made while in\
|
|
\n offline mode. No action is taken for this command while in online\
|
|
\n mode.\n"
|
|
|
|
HLP_LOAD, "Runs a script file.\n"
|
|
|
|
HLP_LOAD_EX, "\n\
|
|
Usage: %1!s! <ScriptFile>\n\n\
|
|
Remarks:\
|
|
\n Loads the script file and runs it.\n"
|
|
|
|
HLP_SET_FILE, "Copy the console output to a file.\n"
|
|
|
|
HLP_SET_FILE_EX, "\n\
|
|
Usage: %1!s! [ mode= ] { open [ name= ] <filename> | append [ name = ] \n\
|
|
<filename> | close }\n\n\
|
|
Parameters:\n\
|
|
\n Tag Value \
|
|
\n mode - One of the following values:\
|
|
\n open: Creates a new file or overwrites an existing file and \
|
|
\n streams the console output to the file \
|
|
\n append: Opens an existing file and streams the console \
|
|
\n output to the end of the existing file \
|
|
\n close: Stops streaming and closes a file \
|
|
\n name - Name of the file (full path optional)\
|
|
\n\
|
|
Remarks:\
|
|
\n Copy the console output to a file.\n\
|
|
Example:\
|
|
\n %1!s! open c:\logfiles\logfile.txt \
|
|
\n The above command creates a file and logs all output to it.\n"
|
|
|
|
HLP_SET_MODE, "Sets the current mode to online or offline.\n"
|
|
|
|
HLP_SET_MODE_EX, "\n\
|
|
Usage: %1!s! [ mode= ] { online | offline }\n\n\
|
|
Parameters:\n\
|
|
\n Tag Value\
|
|
\n mode - One of the following values:\
|
|
\n online: Commit changes immediately\
|
|
\n offline: Delay commit until explicitly requested\n\n\
|
|
Remarks:\
|
|
\n Sets the current mode to online or offline.\n"
|
|
|
|
HLP_SET_MACHINE, "Sets the current machine on which to operate.\n"
|
|
|
|
HLP_SET_MACHINE_EX, "\n\
|
|
Usage: %1!s! [name=]<string> [user=][[DomainName\\]UserName] [pwd=][Password | *]\n\n\
|
|
Parameters:\n\
|
|
\n Tag Value\
|
|
\n name - Name of the machine on which to operate\
|
|
\n user - User name used to connect to remote machine\
|
|
\n pwd - Password used to connect to remote machine\n\n\
|
|
Remarks:\
|
|
\n Sets the current machine on which to operate. If a machine name\
|
|
\n is not specified, the local machine is used. A username and password \
|
|
\n cannot be used to connect to the local machine.\n"
|
|
|
|
HLP_SHOW_ALIAS, "Lists all defined aliases.\n"
|
|
|
|
HLP_SHOW_ALIAS_EX, "\n\
|
|
Usage: %1!s!\n\
|
|
Remarks:\
|
|
\n Lists all defined aliases.\n"
|
|
|
|
HLP_SHOW_HELPER, "Lists all the top-level helpers.\n"
|
|
|
|
HLP_SHOW_HELPER_EX, "\n\
|
|
Usage: %1!s!\n\
|
|
Remarks:\
|
|
\n Lists all the top-level helpers.\n"
|
|
|
|
MSG_SHOW_HELPER_HDR, "\
|
|
Helper GUID DLL Filename Command\n\
|
|
-------------------------------------- ------------ -------\n"
|
|
|
|
MSG_SHOW_HELPER_INFO, "%1!s! %2!-12s! "
|
|
MSG_SHOW_HELPER_INFO1, " "
|
|
MSG_SHOW_HELPER_INFO2, "%1!s!\n"
|
|
|
|
MSG_SHOW_HELPER_DLL_HDR, "\nThe following DLLs could not be loaded:\n"
|
|
MSG_SHOW_HELPER_ORPHAN_HDR, "\n\
|
|
The following helpers could not be started:\n\n\
|
|
GUID of Orphaned Helper DLL Filename GUID of Missing Parent\n\
|
|
-------------------------------------- ------------ ----------------------\n"
|
|
MSG_SHOW_HELPER_ORPHAN_INFO, "%1!s! %2!-12s! %3!s!\n"
|
|
|
|
HLP_SHOW_MODE, "Shows the current mode.\n"
|
|
|
|
HLP_SHOW_MODE_EX, "\n\
|
|
\t Shows the current mode (offline or online).\n\n"
|
|
|
|
HLP_ADD_HELPER_EX, "\n\
|
|
Usage: %1!s! <DllFileName>\n\n\
|
|
Remarks:\
|
|
\n Installs the specified helper DLL in netsh.\n\n\
|
|
Example:\
|
|
\n %1!s! ipmontr.dll\n\
|
|
\n The above command installs ipmontr.dll in netsh."
|
|
|
|
HLP_DEL_HELPER_EX, "\n\
|
|
Usage: %1!s! <DllFileName>\n\n\
|
|
Remarks:\
|
|
\n Removes the specified helper DLL from netsh. Note that after a helper\
|
|
\n is removed, it is no longer supported by netsh.\n"
|
|
|
|
HLP_FLUSH, "Discards changes made while in offline mode.\n"
|
|
|
|
HLP_FLUSH_EX, "\n\
|
|
Usage: %1!s!\n\n\
|
|
Remarks:\
|
|
\n Discards changes made while in the offline mode. This does not affect\
|
|
\n changes made while in online mode.\n"
|
|
|
|
HLP_EXIT, "Exits the program.\n"
|
|
|
|
HLP_EXIT_EX, "\n\
|
|
\t Exits the program.\n\n"
|
|
|
|
EMSG_INSTALL_KEY_FAILED, "Error creating key for %1!s! in the registry.\n"
|
|
|
|
EMSG_UNINSTALL_KEY_FAILED, "Error deleting key for %1!s! in the registry.\n"
|
|
|
|
EMSG_ALIASING_KEYWORD, "Cannot redefine a built-in command.\n"
|
|
|
|
EMSG_REMOTE_CONNECT_FAILED, "Could not connect to %1!s!.\n"
|
|
|
|
EMSG_INCOMPLETE_COMMAND, "\
|
|
The command is incomplete. The possible completions are:\n\n"
|
|
|
|
EMSG_DLL_FN_NOT_FOUND, "\
|
|
The function %1!s! was not found in %2!s!.\n"
|
|
}
|
|
|
|
#include <windows.h>
|
|
#include <ntverp.h>
|
|
|
|
#define VER_FILETYPE VFT_APP
|
|
#define VER_FILESUBTYPE VFT2_UNKNOWN
|
|
#define VER_FILEDESCRIPTION_STR "Network Command Shell"
|
|
#define VER_INTERNALNAME_STR "netsh.exe"
|
|
#define VER_ORIGINALFILENAME_STR "netsh.exe"
|
|
|
|
#include "common.ver" // NT5.0 version file.
|