diff --git a/CMakeLists.txt b/CMakeLists.txt
index f0583b8..c9a6348 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -611,7 +611,7 @@
   ${ZEPHYR_BASE}/scripts/build/subfolder_list.py
   --directory        ${ZEPHYR_BASE}/include      # Walk this directory
   --out-file         ${syscalls_subdirs_txt}     # Write file with discovered folder
-  --trigger          ${syscalls_subdirs_trigger} # Trigger file that is used for json generation
+  --trigger-file     ${syscalls_subdirs_trigger} # Trigger file that is used for json generation
   ${syscalls_links}                              # If defined, create symlinks for dependencies
 )
 file(STRINGS ${syscalls_subdirs_txt} PARSE_SYSCALLS_PATHS_DEPENDS ENCODING UTF-8)
@@ -644,7 +644,7 @@
     ${ZEPHYR_BASE}/scripts/build/subfolder_list.py
     --directory        ${ZEPHYR_BASE}/include      # Walk this directory
     --out-file         ${syscalls_subdirs_txt}     # Write file with discovered folder
-    --trigger          ${syscalls_subdirs_trigger} # Trigger file that is used for json generation
+    --trigger-file     ${syscalls_subdirs_trigger} # Trigger file that is used for json generation
     ${syscalls_links}                              # If defined, create symlinks for dependencies
     DEPENDS ${PARSE_SYSCALLS_PATHS_DEPENDS}
   )
@@ -740,7 +740,7 @@
   )
 
 # This is passed into all calls to the gen_kobject_list.py script.
-set(gen_kobject_list_include_args --include ${struct_tags_json})
+set(gen_kobject_list_include_args --include-subsystem-list ${struct_tags_json})
 
 set(DRV_VALIDATION ${PROJECT_BINARY_DIR}/include/generated/driver-validation.h)
 add_custom_command(
diff --git a/arch/x86/gen_gdt.py b/arch/x86/gen_gdt.py
index a5875835..8bb99e9 100755
--- a/arch/x86/gen_gdt.py
+++ b/arch/x86/gen_gdt.py
@@ -158,7 +158,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-k", "--kernel", required=True,
                         help="Zephyr kernel image")
diff --git a/arch/x86/gen_idt.py b/arch/x86/gen_idt.py
index 7e5932d..3ef957c 100755
--- a/arch/x86/gen_idt.py
+++ b/arch/x86/gen_idt.py
@@ -251,7 +251,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-m", "--vector-map", required=True,
                         help="Output file mapping IRQ lines to IDT vectors")
diff --git a/arch/x86/gen_mmu.py b/arch/x86/gen_mmu.py
index 77d5ca1..e09e320 100755
--- a/arch/x86/gen_mmu.py
+++ b/arch/x86/gen_mmu.py
@@ -599,7 +599,7 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-k", "--kernel", required=True,
                         help="path to prebuilt kernel ELF binary")
diff --git a/arch/x86/zefi/zefi.py b/arch/x86/zefi/zefi.py
index 1e95958..99c188e 100755
--- a/arch/x86/zefi/zefi.py
+++ b/arch/x86/zefi/zefi.py
@@ -142,7 +142,7 @@
 def parse_args():
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-c", "--compiler", required=True, help="Compiler to be used")
     parser.add_argument("-o", "--objcopy", required=True, help="objcopy to be used")
