diff --git a/cfg_checker/cli/command.py b/cfg_checker/cli/command.py
index e6d9cd9..8e715f2 100644
--- a/cfg_checker/cli/command.py
+++ b/cfg_checker/cli/command.py
@@ -33,10 +33,11 @@
 def execute_command(args, command):
     # Validate the commands
     # check command
+    _type = args.type.replace("-", "_") if "-" in args.type else args.type
     if command not in commands:
         logger_cli.info("\n# Please, type a command listed above")
         return 0
-    elif args.type not in commands[command]:
+    elif _type not in commands[command]:
         # check type
         logger_cli.info(
             "\n# Please, select '{}' command type listed above".format(
@@ -46,7 +47,7 @@
         return 0
     else:
         # form function name to call
-        _method_name = "do_" + args.type
+        _method_name = "do_" + _type
         _target_module = __import__(
             mods_prefix + command,
             fromlist=[""]
@@ -79,11 +80,19 @@
 
     # parse arguments
     try:
-        args = my_parser.parse_args()
+        args, unknown = my_parser.parse_known_args()
     except TypeError:
         logger_cli.info("\n# Please, check arguments")
         sys.exit(0)
 
+    if unknown:
+        logger_cli.error(
+            "# Unexpected arguments: {}".format(
+                ", ".join(["'{}'".format(a) for a in unknown])
+            )
+        )
+        sys.exit(1)
+
     # force use of sudo
     config.ssh_uses_sudo = True
 
