From a6e093ecaa6cbb78181f3e7881283a4f3b9ebe51 Mon Sep 17 00:00:00 2001 From: Shriya-23 Date: Sun, 2 Nov 2025 16:35:04 +0530 Subject: [PATCH 1/5] DOC: Add topic about best practices for writing secure PowerShell code (Fixes #10099) --- reference/docs-conceptual/about_SecureCode.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reference/docs-conceptual/about_SecureCode.md diff --git a/reference/docs-conceptual/about_SecureCode.md b/reference/docs-conceptual/about_SecureCode.md new file mode 100644 index 000000000000..e69de29bb2d1 From 8aab6231b2efcdcc2b7c78e467e7f19db9778ce8 Mon Sep 17 00:00:00 2001 From: Shriya-23 Date: Sun, 2 Nov 2025 17:01:27 +0530 Subject: [PATCH 2/5] Fix: Rename file and correct metadata for validation warnings --- .../docs-conceptual/about-secure-code.md | 37 +++++++++++++++++++ reference/docs-conceptual/about_SecureCode.md | 0 2 files changed, 37 insertions(+) create mode 100644 reference/docs-conceptual/about-secure-code.md delete mode 100644 reference/docs-conceptual/about_SecureCode.md diff --git a/reference/docs-conceptual/about-secure-code.md b/reference/docs-conceptual/about-secure-code.md new file mode 100644 index 000000000000..aa3d29eba88b --- /dev/null +++ b/reference/docs-conceptual/about-secure-code.md @@ -0,0 +1,37 @@ +--- +title: about_SecureCode +description: Learn best practices for writing secure PowerShell code, including module loading, credential handling, and constrained language mode. +ms.date: 11/02/2025 +ms.topic: conceptual +--- + +# about_SecureCode + +## Short description +Best practices for writing secure PowerShell code and scripts. + +## Long description +PowerShell is a powerful automation platform, but with great flexibility comes the need for careful attention to security. +This article provides guidelines and recommendations for writing secure PowerShell scripts, functions, and modules. + +These best practices help reduce exposure to malicious code execution, protect sensitive data, and ensure your scripts are safe to use across diverse environments. + +--- + +## 1. Follow the principle of least privilege + +Run scripts and commands with the **minimum permissions** required. Avoid using administrative rights unless absolutely necessary. +Where possible, use **Just Enough Administration (JEA)** to define limited execution capabilities for users. + +> For more information: [About JEA - Just Enough Administration](/powershell/scripting/learn/remoting/jea/overview) + +--- + +## 2. Avoid auto-loading — explicitly import modules + +Auto-loading modules can execute untrusted scripts automatically. +Always **import modules explicitly** using: + +```powershell +Import-Module + diff --git a/reference/docs-conceptual/about_SecureCode.md b/reference/docs-conceptual/about_SecureCode.md deleted file mode 100644 index e69de29bb2d1..000000000000 From 698b3d821712f5a695bcfaceeddf4cb78cf21443 Mon Sep 17 00:00:00 2001 From: Shriya-23 Date: Sun, 2 Nov 2025 17:27:57 +0530 Subject: [PATCH 3/5] Chore: minor formatting cleanup for markdownlint warnings --- reference/docs-conceptual/about-secure-code.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reference/docs-conceptual/about-secure-code.md b/reference/docs-conceptual/about-secure-code.md index aa3d29eba88b..ff5d8ef0891c 100644 --- a/reference/docs-conceptual/about-secure-code.md +++ b/reference/docs-conceptual/about-secure-code.md @@ -8,9 +8,11 @@ ms.topic: conceptual # about_SecureCode ## Short description + Best practices for writing secure PowerShell code and scripts. ## Long description + PowerShell is a powerful automation platform, but with great flexibility comes the need for careful attention to security. This article provides guidelines and recommendations for writing secure PowerShell scripts, functions, and modules. From afd2b40e8bc75bd143b5f8956136aa808c36d1a7 Mon Sep 17 00:00:00 2001 From: Shriya-23 Date: Sun, 2 Nov 2025 17:41:34 +0530 Subject: [PATCH 4/5] Fix: close code block to resolve markdown warning --- reference/docs-conceptual/about-secure-code.md | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/docs-conceptual/about-secure-code.md b/reference/docs-conceptual/about-secure-code.md index ff5d8ef0891c..9e5155628238 100644 --- a/reference/docs-conceptual/about-secure-code.md +++ b/reference/docs-conceptual/about-secure-code.md @@ -37,3 +37,4 @@ Always **import modules explicitly** using: ```powershell Import-Module + From 2a5ba3ef43c79e1f3def416d2c0720bbce646500 Mon Sep 17 00:00:00 2001 From: Shriya-23 Date: Sun, 2 Nov 2025 18:00:03 +0530 Subject: [PATCH 5/5] Fix: close code blocks and finalize about-secure-code.md for validation --- reference/docs-conceptual/about-secure-code.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/reference/docs-conceptual/about-secure-code.md b/reference/docs-conceptual/about-secure-code.md index 9e5155628238..ac87508e149e 100644 --- a/reference/docs-conceptual/about-secure-code.md +++ b/reference/docs-conceptual/about-secure-code.md @@ -36,5 +36,3 @@ Always **import modules explicitly** using: ```powershell Import-Module - -