diff --git a/doc/_scripts/gen_devicetree_rest.py b/doc/_scripts/gen_devicetree_rest.py
index b87cb1d..dbd6227 100644
--- a/doc/_scripts/gen_devicetree_rest.py
+++ b/doc/_scripts/gen_devicetree_rest.py
@@ -172,7 +172,7 @@
 def parse_args():
     # Parse command line arguments from sys.argv.
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument('-v', '--verbose', default=0, action='count',
                         help='increase verbosity; may be given multiple times')
     parser.add_argument('--vendor-prefixes', required=True,
diff --git a/samples/modules/tflite-micro/magic_wand/train/train.py b/samples/modules/tflite-micro/magic_wand/train/train.py
index 213c7c7..5c98150 100644
--- a/samples/modules/tflite-micro/magic_wand/train/train.py
+++ b/samples/modules/tflite-micro/magic_wand/train/train.py
@@ -176,7 +176,7 @@
 
 
 if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument("--model", "-m")
     parser.add_argument("--person", "-p")
     args = parser.parse_args()
diff --git a/samples/net/cloud/google_iot_mqtt/src/private_info/create_keys.py b/samples/net/cloud/google_iot_mqtt/src/private_info/create_keys.py
index c5edfc7..cb0fbeb 100755
--- a/samples/net/cloud/google_iot_mqtt/src/private_info/create_keys.py
+++ b/samples/net/cloud/google_iot_mqtt/src/private_info/create_keys.py
@@ -12,7 +12,7 @@
     global args
 
     parser = argparse.ArgumentParser(description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument(
         "-d", "--device", required=True,
diff --git a/samples/subsys/zbus/remote_mock/remote_mock.py b/samples/subsys/zbus/remote_mock/remote_mock.py
index 589ef4f..71b0d83 100755
--- a/samples/subsys/zbus/remote_mock/remote_mock.py
+++ b/samples/subsys/zbus/remote_mock/remote_mock.py
@@ -14,7 +14,7 @@
 ]"""
 
 channels = json.loads(j)
-parser = argparse.ArgumentParser(description='Read zbus events via serial.')
+parser = argparse.ArgumentParser(description='Read zbus events via serial.', allow_abbrev=False)
 parser.add_argument("port", type=str, help='The tty or COM port to be used')
 
 args = parser.parse_args()
diff --git a/samples/subsys/zbus/uart_bridge/decoder.py b/samples/subsys/zbus/uart_bridge/decoder.py
index 20c0a6c..64a7df7 100755
--- a/samples/subsys/zbus/uart_bridge/decoder.py
+++ b/samples/subsys/zbus/uart_bridge/decoder.py
@@ -14,7 +14,7 @@
 ]
 """
 
-parser = argparse.ArgumentParser(description='Read zbus events via serial.')
+parser = argparse.ArgumentParser(description='Read zbus events via serial.', allow_abbrev=False)
 parser.add_argument("port", type=str, help='The tty or COM port to be used')
 
 args = parser.parse_args()
diff --git a/samples/tfm_integration/psa_firmware/split-header.py b/samples/tfm_integration/psa_firmware/split-header.py
index 8bf9841..165ccb1 100644
--- a/samples/tfm_integration/psa_firmware/split-header.py
+++ b/samples/tfm_integration/psa_firmware/split-header.py
@@ -20,7 +20,7 @@
     inhex.tobinfile(header, start=start, end=end-1)
 
 if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument('input')
     parser.add_argument('image')
     parser.add_argument('header')
diff --git a/scripts/build/file2hex.py b/scripts/build/file2hex.py
index 0fcb9eb..34857d4 100755
--- a/scripts/build/file2hex.py
+++ b/scripts/build/file2hex.py
@@ -23,7 +23,7 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-f", "--file", required=True, help="Input file")
     parser.add_argument("-g", "--gzip", action="store_true",
diff --git a/scripts/build/gen_app_partitions.py b/scripts/build/gen_app_partitions.py
index 2017011..a1e691a 100644
--- a/scripts/build/gen_app_partitions.py
+++ b/scripts/build/gen_app_partitions.py
@@ -232,7 +232,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-d", "--directory", required=False, default=None,
                         help="Root build directory")
     parser.add_argument("-e", "--elf", required=False, default=None,
diff --git a/scripts/build/gen_cfb_font_header.py b/scripts/build/gen_cfb_font_header.py
index 380237e..dacb76c 100755
--- a/scripts/build/gen_cfb_font_header.py
+++ b/scripts/build/gen_cfb_font_header.py
@@ -194,7 +194,7 @@
     global args
     parser = argparse.ArgumentParser(
         description="Character Frame Buffer (CFB) font header file generator",
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument(
         "-z", "--zephyr-base",
diff --git a/scripts/build/gen_handles.py b/scripts/build/gen_handles.py
index 511a03f..366f9a7 100755
--- a/scripts/build/gen_handles.py
+++ b/scripts/build/gen_handles.py
@@ -43,7 +43,7 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-k", "--kernel", required=True,
                         help="Input zephyr ELF binary")
diff --git a/scripts/build/gen_image_info.py b/scripts/build/gen_image_info.py
index 8403a27..341c84c 100644
--- a/scripts/build/gen_image_info.py
+++ b/scripts/build/gen_image_info.py
@@ -66,7 +66,7 @@
     parser = argparse.ArgumentParser(description='''
     Process ELF file and extract image information.
     Create header file with extracted image information which can be included
-    in other build systems.''')
+    in other build systems.''', allow_abbrev=False)
 
     parser.add_argument('--header-file', required=True,
                         help="""Header file to write with image data.""")
diff --git a/scripts/build/gen_isr_tables.py b/scripts/build/gen_isr_tables.py
index 92b2833..96d5ac9 100755
--- a/scripts/build/gen_isr_tables.py
+++ b/scripts/build/gen_isr_tables.py
@@ -105,7 +105,7 @@
     global args
 
     parser = argparse.ArgumentParser(description=__doc__,
-            formatter_class=argparse.RawDescriptionHelpFormatter)
+            formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-e", "--big-endian", action="store_true",
             help="Target encodes data in big-endian format (little endian is "
diff --git a/scripts/build/gen_kobject_list.py b/scripts/build/gen_kobject_list.py
index 9a30540..fd716bf 100755
--- a/scripts/build/gen_kobject_list.py
+++ b/scripts/build/gen_kobject_list.py
@@ -981,7 +981,7 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-k", "--kernel", required=False,
                         help="Input zephyr ELF binary")
diff --git a/scripts/build/gen_kobject_placeholders.py b/scripts/build/gen_kobject_placeholders.py
index 3cbad0a..52e2dc2 100755
--- a/scripts/build/gen_kobject_placeholders.py
+++ b/scripts/build/gen_kobject_placeholders.py
@@ -108,7 +108,7 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("--object", required=True,
                         help="Points to kobject_prebuilt_hash.c.obj")
diff --git a/scripts/build/gen_offset_header.py b/scripts/build/gen_offset_header.py
index 11cb722..3eb9f21 100755
--- a/scripts/build/gen_offset_header.py
+++ b/scripts/build/gen_offset_header.py
@@ -62,7 +62,7 @@
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument(
         "-i",
diff --git a/scripts/build/gen_relocate_app.py b/scripts/build/gen_relocate_app.py
index fb312ac..c22dda8 100644
--- a/scripts/build/gen_relocate_app.py
+++ b/scripts/build/gen_relocate_app.py
@@ -407,7 +407,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-d", "--directory", required=True,
                         help="obj file's directory")
     parser.add_argument("-i", "--input_rel_dict", required=True,
diff --git a/scripts/build/gen_strerror_table.py b/scripts/build/gen_strerror_table.py
index 4e04d79..7ec91df 100755
--- a/scripts/build/gen_strerror_table.py
+++ b/scripts/build/gen_strerror_table.py
@@ -79,7 +79,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument(
         '-i',
         '--input',
diff --git a/scripts/build/gen_syscalls.py b/scripts/build/gen_syscalls.py
index 32f7c6d..5741315 100755
--- a/scripts/build/gen_syscalls.py
+++ b/scripts/build/gen_syscalls.py
@@ -387,7 +387,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-i", "--json-file", required=True,
                         help="Read syscall information from json file")
diff --git a/scripts/build/mergehex.py b/scripts/build/mergehex.py
index aba8b43..6d81dbe 100644
--- a/scripts/build/mergehex.py
+++ b/scripts/build/mergehex.py
@@ -35,7 +35,7 @@
 def parse_args():
     parser = argparse.ArgumentParser(
         description="Merge hex files.",
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-o", "--output", required=False, default="merged.hex",
                         type=argparse.FileType('w', encoding='UTF-8'),
                         help="Output file name.")
diff --git a/scripts/build/parse_syscalls.py b/scripts/build/parse_syscalls.py
index 9994efd..b9aef71 100644
--- a/scripts/build/parse_syscalls.py
+++ b/scripts/build/parse_syscalls.py
@@ -110,7 +110,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-i", "--include", required=True, action='append',
                         help='''include directories recursively scanned
diff --git a/scripts/build/process_gperf.py b/scripts/build/process_gperf.py
index c086ea1..002cd9c 100755
--- a/scripts/build/process_gperf.py
+++ b/scripts/build/process_gperf.py
@@ -134,7 +134,8 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter,
+        allow_abbrev=False)
 
     parser.add_argument("-i", "--input", required=True,
                         help="Input C file from gperf")
diff --git a/scripts/build/subfolder_list.py b/scripts/build/subfolder_list.py
index 8f52889..d6bfdcc 100644
--- a/scripts/build/subfolder_list.py
+++ b/scripts/build/subfolder_list.py
@@ -18,7 +18,8 @@
     """Parse command line arguments and options"""
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter,
+        allow_abbrev=False)
 
     parser.add_argument('-d', '--directory', required=True,
                         help='Directory to walk for sub-directory discovery')
diff --git a/scripts/build/uf2conv.py b/scripts/build/uf2conv.py
index e92c2ec..5da08ef 100755
--- a/scripts/build/uf2conv.py
+++ b/scripts/build/uf2conv.py
@@ -247,7 +247,8 @@
     def error(msg):
         print(msg)
         sys.exit(1)
-    parser = argparse.ArgumentParser(description='Convert to UF2 or flash directly.')
+    parser = argparse.ArgumentParser(description='Convert to UF2 or flash directly.',
+                                     allow_abbrev=False)
     parser.add_argument('input', metavar='INPUT', type=str, nargs='?',
                         help='input file (HEX, BIN or UF2)')
     parser.add_argument('-b' , '--base', dest='base', type=str,
diff --git a/scripts/ci/check_compliance.py b/scripts/ci/check_compliance.py
index fc2c4f7..218f1cd 100755
--- a/scripts/ci/check_compliance.py
+++ b/scripts/ci/check_compliance.py
@@ -327,7 +327,7 @@
                                                "gen_driver_kconfig_dts.py")
         binding_path = os.path.join(ZEPHYR_BASE, "dts", "bindings")
         cmd = [sys.executable, zephyr_drv_kconfig_path,
-               '--kconfig-out', kconfig_dts_file, '--bindings', binding_path]
+               '--kconfig-out', kconfig_dts_file, '--bindings-dirs', binding_path]
         try:
             subprocess.run(cmd, check=True, stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT)
@@ -1077,7 +1077,7 @@
 
     default_range = 'HEAD~1..HEAD'
     parser = argparse.ArgumentParser(
-        description="Check for coding style and documentation warnings.")
+        description="Check for coding style and documentation warnings.", allow_abbrev=False)
     parser.add_argument('-c', '--commits', default=default_range,
                         help=f'''Commit range in the form: a..[b], default is
                         {default_range}''')
