Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
513 changes: 437 additions & 76 deletions .pipelines/MSIXBundle-vPack-Official.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion PowerShell.Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@

<PropertyGroup>
<DefineConstants>$(DefineConstants);CORECLR</DefineConstants>
<IsWindows Condition="'$(IsWindows)' =='true' or ( '$(IsWindows)' == '' and '$(OS)' == 'Windows_NT')">true</IsWindows>
<IsWindows Condition="'$(IsWindows)' == 'true' or ('$(IsWindows)' == '' and '$(OS)' == 'Windows_NT')">true</IsWindows>
</PropertyGroup>

<!-- Define non-windows, all configuration properties -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ internal static int Start(
}

s_theConsoleHost.BindBreakHandler();
PSHost.IsStdOutputRedirected = Console.IsOutputRedirected;
IsStdOutputRedirected = Console.IsOutputRedirected;

// Send startup telemetry for ConsoleHost startup
ApplicationInsightsTelemetry.SendPSCoreStartupTelemetry("Normal", s_cpp.ParametersUsedAsDouble);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ public static int Start([MarshalAs(UnmanagedType.LPArray, ArraySubType = Unmanag
int exitCode = 0;
try
{
var banner = string.Format(
string banner = string.Format(
CultureInfo.InvariantCulture,
ManagedEntranceStrings.ShellBannerNonWindowsPowerShell,
ManagedEntranceStrings.ShellBannerPowerShell,
PSVersionInfo.GitCommitId);

ConsoleHost.DefaultInitialSessionState = InitialSessionState.CreateDefault2();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ShellBannerNonWindowsPowerShell" xml:space="preserve">
<data name="ShellBannerPowerShell" xml:space="preserve">
<value>PowerShell {0}</value>
</data>
<data name="ShellBannerCLMode" xml:space="preserve">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -846,7 +846,7 @@ Note that 'Start-Job' is not supported by design in scenarios where PowerShell i
<value>The WriteEvents parameter cannot be used without the Wait parameter.</value>
</data>
<data name="PowerShellVersionNotSupported" xml:space="preserve">
<value>PowerShell remoting endpoint versioning is not supported on PowerShell Core.</value>
<value>PowerShell remoting endpoint versioning is not supported on PowerShell 7+.</value>
</data>
<data name="JobManagerRegistrationConstructorError" xml:space="preserve">
<value>The following type cannot be instantiated because its constructor is not public: {0}.</value>
Expand Down
215 changes: 214 additions & 1 deletion src/System.Management.Automation/resources/TabCompletionStrings.resx
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,219 @@
<data name="shrOperatorDescription" xml:space="preserve">
<value>Shift Right bit operator. Inserts zero in the left-most bit position. For signed values, sign bit is preserved.</value>
</data>
<data name="NameHashtableKeyDescription" xml:space="preserve">
<value>[string]
Specifies the name of the property being created.</value>
</data>
<data name="LabelHashtableKeyDescription" xml:space="preserve">
<value>[string]
Specifies the name of the property being created.</value>
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LabelHashtableKeyDescription duplicates the NameHashtableKeyDescription text (“Specifies the name…”). This looks like a copy/paste error and will show incorrect help text for the Label hashtable key in tab completion; update it to describe the label/display name semantics instead of the property name.

Suggested change
Specifies the name of the property being created.</value>
Specifies the label or display name for the property.</value>

Copilot uses AI. Check for mistakes.
</data>
<data name="ExpressionHashtableKeyDescription" xml:space="preserve">
<value>[scriptblock]
A script block used to calculate the value of the new property.</value>
</data>
<data name="AlignmentHashtableKeyDescription" xml:space="preserve">
<value>[string]
Define how the values are displayed in a column.
Valid values are 'left', 'center', or 'right'.</value>
</data>
<data name="FormatStringHashtableKeyDescription" xml:space="preserve">
<value>[string]
Specifies a format string that defines how the value is formatted for output.</value>
</data>
<data name="WidthHashtableKeyDescription" xml:space="preserve">
<value>[int]
Specifies the maximum column width in a table when the value is displayed.
The value must be greater than 0.</value>
</data>
<data name="DepthHashtableKeyDescription" xml:space="preserve">
<value>[int]
The depth key specifies the depth of expansion per property.</value>
</data>
<data name="AscendingHashtableKeyDescription" xml:space="preserve">
<value>[bool]
Specifies the order of sorting for one or more properties.</value>
</data>
<data name="DescendingHashtableKeyDescription" xml:space="preserve">
<value>[bool]
Specifies the order of sorting for one or more properties.</value>
</data>
<data name="LogNameHashtableKeyDescription" xml:space="preserve">
<value>[String[]]
Specifies the log names to get events from.
Supports wildcards.</value>
</data>
<data name="ProviderNameHashtableKeyDescription" xml:space="preserve">
<value>[String[]]
Specifies the event log providers to get events from.
Supports wildcards.</value>
</data>
<data name="PathHashtableKeyDescription" xml:space="preserve">
<value>[String[]]
Specifies file paths to log files to get events from.
Valid file formats are: .etl, .evt, and .evtx</value>
</data>
<data name="KeywordsHashtableKeyDescription" xml:space="preserve">
<value>[Long[]]
Selects events with the specified keyword bitmasks.
The following are standard keywords:
4503599627370496: AuditFailure
9007199254740992: AuditSuccess
4503599627370496: CorrelationHint
18014398509481984: CorrelationHint2
36028797018963968: EventLogClassic
281474976710656: ResponseTime
2251799813685248: Sqm
562949953421312: WdiContext
1125899906842624: WdiDiagnostic</value>
</data>
<data name="IDHashtableKeyDescription" xml:space="preserve">
<value>[int[]]
Selects events with the specified event IDs.</value>
</data>
<data name="LevelHashtableKeyDescription" xml:space="preserve">
<value>[int[]]
Selects events with the specified log levels.
The following log levels are valid:
1: Critical
2: Error
3: Warning
4: Informational
5: Verbose</value>
</data>
<data name="StartTimeHashtableKeyDescription" xml:space="preserve">
<value>[datetime]
Selects events created after the specified date and time.</value>
</data>
<data name="EndTimeHashtableKeyDescription" xml:space="preserve">
<value>[datetime]
Selects events created before the specified date and time.</value>
</data>
<data name="UserIDHashtableKeyDescription" xml:space="preserve">
<value>[string]
Selects events generated by the specified user.
This can either be a string representation of a SID or a domain and username in the format DOMAIN\USERNAME or USERNAME@DOMAIN</value>
</data>
<data name="DataHashtableKeyDescription" xml:space="preserve">
<value>[string[]]
Selects events with any of the specified values in the EventData section.</value>
</data>
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line has trailing whitespace after </data>; please remove to keep the .resx clean and avoid churn in future diffs.

Suggested change
</data>
</data>

Copilot uses AI. Check for mistakes.
<data name="SuppressHashFilterHashtableKeyDescription" xml:space="preserve">
<value>[hashtable]
Excludes events that match the values specified in the hashtable.</value>
</data>
<data name="RequiresModulesParameterDescription" xml:space="preserve">
<value>[string] or [hashtable]
Specifies an array of PowerShell modules that the script requires.
Each element can either be a string with the module name as value or a hashtable with the following keys:
Name: Name of the module
GUID: GUID of the module
One of the following:
ModuleVersion: Specifies a minimum acceptable version of the module.
RequiredVersion: Specifies an exact, required version of the module.
MaximumVersion: Specifies the maximum acceptable version of the module.</value>
</data>
<data name="RequiresPSEditionParameterDescription" xml:space="preserve">
<value>[string]
Specifies a PowerShell edition that the script requires.
Valid values are "Core" and "Desktop"</value>
</data>
<data name="RequiresRunAsAdministratorParameterDescription" xml:space="preserve">
<value>[switch]
Specifies that PowerShell must be running as administrator on Windows.
This must be the last parameter on the #requires statement line.</value>
</data>
<data name="RequiresVersionParameterDescription" xml:space="preserve">
<value>[version]
Specifies the minimum version of PowerShell that the script requires.</value>
</data>
<data name="RequiresPsEditionCoreDescription" xml:space="preserve">
<value>Specifies that the script requires PowerShell 7+ to run.</value>
</data>
<data name="RequiresPsEditionDesktopDescription" xml:space="preserve">
<value>Specifies that the script requires Windows PowerShell 5.1 to run.</value>
</data>
<data name="RequiresModuleSpecModuleNameDescription" xml:space="preserve">
<value>[string]
Required. Specifies the module name.</value>
</data>
<data name="RequiresModuleSpecGUIDDescription" xml:space="preserve">
<value>[string]
Optional. Specifies the GUID of the module.</value>
</data>
<data name="RequiresModuleSpecModuleVersionDescription" xml:space="preserve">
<value>[string]
Specifies a minimum acceptable version of the module.</value>
</data>
<data name="RequiresModuleSpecRequiredVersionDescription" xml:space="preserve">
<value>[string]
Specifies an exact, required version of the module.</value>
</data>
<data name="RequiresModuleSpecMaximumVersionDescription" xml:space="preserve">
<value>[string]
Specifies the maximum acceptable version of the module.</value>
</data>
<data name="CommentHelpSYNOPSISKeywordDescription" xml:space="preserve">
<value>A brief description of the function or script.
This keyword can be used only once in each topic.</value>
</data>
<data name="CommentHelpDESCRIPTIONKeywordDescription" xml:space="preserve">
<value>A detailed description of the function or script.
This keyword can be used only once in each topic.</value>
</data>
<data name="CommentHelpPARAMETERKeywordDescription" xml:space="preserve">
<value>.PARAMETER &lt;Parameter-Name&gt;
The description of a parameter.
Add a .PARAMETER keyword for each parameter in the function or script syntax.</value>
</data>
<data name="CommentHelpEXAMPLEKeywordDescription" xml:space="preserve">
<value>A sample command that uses the function or script, optionally followed by sample output and a description.
Repeat this keyword for each example.</value>
</data>
<data name="CommentHelpINPUTSKeywordDescription" xml:space="preserve">
<value>The .NET types of objects that can be piped to the function or script.
You can also include a description of the input objects.</value>
</data>
<data name="CommentHelpOUTPUTSKeywordDescription" xml:space="preserve">
<value>The .NET type of the objects that the cmdlet returns.
You can also include a description of the returned objects.</value>
</data>
<data name="CommentHelpNOTESKeywordDescription" xml:space="preserve">
<value>Additional information about the function or script.</value>
</data>
<data name="CommentHelpLINKKeywordDescription" xml:space="preserve">
<value>The name of a related topic.
Repeat the .LINK keyword for each related topic.
The .Link keyword content can also include a URI to an online version of the same help topic.</value>
</data>
<data name="CommentHelpCOMPONENTKeywordDescription" xml:space="preserve">
<value>The name of the technology or feature that the function or script uses, or to which it is related.</value>
</data>
<data name="CommentHelpROLEKeywordDescription" xml:space="preserve">
<value>The name of the user role for the help topic.</value>
</data>
<data name="CommentHelpFUNCTIONALITYKeywordDescription" xml:space="preserve">
<value>The keywords that describe the intended use of the function.</value>
</data>
<data name="CommentHelpFORWARDHELPTARGETNAMEKeywordDescription" xml:space="preserve">
<value>.FORWARDHELPTARGETNAME &lt;Command-Name&gt;
Redirects to the help topic for the specified command.</value>
</data>
<data name="CommentHelpFORWARDHELPCATEGORYKeywordDescription" xml:space="preserve">
<value>.FORWARDHELPCATEGORY &lt;Category&gt;
Specifies the help category of the item in .ForwardHelpTargetName</value>
</data>
<data name="CommentHelpREMOTEHELPRUNSPACEKeywordDescription" xml:space="preserve">
<value>.REMOTEHELPRUNSPACE &lt;PSSession-variable&gt;
Specifies a session that contains the help topic.
Enter a variable that contains a PSSession object.</value>
</data>
<data name="CommentHelpEXTERNALHELPKeywordDescription" xml:space="preserve">
<value>.EXTERNALHELP &lt;XML Help File&gt;
The .ExternalHelp keyword is required when a function or script is documented in XML files.</value>
</data>

<data name="AssemblyKeywordDescription" xml:space="preserve">
<value>Specifies the path to a .NET assembly to load.

Expand All @@ -353,4 +566,4 @@ using namespace &lt;AliasName&gt; = &lt;.NET-namespace&gt;</value>

using type &lt;AliasName&gt; = &lt;.NET-type&gt;</value>
</data>
</root>
</root>
8 changes: 4 additions & 4 deletions src/System.Management.Automation/utils/Telemetry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ public static class ApplicationInsightsTelemetry
private static readonly HashSet<string> s_knownSubsystemNames;

/// <summary>Gets a value indicating whether telemetry can be sent.</summary>
public static bool CanSendTelemetry { get; private set; } = false;
public static bool CanSendTelemetry { get; private set; }

/// <summary>
/// Initializes static members of the <see cref="ApplicationInsightsTelemetry"/> class.
Expand Down Expand Up @@ -834,11 +834,11 @@ internal static void SendUseTelemetry(string featureName, string detail, double

if (string.Compare(featureName, s_subsystemRegistration, true) == 0)
{
ApplicationInsightsTelemetry.SendTelemetryMetric(TelemetryType.FeatureUse, string.Join(":", featureName, GetSubsystemName(detail)), value);
SendTelemetryMetric(TelemetryType.FeatureUse, string.Join(":", featureName, GetSubsystemName(detail)), value);
}
else
{
ApplicationInsightsTelemetry.SendTelemetryMetric(TelemetryType.FeatureUse, string.Join(":", featureName, detail), value);
SendTelemetryMetric(TelemetryType.FeatureUse, string.Join(":", featureName, detail), value);
}
}

Expand All @@ -854,7 +854,7 @@ internal static void SendExperimentalUseData(string featureName, string detail)
return;
}

ApplicationInsightsTelemetry.SendTelemetryMetric(TelemetryType.ExperimentalFeatureUse, string.Join(":", featureName, detail));
SendTelemetryMetric(TelemetryType.ExperimentalFeatureUse, string.Join(":", featureName, detail));
}

// Get the experimental feature name. If we can report it, we'll return the name of the feature, otherwise, we'll return "anonymous"
Expand Down
4 changes: 1 addition & 3 deletions tools/packaging/packaging.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -4301,8 +4301,7 @@ function New-MSIXPackage
Write-Verbose "Using LTS assets" -Verbose
}

# Appx manifest needs to be in root of source path, but the embedded version needs to be updated
# cp-459155 is 'CN=Microsoft Windows Store Publisher (Store EKU), O=Microsoft Corporation, L=Redmond, S=Washington, C=US'
# Appx manifest needs to be in root of source path, but the embedded version needs to be updated.
# authenticodeFormer is 'CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US'
$releasePublisher = 'CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US'

Expand Down Expand Up @@ -4344,7 +4343,6 @@ function New-MSIXPackage
else {
Copy-Item -Path "$RepoRoot\assets\$_.png" -Destination "$ProductSourcePath\assets\"
}

}

if ($PSCmdlet.ShouldProcess("Create .msix package?")) {
Expand Down
Loading