Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

PSAvoidOverwritingBuiltInCmdlets (core-6.1.0-*) returns warning for Write-Log, which is not a built-in cmdlet

未關閉
#2,146 1 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
3/5
預估耗時
1-2 天
新手友好度
68/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
冷清
技術堆疊
powershell
領域
tooling

研究方向

從 Engine/Settings 下的 core-6.1.0 平台設定檔開始,尤其關注 Write-Log 附近的項目,並比較 Linux ARM、Linux、macOS 和 Windows 中的內建 cmdlet 清單。刪除或更正未隨 PowerShell 一起發佈的項目,然後針對 Write-Log.psm1 的重現執行 Invoke-ScriptAnalyzer,並檢查是否有類似的錯誤警告。

由索引模型根據 Issue 內容生成。

描述

Up-for-Grabs

Before submitting a bug report:

  • Make sure you are able to repro it on the latest released version
  • Perform a quick search for existing issues to check if this bug has already been reported

Steps to reproduce

Create a file called Write-Log.psm1 in your home directory and populate it with an empty function called Write-Log:

function Write-Log {
}

Install and run PSScriptAnalyzer against the file:

> Install-Module PSScriptAnalyzer

> Invoke-ScriptAnalyzer -Path ~\Write-Log.psm1

Expected behavior

PSScriptAnalyzer returns no findings because Write-Log is not a built-in cmdlet.

Actual behavior

RuleName                         Severity ScriptName     Line Message
--------                         -------- ----------     ---- -------
PSAvoidOverwritingBuiltInCmdlets Warning  Write-Log.psm1 1    'Write-Log' is a cmdlet that is included with PowerShell (version core-6.1.0-windows) whose definition should not be overridden

This behaviour should be reproducible cross-platform.

Troubleshooting

Write-Log was never shipped with any version of PowerShell, but it is erroneously defined as a built-in cmdlet:

https://github.com/PowerShell/PSScriptAnalyzer/blob/e2804796f43eab60f5d105f6bbaea83fb446a13d/Engine/Settings/core-6.1.0-linux-arm.json#L1391-L1395

https://github.com/PowerShell/PSScriptAnalyzer/blob/e2804796f43eab60f5d105f6bbaea83fb446a13d/Engine/Settings/core-6.1.0-linux.json#L1391-L1395

https://github.com/PowerShell/PSScriptAnalyzer/blob/e2804796f43eab60f5d105f6bbaea83fb446a13d/Engine/Settings/core-6.1.0-macos.json#L1391-L1395

https://github.com/PowerShell/PSScriptAnalyzer/blob/e2804796f43eab60f5d105f6bbaea83fb446a13d/Engine/Settings/core-6.1.0-windows.json#L1692-L1696

Probable cause is described in https://github.com/PowerShell/PowerShell/issues/7209 as an upstream issue in PSDesiredStateConfiguration that was reportedly fixed in 2020. However, the PSScriptAnalyzer files affected by that issue were never rebuilt afterwards.

The module that may have caused this problem at the time is https://github.com/microsoft/PowerShellForGitHub, which defines Write-Log and then suppresses PSScriptAnalyzer reports in Helper.ps1#L128. The PR to suppress that finding is recorded in https://github.com/microsoft/PowerShellForGitHub/pull/180. If this module was present in the build environment, then PSScriptAnalyzer would have added Write-Log and possibly other cmdlets to the list of built-in cmdlets even though they do not ship with PowerShell.

As a result, default installations of PSScriptAnalyzer return a false warning for PSAvoidOverwritingBuiltInCmdlets against cmdlets named Write-Log.

It is possible that there may be other cmdlets erroneously included in these files for the same reason.

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.5.4
PSEdition                      Core
GitCommitId                    7.5.4
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

1.24.0
主要語言
C#
星號
2.2k
分支
415
平均合併
13 小時 1 分鐘
30 天內合併 PR
2

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

PowerShell/PSScriptAnalyzer 的其他 Issue

查看 PowerShell/PSScriptAnalyzer 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。