diff --git a/scripts/ci/guideline_check.py b/scripts/ci/guideline_check.py
index 85b1bc0..0d4266e 100755
--- a/scripts/ci/guideline_check.py
+++ b/scripts/ci/guideline_check.py
@@ -38,7 +38,7 @@
 
 def parse_args():
     parser = argparse.ArgumentParser(
-        description="Check if change requires full twister")
+        description="Check if change requires full twister", allow_abbrev=False)
     parser.add_argument('-c', '--commits', default=None,
                         help="Commit range in the form: a..b")
     parser.add_argument("-o", "--output", required=False,
diff --git a/scripts/ci/test_plan.py b/scripts/ci/test_plan.py
index 6d87b57..6d8fc91 100755
--- a/scripts/ci/test_plan.py
+++ b/scripts/ci/test_plan.py
@@ -293,7 +293,8 @@
 
 def parse_args():
     parser = argparse.ArgumentParser(
-                description="Generate twister argument files based on modified file")
+                description="Generate twister argument files based on modified file",
+                allow_abbrev=False)
     parser.add_argument('-c', '--commits', default=None,
             help="Commit range in the form: a..b")
     parser.add_argument('-m', '--modified-files', default=None,
diff --git a/scripts/ci/upload_test_results.py b/scripts/ci/upload_test_results.py
index dc84a16..5918dca 100755
--- a/scripts/ci/upload_test_results.py
+++ b/scripts/ci/upload_test_results.py
@@ -46,7 +46,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument('-u', '--user', help='username')
     parser.add_argument('-p', '--password', help='password')
     parser.add_argument('-i', '--index', help='index to push to.', required=True)
diff --git a/scripts/ci/version_mgr.py b/scripts/ci/version_mgr.py
index 4dbcda7..3957595 100755
--- a/scripts/ci/version_mgr.py
+++ b/scripts/ci/version_mgr.py
@@ -25,7 +25,7 @@
 
 def parse_args():
     parser = argparse.ArgumentParser(
-                description="Manage versions to be tested.")
+                description="Manage versions to be tested.", allow_abbrev=False)
     parser.add_argument('-l', '--list', action="store_true",
                         help="List all published versions")
     parser.add_argument('-u', '--update',
diff --git a/scripts/coredump/coredump_gdbserver.py b/scripts/coredump/coredump_gdbserver.py
index a1f0503..f53e71b 100755
--- a/scripts/coredump/coredump_gdbserver.py
+++ b/scripts/coredump/coredump_gdbserver.py
@@ -22,7 +22,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
 
     parser.add_argument("elffile", help="Zephyr ELF binary")
     parser.add_argument("logfile", help="Coredump binary log file")
diff --git a/scripts/coredump/coredump_serial_log_parser.py b/scripts/coredump/coredump_serial_log_parser.py
index 32a7f4d..43e2900 100755
--- a/scripts/coredump/coredump_serial_log_parser.py
+++ b/scripts/coredump/coredump_serial_log_parser.py
@@ -17,7 +17,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
 
     parser.add_argument("infile", help="Serial Log File")
     parser.add_argument("outfile",
diff --git a/scripts/dts/gen_defines.py b/scripts/dts/gen_defines.py
index 9184af4..5f97320 100755
--- a/scripts/dts/gen_defines.py
+++ b/scripts/dts/gen_defines.py
@@ -185,7 +185,7 @@
 def parse_args():
     # Returns parsed command-line arguments
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument("--dts", required=True, help="DTS file")
     parser.add_argument("--dtc-flags",
                         help="'dtc' devicetree compiler flags, some of which "
diff --git a/scripts/dts/gen_driver_kconfig_dts.py b/scripts/dts/gen_driver_kconfig_dts.py
index 36ae9ea..5ede868 100755
--- a/scripts/dts/gen_driver_kconfig_dts.py
+++ b/scripts/dts/gen_driver_kconfig_dts.py
@@ -36,7 +36,7 @@
 def parse_args():
     # Returns parsed command-line arguments
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument("--kconfig-out", required=True,
                         help="path to write the Kconfig file")
     parser.add_argument("--bindings-dirs", nargs='+', required=True,
diff --git a/scripts/dts/gen_dts_cmake.py b/scripts/dts/gen_dts_cmake.py
index ff6b028..6fa4a34 100755
--- a/scripts/dts/gen_dts_cmake.py
+++ b/scripts/dts/gen_dts_cmake.py
@@ -52,7 +52,7 @@
 def parse_args():
     # Returns parsed command-line arguments
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument("--cmake-out", required=True,
                         help="path to write the CMake property file")
     parser.add_argument("--edt-pickle", required=True,
diff --git a/scripts/dump_bugs_pickle.py b/scripts/dump_bugs_pickle.py
index 892cd32..732ba7c 100755
--- a/scripts/dump_bugs_pickle.py
+++ b/scripts/dump_bugs_pickle.py
@@ -15,7 +15,7 @@
 
 def parse_args() -> argparse.Namespace:
     parser = argparse.ArgumentParser(
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument('pickle_file', metavar='PICKLE-FILE', type=Path,
                         help='pickle file containing list of issues')
diff --git a/scripts/footprint/compare_footprint b/scripts/footprint/compare_footprint
index 69403c0..058684b 100755
--- a/scripts/footprint/compare_footprint
+++ b/scripts/footprint/compare_footprint
@@ -70,7 +70,8 @@
 def parse_args():
     parser = argparse.ArgumentParser(
                 description="Compare footprint apps RAM and ROM sizes. Note: "
-                "To run it you need to set up the same environment as twister.")
+                "To run it you need to set up the same environment as twister.",
+                allow_abbrev=False)
     parser.add_argument('-b', '--base-commit', default=None,
                         help="Commit ID to use as base for footprint "
                                     "compare. Default is parent current commit."
diff --git a/scripts/footprint/fpdiff.py b/scripts/footprint/fpdiff.py
index 6f62fc6..fe9c40b 100755
--- a/scripts/footprint/fpdiff.py
+++ b/scripts/footprint/fpdiff.py
@@ -27,7 +27,7 @@
 
 def parse_args():
     parser = argparse.ArgumentParser(
-                description="Compare footprint sizes of two builds.")
+                description="Compare footprint sizes of two builds.", allow_abbrev=False)
     parser.add_argument("file1", help="First file")
     parser.add_argument("file2", help="Second file")
 
diff --git a/scripts/footprint/size_report b/scripts/footprint/size_report
index 7b4ae7d..4263a2c 100755
--- a/scripts/footprint/size_report
+++ b/scripts/footprint/size_report
@@ -705,7 +705,7 @@
     """
     global args
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
 
     parser.add_argument("-k", "--kernel", required=True,
                         help="Zephyr ELF binary")
diff --git a/scripts/footprint/track.py b/scripts/footprint/track.py
index 86e76bb..ace95ce 100755
--- a/scripts/footprint/track.py
+++ b/scripts/footprint/track.py
@@ -12,7 +12,8 @@
 
 def parse_args():
     parser = argparse.ArgumentParser(
-                description="Generate footprint data based on a predefined plan.")
+                description="Generate footprint data based on a predefined plan.",
+                allow_abbrev=False)
     parser.add_argument("-p", "--plan", help="Path of test plan", required=True)
 
     return parser.parse_args()
diff --git a/scripts/footprint/upload_data.py b/scripts/footprint/upload_data.py
index 0084656..b684d4c 100755
--- a/scripts/footprint/upload_data.py
+++ b/scripts/footprint/upload_data.py
@@ -51,7 +51,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-d", "--data", help="Data Directory")
     parser.add_argument("-y", "--dryrun", action="store_true", help="Dry run, do not upload to database")
diff --git a/scripts/gen_gcov_files.py b/scripts/gen_gcov_files.py
index f4837c0..c9ebc9b 100755
--- a/scripts/gen_gcov_files.py
+++ b/scripts/gen_gcov_files.py
@@ -65,7 +65,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-i", "--input", required=True,
                         help="Input dump data")
     parser.add_argument("-v", "--verbose", action="count", default=0,
diff --git a/scripts/generate_usb_vif/generate_vif.py b/scripts/generate_usb_vif/generate_vif.py
index d27e4e6..6144ee9 100644
--- a/scripts/generate_usb_vif/generate_vif.py
+++ b/scripts/generate_usb_vif/generate_vif.py
@@ -248,7 +248,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument("--edt-pickle", required=True,
                         help="path to read the pickled edtlib.EDT object from")
     parser.add_argument("--compatible", required=True,
diff --git a/scripts/get_maintainer.py b/scripts/get_maintainer.py
index f9f02a6..6ce6551 100755
--- a/scripts/get_maintainer.py
+++ b/scripts/get_maintainer.py
@@ -54,7 +54,7 @@
 
     parser = argparse.ArgumentParser(
         formatter_class=argparse.RawDescriptionHelpFormatter,
-        description=__doc__)
+        description=__doc__, allow_abbrev=False)
 
     parser.add_argument(
         "-m", "--maintainers",
diff --git a/scripts/kconfig/kconfig.py b/scripts/kconfig/kconfig.py
index b9a139d..c7e5cf7 100755
--- a/scripts/kconfig/kconfig.py
+++ b/scripts/kconfig/kconfig.py
@@ -250,7 +250,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
 
     parser.add_argument("--handwritten-input-configs",
                         action="store_true",
diff --git a/scripts/kconfig/kconfiglib.py b/scripts/kconfig/kconfiglib.py
index 14142c7..75ff3c1 100644
--- a/scripts/kconfig/kconfiglib.py
+++ b/scripts/kconfig/kconfiglib.py
@@ -6202,14 +6202,14 @@
     Exits with sys.exit() (which raises SystemExit) on errors.
 
     description (default: None):
-      The 'description' passed to argparse.ArgumentParser().
+      The 'description' passed to argparse.ArgumentParser(allow_abbrev=False).
       argparse.RawDescriptionHelpFormatter is used, so formatting is preserved.
     """
     import argparse
 
     parser = argparse.ArgumentParser(
         formatter_class=argparse.RawDescriptionHelpFormatter,
-        description=description)
+        description=description, allow_abbrev=False)
 
     parser.add_argument(
         "kconfig",
diff --git a/scripts/kconfig/lint.py b/scripts/kconfig/lint.py
index fa78473..30064c3 100755
--- a/scripts/kconfig/lint.py
+++ b/scripts/kconfig/lint.py
@@ -56,7 +56,7 @@
 
     parser = argparse.ArgumentParser(
         formatter_class=argparse.RawTextHelpFormatter,
-        description=__doc__)
+        description=__doc__, allow_abbrev=False)
 
     parser.add_argument(
         "-n", "--check-always-n",
diff --git a/scripts/list_boards.py b/scripts/list_boards.py
index 92478f9..4c7c87c 100755
--- a/scripts/list_boards.py
+++ b/scripts/list_boards.py
@@ -88,7 +88,7 @@
     return ret
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     add_args(parser)
     return parser.parse_args()
 
diff --git a/scripts/logging/dictionary/database_gen.py b/scripts/logging/dictionary/database_gen.py
index d70843e..386c665 100755
--- a/scripts/logging/dictionary/database_gen.py
+++ b/scripts/logging/dictionary/database_gen.py
@@ -74,7 +74,7 @@
 
 def parse_args():
     """Parse command line arguments"""
-    argparser = argparse.ArgumentParser()
+    argparser = argparse.ArgumentParser(allow_abbrev=False)
 
     argparser.add_argument("elffile", help="Zephyr ELF binary")
     argparser.add_argument("--build", help="Build ID")
diff --git a/scripts/logging/dictionary/log_parser.py b/scripts/logging/dictionary/log_parser.py
index a77e8fe..eef60c0 100755
--- a/scripts/logging/dictionary/log_parser.py
+++ b/scripts/logging/dictionary/log_parser.py
@@ -28,7 +28,7 @@
 
 def parse_args():
     """Parse command line arguments"""
-    argparser = argparse.ArgumentParser()
+    argparser = argparse.ArgumentParser(allow_abbrev=False)
 
     argparser.add_argument("dbfile", help="Dictionary Logging Database file")
     argparser.add_argument("logfile", help="Log Data file")
diff --git a/scripts/make_bugs_pickle.py b/scripts/make_bugs_pickle.py
index 91f6b5b..7f8f1c0 100755
--- a/scripts/make_bugs_pickle.py
+++ b/scripts/make_bugs_pickle.py
@@ -35,7 +35,7 @@
     https://pygithub.readthedocs.io/en/latest/github_objects/Issue.html
   - pickle: https://docs.python.org/3/library/pickle.html
 ''',
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument('out_file', metavar='OUTFILE', type=Path, nargs='?',
                         help='''file to write pickle data to (default:
                         stdout)''')
diff --git a/scripts/pylib/twister/twisterlib/environment.py b/scripts/pylib/twister/twisterlib/environment.py
index a7e105c..d6a649d 100644
--- a/scripts/pylib/twister/twisterlib/environment.py
+++ b/scripts/pylib/twister/twisterlib/environment.py
@@ -39,7 +39,8 @@
     if parser is None:
         parser = argparse.ArgumentParser(
             description=__doc__,
-            formatter_class=argparse.RawDescriptionHelpFormatter)
+            formatter_class=argparse.RawDescriptionHelpFormatter,
+            allow_abbrev=False)
     parser.fromfile_prefix_chars = "+"
 
     case_select = parser.add_argument_group("Test case selection",
diff --git a/scripts/release/bug_bash.py b/scripts/release/bug_bash.py
index 019224e..5b43ab0 100755
--- a/scripts/release/bug_bash.py
+++ b/scripts/release/bug_bash.py
@@ -22,7 +22,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument('-a', '--all', dest='all',
                         help='Show all bugs squashed', action='store_true')
     parser.add_argument('-t', '--token', dest='tokenfile',
diff --git a/scripts/release/list_backports.py b/scripts/release/list_backports.py
index da47568..0b20364 100755
--- a/scripts/release/list_backports.py
+++ b/scripts/release/list_backports.py
@@ -56,7 +56,7 @@
 
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument('-t', '--token', dest='tokenfile',
                         help='File containing GitHub token (alternatively, use GITHUB_TOKEN env variable)', metavar='FILE')
     parser.add_argument('-b', '--base', dest='base',
diff --git a/scripts/release/list_issues.py b/scripts/release/list_issues.py
index 97a96ee..f56281d 100755
--- a/scripts/release/list_issues.py
+++ b/scripts/release/list_issues.py
@@ -119,7 +119,7 @@
 
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-o", "--org", default="zephyrproject-rtos",
                         help="Github organisation")
diff --git a/scripts/set_assignees.py b/scripts/set_assignees.py
index 15564f0..a636098 100755
--- a/scripts/set_assignees.py
+++ b/scripts/set_assignees.py
@@ -24,7 +24,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
 
     parser.add_argument("-M", "--maintainer-file", required=False, default="MAINTAINERS.yml",
                         help="Maintainer file to be used.")
diff --git a/scripts/support/quartus-flash.py b/scripts/support/quartus-flash.py
index 0931f3a..fab6622 100755
--- a/scripts/support/quartus-flash.py
+++ b/scripts/support/quartus-flash.py
@@ -118,7 +118,7 @@
     pof_file.close()
 
 def main():
-    parser = argparse.ArgumentParser(description="Flash zephyr onto Altera boards")
+    parser = argparse.ArgumentParser(description="Flash zephyr onto Altera boards", allow_abbrev=False)
     parser.add_argument("-s", "--sof",
             help=".sof file with Nios II CPU configuration")
     parser.add_argument("-k", "--kernel",
diff --git a/scripts/tracing/parse_ctf.py b/scripts/tracing/parse_ctf.py
index dac1539..41d81cd 100644
--- a/scripts/tracing/parse_ctf.py
+++ b/scripts/tracing/parse_ctf.py
@@ -31,7 +31,7 @@
 def parse_args():
     parser = argparse.ArgumentParser(
             description=__doc__,
-            formatter_class=argparse.RawDescriptionHelpFormatter)
+            formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-t", "--trace",
             required=True,
             help="tracing data (directory with metadata and trace file)")
diff --git a/scripts/tracing/trace_capture_uart.py b/scripts/tracing/trace_capture_uart.py
index 03316cd..ad2bf69 100644
--- a/scripts/tracing/trace_capture_uart.py
+++ b/scripts/tracing/trace_capture_uart.py
@@ -15,7 +15,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-d", "--serial_port", required=True,
                         help="serial port")
     parser.add_argument("-b", "--serial_baudrate", required=True,
diff --git a/scripts/tracing/trace_capture_usb.py b/scripts/tracing/trace_capture_usb.py
index 6665e41..dbee1ae 100644
--- a/scripts/tracing/trace_capture_usb.py
+++ b/scripts/tracing/trace_capture_usb.py
@@ -16,7 +16,7 @@
     global args
     parser = argparse.ArgumentParser(
         description=__doc__,
-        formatter_class=argparse.RawDescriptionHelpFormatter)
+        formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
     parser.add_argument("-v", "--vendor_id", required=True,
                         help="usb device vendor id")
     parser.add_argument("-p", "--product_id", required=True,
diff --git a/scripts/utils/migrate_includes.py b/scripts/utils/migrate_includes.py
index 643eeb4..14bd823 100644
--- a/scripts/utils/migrate_includes.py
+++ b/scripts/utils/migrate_includes.py
@@ -75,7 +75,7 @@
 
 
 if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument(
         "-p", "--project", type=Path, required=True, help="Zephyr-based project path"
     )
diff --git a/scripts/utils/migrate_mcumgr_kconfigs.py b/scripts/utils/migrate_mcumgr_kconfigs.py
index 88a64c6..5ce41d7 100644
--- a/scripts/utils/migrate_mcumgr_kconfigs.py
+++ b/scripts/utils/migrate_mcumgr_kconfigs.py
@@ -151,7 +151,7 @@
                 process_file(p)
 
 if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     parser.add_argument(
         "-r", "--root", type=Path, required=True, help="Zephyr-based project path"
     )
diff --git a/scripts/utils/pinctrl_nrf_migrate.py b/scripts/utils/pinctrl_nrf_migrate.py
index 512313d..ef1878a 100644
--- a/scripts/utils/pinctrl_nrf_migrate.py
+++ b/scripts/utils/pinctrl_nrf_migrate.py
@@ -665,7 +665,7 @@
 
 
 if __name__ == "__main__":
-    parser = argparse.ArgumentParser("pinctrl migration utility for nRF")
+    parser = argparse.ArgumentParser("pinctrl migration utility for nRF", allow_abbrev=False)
     parser.add_argument(
         "-i", "--input", type=Path, required=True, help="Board DTS file"
     )
diff --git a/scripts/west_commands/run_common.py b/scripts/west_commands/run_common.py
index ce529ad..34f2eb2 100644
--- a/scripts/west_commands/run_common.py
+++ b/scripts/west_commands/run_common.py
@@ -224,7 +224,7 @@
     #   arguments
     # - create a RunnerConfig using 'user_args' and the result
     #   of parsing 'final_argv'
-    parser = argparse.ArgumentParser(prog=runner_name)
+    parser = argparse.ArgumentParser(prog=runner_name, allow_abbrev=False)
     add_parser_common(command, parser=parser)
     runner_cls.add_parser(parser)
     args, unknown = parser.parse_known_args(args=final_argv)
@@ -504,7 +504,7 @@
     # Print help text for class-specific command line options for the
     # given runner class.
 
-    dummy_parser = argparse.ArgumentParser(prog='', add_help=False)
+    dummy_parser = argparse.ArgumentParser(prog='', add_help=False, allow_abbrev=False)
     cls.add_parser(dummy_parser)
     formatter = dummy_parser._get_formatter()
     for group in dummy_parser._action_groups:
diff --git a/scripts/west_commands/tests/test_blackmagicprobe.py b/scripts/west_commands/tests/test_blackmagicprobe.py
index 992d396..6e083d8 100644
--- a/scripts/west_commands/tests/test_blackmagicprobe.py
+++ b/scripts/west_commands/tests/test_blackmagicprobe.py
@@ -71,7 +71,7 @@
 def test_blackmagicprobe_create(cc, req, command, runner_config):
     '''Test commands using a runner created from command line parameters.'''
     args = ['--gdb-serial', TEST_GDB_SERIAL]
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     BlackMagicProbeRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = BlackMagicProbeRunner.create(runner_config, arg_namespace)
@@ -84,7 +84,7 @@
 def test_blackmagicprobe_connect_rst(cc, req, command, runner_config):
     '''Test that commands list the correct connect_rst value when enabled.'''
     args = ['--gdb-serial', TEST_GDB_SERIAL, '--connect-rst']
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     BlackMagicProbeRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = BlackMagicProbeRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_bossac.py b/scripts/west_commands/tests/test_bossac.py
index 08051fa..58cc8b0 100644
--- a/scripts/west_commands/tests/test_bossac.py
+++ b/scripts/west_commands/tests/test_bossac.py
@@ -209,7 +209,7 @@
 	no --offset
     """
     args = ['--bossac-port', str(TEST_BOSSAC_PORT)]
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     BossacBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner_config = adjust_runner_config(runner_config, tmpdir, DOTCONFIG_STD)
@@ -247,7 +247,7 @@
     """
     args = ['--bossac-port', str(TEST_BOSSAC_PORT),
             '--speed', str(TEST_BOSSAC_SPEED)]
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     BossacBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner_config = adjust_runner_config(runner_config, tmpdir, DOTCONFIG_STD)
@@ -287,7 +287,7 @@
         '--bossac-port',
         str(TEST_BOSSAC_PORT),
     ]
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     BossacBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner_config = adjust_runner_config(runner_config, tmpdir,
diff --git a/scripts/west_commands/tests/test_canopen_program.py b/scripts/west_commands/tests/test_canopen_program.py
index 50e90d0..934b4ca 100644
--- a/scripts/west_commands/tests/test_canopen_program.py
+++ b/scripts/west_commands/tests/test_canopen_program.py
@@ -69,7 +69,7 @@
     mock.wait_for_flash_status_ok.return_value = 0
     mock.swid.return_value = 0
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     CANopenBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = CANopenBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_dediprog.py b/scripts/west_commands/tests/test_dediprog.py
index 10d260f..f58d40e 100644
--- a/scripts/west_commands/tests/test_dediprog.py
+++ b/scripts/west_commands/tests/test_dediprog.py
@@ -69,7 +69,7 @@
     args = ['--spi-image', spi_image, '--retries', '0']
     if vcc:
         args.extend(['--vcc', vcc])
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     DediProgBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = DediProgBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_dfu_util.py b/scripts/west_commands/tests/test_dfu_util.py
index f367817..9ae4b1c 100644
--- a/scripts/west_commands/tests/test_dfu_util.py
+++ b/scripts/west_commands/tests/test_dfu_util.py
@@ -128,7 +128,7 @@
         f.write('\n')
     runner_config = runner_config._replace(build_dir=os.fspath(tmpdir))
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     DfuUtilBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = DfuUtilBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_gd32isp.py b/scripts/west_commands/tests/test_gd32isp.py
index 14631af..d2cb937 100644
--- a/scripts/west_commands/tests/test_gd32isp.py
+++ b/scripts/west_commands/tests/test_gd32isp.py
@@ -62,7 +62,7 @@
             '--speed', TEST_GD32ISP_SPEED,
             '--addr', TEST_GD32ISP_ADDR,
             '--isp', TEST_GD32ISP_CLI_T]
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     Gd32ispBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = Gd32ispBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_mdb.py b/scripts/west_commands/tests/test_mdb.py
index c3e0d42..54c6f47 100644
--- a/scripts/west_commands/tests/test_mdb.py
+++ b/scripts/west_commands/tests/test_mdb.py
@@ -21,7 +21,7 @@
 # mdb-nsim
 TEST_NSIM_FLASH_CASES = [
     {
-        'i': ['--cores=1', '--nsim=' + TEST_NSIM_ARGS],
+        'i': ['--cores=1', '--nsim_args=' + TEST_NSIM_ARGS],
         'o': [TEST_DRIVER_CMD, '-nooptions', '-nogoifmain',
            '-toggle=include_local_symbols=1',
            '-nsim', TEST_BOARD_NSIM_ARGS,
@@ -30,7 +30,7 @@
 
 TEST_NSIM_DEBUG_CASES = [
     {
-        'i': ['--cores=1', '--nsim=' + TEST_NSIM_ARGS],
+        'i': ['--cores=1', '--nsim_args=' + TEST_NSIM_ARGS],
         'o': [TEST_DRIVER_CMD, '-nooptions', '-nogoifmain',
            '-toggle=include_local_symbols=1',
            '-nsim', TEST_BOARD_NSIM_ARGS,
@@ -38,7 +38,7 @@
           ]
     }]
 
-TEST_NSIM_MULTICORE_CASES = [['--cores=2', '--nsim=' + TEST_NSIM_ARGS]]
+TEST_NSIM_MULTICORE_CASES = [['--cores=2', '--nsim_args=' + TEST_NSIM_ARGS]]
 TEST_NSIM_CORE1 = [TEST_DRIVER_CMD, '-pset=1', '-psetname=core0', '',
               '-nooptions', '-nogoifmain', '-toggle=include_local_symbols=1',
               '-nsim', TEST_BOARD_NSIM_ARGS, RC_KERNEL_ELF]
@@ -121,7 +121,7 @@
         if isinstance(args, dict):
             return mdb_runner(runner_config, TEST_TARGET, **args)
         elif isinstance(args, list):
-            parser = argparse.ArgumentParser()
+            parser = argparse.ArgumentParser(allow_abbrev=False)
             mdb_runner.add_parser(parser)
             arg_namespace = parser.parse_args(args)
             return mdb_runner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_nrfjprog.py b/scripts/west_commands/tests/test_nrfjprog.py
index 0e732b1..ff34bad 100644
--- a/scripts/west_commands/tests/test_nrfjprog.py
+++ b/scripts/west_commands/tests/test_nrfjprog.py
@@ -479,7 +479,7 @@
     if test_case.recover:
         args.append('--recover')
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     NrfJprogBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = NrfJprogBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_pyocd.py b/scripts/west_commands/tests/test_pyocd.py
index ffa70e9..d707972 100644
--- a/scripts/west_commands/tests/test_pyocd.py
+++ b/scripts/west_commands/tests/test_pyocd.py
@@ -141,7 +141,7 @@
         if isinstance(args, dict):
             return PyOcdBinaryRunner(runner_config, TEST_TARGET, **args)
         elif isinstance(args, list):
-            parser = argparse.ArgumentParser()
+            parser = argparse.ArgumentParser(allow_abbrev=False)
             PyOcdBinaryRunner.add_parser(parser)
             arg_namespace = parser.parse_args(args)
             return PyOcdBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/west_commands/tests/test_stm32cubeprogrammer.py b/scripts/west_commands/tests/test_stm32cubeprogrammer.py
index 5f756d0..096a3b2 100644
--- a/scripts/west_commands/tests/test_stm32cubeprogrammer.py
+++ b/scripts/west_commands/tests/test_stm32cubeprogrammer.py
@@ -384,7 +384,7 @@
     if tc["frequency"]:
         args.extend(["--frequency", tc["frequency"]])
     if tc["reset_mode"]:
-        args.extend(["--reset", tc["reset_mode"]])
+        args.extend(["--reset-mode", tc["reset_mode"]])
     if tc["conn_modifiers"]:
         args.extend(["--conn-modifiers", tc["conn_modifiers"]])
     if tc["cli"]:
@@ -396,7 +396,7 @@
     if tc["tool_opt"]:
         args.extend(["--tool-opt", " " + tc["tool_opt"][0]])
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     STM32CubeProgrammerBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
 
diff --git a/scripts/west_commands/tests/test_stm32flash.py b/scripts/west_commands/tests/test_stm32flash.py
index 1a0a6d7..a293387 100644
--- a/scripts/west_commands/tests/test_stm32flash.py
+++ b/scripts/west_commands/tests/test_stm32flash.py
@@ -102,7 +102,7 @@
     else:
         args = ['--action', action, '--baud-rate', TEST_BAUD, '--start-addr', TEST_ADDR]
 
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     Stm32flashBinaryRunner.add_parser(parser)
     arg_namespace = parser.parse_args(args)
     runner = Stm32flashBinaryRunner.create(runner_config, arg_namespace)
diff --git a/scripts/zephyr_module.py b/scripts/zephyr_module.py
index 5a3e8a9..c9b297b 100755
--- a/scripts/zephyr_module.py
+++ b/scripts/zephyr_module.py
@@ -539,7 +539,7 @@
 def main():
     parser = argparse.ArgumentParser(description='''
     Process a list of projects and create Kconfig / CMake include files for
-    projects which are also a Zephyr module''')
+    projects which are also a Zephyr module''', allow_abbrev=False)
 
     parser.add_argument('--kconfig-out',
                         help="""File to write with resulting KConfig import
diff --git a/soc/arm/microchip_mec/common/spigen/mec_spi_gen.py b/soc/arm/microchip_mec/common/spigen/mec_spi_gen.py
index 8c9f6e2..41721d4 100755
--- a/soc/arm/microchip_mec/common/spigen/mec_spi_gen.py
+++ b/soc/arm/microchip_mec/common/spigen/mec_spi_gen.py
@@ -237,7 +237,7 @@
     return bytes(hdr)
 
 def parse_args():
-    parser = argparse.ArgumentParser()
+    parser = argparse.ArgumentParser(allow_abbrev=False)
     # Use a lambda to handle base 10 or base 16 (hex) input
     parser.add_argument("-c",
                         type=str,
diff --git a/soc/arm/nuvoton_npcx/common/ecst/ecst_args.py b/soc/arm/nuvoton_npcx/common/ecst/ecst_args.py
index c596760..cf129bb 100755
--- a/soc/arm/nuvoton_npcx/common/ecst/ecst_args.py
+++ b/soc/arm/nuvoton_npcx/common/ecst/ecst_args.py
@@ -180,7 +180,7 @@
     else parses the given string
     """
 
-    parser = argparse.ArgumentParser(conflict_handler='resolve')
+    parser = argparse.ArgumentParser(conflict_handler='resolve', allow_abbrev=False)
     parser.add_argument("-i", nargs='?', dest="input")
     parser.add_argument("-o", nargs='?', dest="output")
     parser.add_argument("-chip", dest="chip")
diff --git a/soc/xtensa/intel_adsp/tools/cavstool.py b/soc/xtensa/intel_adsp/tools/cavstool.py
index 97b5c38..e359e0b 100755
--- a/soc/xtensa/intel_adsp/tools/cavstool.py
+++ b/soc/xtensa/intel_adsp/tools/cavstool.py
@@ -683,7 +683,7 @@
                 ipc_command(dsp.HIPCTDR & ~0x80000000, dsp.HIPCTDD)
 
 
-ap = argparse.ArgumentParser(description="DSP loader/logger tool")
+ap = argparse.ArgumentParser(description="DSP loader/logger tool", allow_abbrev=False)
 ap.add_argument("-q", "--quiet", action="store_true",
                 help="No loader output, just DSP logging")
 ap.add_argument("-v", "--verbose", action="store_true",
diff --git a/soc/xtensa/intel_adsp/tools/cavstool_client.py b/soc/xtensa/intel_adsp/tools/cavstool_client.py
index 8f67ef0..fe4adc0 100755
--- a/soc/xtensa/intel_adsp/tools/cavstool_client.py
+++ b/soc/xtensa/intel_adsp/tools/cavstool_client.py
@@ -123,7 +123,7 @@
         client = cavstool_client(HOST, PORT, args)
         client.send_cmd(CMD_DOWNLOAD)
 
-ap = argparse.ArgumentParser(description="DSP loader/logger client tool")
+ap = argparse.ArgumentParser(description="DSP loader/logger client tool", allow_abbrev=False)
 ap.add_argument("-q", "--quiet", action="store_true",
                 help="No loader output, just DSP logging")
 ap.add_argument("-l", "--log-only", action="store_true",
diff --git a/soc/xtensa/intel_adsp/tools/remote-fw-service.py b/soc/xtensa/intel_adsp/tools/remote-fw-service.py
index 6fb777f..c5e27c1 100755
--- a/soc/xtensa/intel_adsp/tools/remote-fw-service.py
+++ b/soc/xtensa/intel_adsp/tools/remote-fw-service.py
@@ -260,7 +260,7 @@
         return self.params
 
 
-ap = argparse.ArgumentParser(description="RemoteHW service tool")
+ap = argparse.ArgumentParser(description="RemoteHW service tool", allow_abbrev=False)
 ap.add_argument("-q", "--quiet", action="store_true",
                 help="No loader output, just DSP logging")
 ap.add_argument("-v", "--verbose", action="store_true",
diff --git a/tests/net/socket/udp/generate-c-string.py b/tests/net/socket/udp/generate-c-string.py
index 64d41e0..c67b89a 100755
--- a/tests/net/socket/udp/generate-c-string.py
+++ b/tests/net/socket/udp/generate-c-string.py
@@ -11,7 +11,7 @@
 CHUNK = "This is a fragment of generated C string. "
 
 
-parser = ArgumentParser(description="Generate C string of arbitrary size")
+parser = ArgumentParser(description="Generate C string of arbitrary size", allow_abbrev=False)
 parser.add_argument("-s", "--size", help="Size of string (without NULL termination)",
                     required=True, type=int)
 parser.add_argument("filepath", help="Output filepath")
