mirror of
https://github.com/PowerShell/PowerShell.git
synced 2024-11-28 04:13:31 +08:00
Merge pull request #1292 from PowerShell/vors/powershell-native
Missed powershell native sources
This commit is contained in:
commit
423decfbc4
@ -20,5 +20,12 @@
|
|||||||
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshheaders.h": "nativemsh/pwrshplugin/pwrshheaders.h",
|
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshheaders.h": "nativemsh/pwrshplugin/pwrshheaders.h",
|
||||||
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshplugin.h": "nativemsh/pwrshplugin/pwrshplugin.h",
|
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshplugin.h": "nativemsh/pwrshplugin/pwrshplugin.h",
|
||||||
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshplugindefs.h": "nativemsh/pwrshplugin/pwrshplugindefs.h",
|
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshplugindefs.h": "nativemsh/pwrshplugin/pwrshplugindefs.h",
|
||||||
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshplugin.def": "nativemsh/pwrshplugin/pwrshplugin.def"
|
"monad/nttargets/assemblies/nativemsh/pwrshplugin/pwrshplugin.def": "nativemsh/pwrshplugin/pwrshplugin.def",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/CssMainEntry.cpp": "nativemsh/pwrshexe/CssMainEntry.cpp",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/Monad.ico": "nativemsh/pwrshexe/Monad.ico",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/MshResources.rc": "nativemsh/pwrshexe/MshResources.rc",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/nativemsh.mc": "nativemsh/pwrshexe/NativeMsh.mc",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/PowerShell.exe.manifest": "nativemsh/pwrshexe/PowerShell.exe.manifest",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/PowerShell_securitybadge.ico": "nativemsh/pwrshexe/PowerShell_securitybadge.ico",
|
||||||
|
"monad/nttargets/assemblies/nativemsh/pwrshexe/version.rc": "nativemsh/pwrshexe/version.rc"
|
||||||
}
|
}
|
||||||
|
267
src/powershell-native/nativemsh/pwrshexe/CssMainEntry.cpp
Normal file
267
src/powershell-native/nativemsh/pwrshexe/CssMainEntry.cpp
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Microsoft Windows NT
|
||||||
|
// Copyright (C) Microsoft Corporation, 2005.
|
||||||
|
//
|
||||||
|
// File: CoreCLRHost.cpp
|
||||||
|
//
|
||||||
|
// Contents: Unmanaged startup point for powershell.exe console app.
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
#include <string>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mscoree.h"
|
||||||
|
#include "NativeMsh.h"
|
||||||
|
#include "ClrHostWrapper.h"
|
||||||
|
#include "OutputWriter.h"
|
||||||
|
#include "WinSystemCallFacade.h"
|
||||||
|
|
||||||
|
namespace NativeMsh
|
||||||
|
{
|
||||||
|
// Define the function pointer for the powershell entry point.
|
||||||
|
typedef int (STDMETHODCALLTYPE *MonadRunHelperFp)(LPCWSTR consoleFilePath, LPCWSTR * args, int argc); // int UnmanagedPSEntry.Start(string consoleFilePath, string[] args, int argc)
|
||||||
|
|
||||||
|
// Define the function pointer for AssemblyLoadContext initializer.
|
||||||
|
typedef void (STDMETHODCALLTYPE *LoaderRunHelperFp)(LPCWSTR appPath);
|
||||||
|
|
||||||
|
bool TryRun(const int argc, const wchar_t* argv[], HostEnvironment &hostEnvironment, int &exitCode, bool verbose)
|
||||||
|
{
|
||||||
|
// Assume failure
|
||||||
|
exitCode = -1;
|
||||||
|
|
||||||
|
// All these objects will be destroyed when commonFuncs goes out of scope.
|
||||||
|
PwrshExeOutput* output = new PwrshExeOutput();
|
||||||
|
PwrshCommon commonFuncs(output, new WinSystemCallFacade());
|
||||||
|
ICLRRuntimeHost2Wrapper hostWrapper;
|
||||||
|
|
||||||
|
exitCode = commonFuncs.LaunchCoreCLR(&hostWrapper, hostEnvironment);
|
||||||
|
if (EXIT_CODE_SUCCESS != exitCode)
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
::wprintf(L"Unable to launch CoreCLR\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hostWrapper.IsInitialized()) // TODO: redundant?
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
::wprintf(L"Unable to initialize CoreCLR\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
exitCode = commonFuncs.CreateAppDomain(&hostWrapper, hostEnvironment.GetHostBinaryName(), hostEnvironment);
|
||||||
|
if (EXIT_CODE_SUCCESS != exitCode)
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
::wprintf(L"Unable to create app domain\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------
|
||||||
|
// Set the powershell custom assembly loader to be the default
|
||||||
|
LoaderRunHelperFp initDelegate = NULL;
|
||||||
|
HRESULT hr = hostWrapper.CreateDelegate(
|
||||||
|
hostWrapper.GetAppDomainId(),
|
||||||
|
L"Microsoft.PowerShell.CoreCLR.AssemblyLoadContext, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
|
||||||
|
L"System.Management.Automation.PowerShellAssemblyLoadContextInitializer",
|
||||||
|
L"SetPowerShellAssemblyLoadContext",
|
||||||
|
(INT_PTR*)&initDelegate);
|
||||||
|
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
output->DisplayMessage(false, g_CREATING_MSH_ENTRANCE_FAILED, hr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
initDelegate(hostEnvironment.GetHostDirectoryPath());
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------
|
||||||
|
// Start the assembly
|
||||||
|
MonadRunHelperFp pfnDelegate = NULL;
|
||||||
|
hr = hostWrapper.CreateDelegate(
|
||||||
|
hostWrapper.GetAppDomainId(),
|
||||||
|
L"Microsoft.PowerShell.ConsoleHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35",
|
||||||
|
L"Microsoft.PowerShell.UnmanagedPSEntry",
|
||||||
|
L"Start",
|
||||||
|
(INT_PTR*)&pfnDelegate);
|
||||||
|
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
output->DisplayMessage(false, g_CREATING_MSH_ENTRANCE_FAILED, hr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
exitCode = pfnDelegate(NULL, &argv[0], argc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unload the AppDomain
|
||||||
|
if (verbose)
|
||||||
|
::wprintf(L"Unloading the AppDomain\n");
|
||||||
|
|
||||||
|
int utilExitCode = hostWrapper.CleanUpHostWrapper();
|
||||||
|
if (EXIT_CODE_SUCCESS != utilExitCode)
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
{
|
||||||
|
if (g_UNLOAD_APPDOMAIN_FAILED == utilExitCode)
|
||||||
|
{
|
||||||
|
// TODO: If we want localization, these must be added to nativemsh.mc
|
||||||
|
::wprintf(L"Failed to unload the AppDomain. ERRORCODE: %u\n", utilExitCode);
|
||||||
|
}
|
||||||
|
else if (g_STOP_CLR_HOST_FAILED == utilExitCode)
|
||||||
|
{
|
||||||
|
::wprintf(L"Failed to stop the host. ERRORCODE: %u\n", utilExitCode);
|
||||||
|
}
|
||||||
|
else if (g_RELEASE_CLR_HOST_FAILED == utilExitCode)
|
||||||
|
{
|
||||||
|
::wprintf(L"Failed to release the host.ERRORCODE: %u\n", utilExitCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void showHelp() {
|
||||||
|
static PCWSTR coreCLRInstallDirectory = L"%windir%\\system32\\DotNetCore\\v1.0\\";
|
||||||
|
::wprintf(
|
||||||
|
L"USAGE: powershell [-Verbose] [-Debug] [-File <filePath> <args>] [-Command] <CommandLine>\r\n"
|
||||||
|
L"\r\n"
|
||||||
|
L" CoreCLR is searched for in the directory that powershell.exe is in,\r\n"
|
||||||
|
L" then in %s.\r\n",
|
||||||
|
coreCLRInstallDirectory
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NativeMsh
|
||||||
|
|
||||||
|
int __cdecl wmain(const int argc, const wchar_t* argv[])
|
||||||
|
{
|
||||||
|
// Parse the options from the command line
|
||||||
|
const wchar_t *verboseParameter = L"-Verbose";
|
||||||
|
const wchar_t *debugParameter = L"-Debug";
|
||||||
|
|
||||||
|
const wchar_t *versionParameter = L"-Version";
|
||||||
|
const wchar_t *psConsoleFileParameter = L"-PSConsoleFile";
|
||||||
|
const wchar_t *runtimeVersionParameter = L"-RuntimeVersion";
|
||||||
|
|
||||||
|
bool verbose = false;
|
||||||
|
bool debug = false;
|
||||||
|
bool helpRequested = false;
|
||||||
|
|
||||||
|
bool versionSpecified = false;
|
||||||
|
bool psConsoleFileSpecified = false;
|
||||||
|
bool runtimeVersionSpecified = false;
|
||||||
|
|
||||||
|
|
||||||
|
int newArgc = argc - 1;
|
||||||
|
const wchar_t **newArgv = argv + 1;
|
||||||
|
|
||||||
|
auto stringsMatch = [](const wchar_t * const userInput, const wchar_t * const parameter) -> bool {
|
||||||
|
size_t userInputLength = ::wcslen(userInput);
|
||||||
|
size_t parameterLength = ::wcslen(parameter);
|
||||||
|
|
||||||
|
// If the user input is longer than the parameter, they cannot be matched.
|
||||||
|
if (userInputLength > parameterLength) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return true if the user input is a prefix of the parameter
|
||||||
|
return ::_wcsnicmp(userInput, parameter, userInputLength) == 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
auto stringsEqual = [](const wchar_t * const a, const wchar_t * const b) -> bool {
|
||||||
|
return ::_wcsicmp(a, b) == 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
// These parameters are considered 'native only' - they should NOT be passed to managed layer
|
||||||
|
auto skipParameter = [&](const wchar_t * arg) -> bool {
|
||||||
|
if (stringsMatch(arg, verboseParameter)) {
|
||||||
|
verbose = true;
|
||||||
|
}
|
||||||
|
else if (stringsEqual(arg, L"/?") || stringsEqual(arg, L"-?")) {
|
||||||
|
helpRequested = true;
|
||||||
|
}
|
||||||
|
else if (stringsMatch(arg, debugParameter))
|
||||||
|
{
|
||||||
|
debug = true;
|
||||||
|
}
|
||||||
|
else if (stringsEqual(arg, versionParameter))
|
||||||
|
{
|
||||||
|
versionSpecified = true;
|
||||||
|
}
|
||||||
|
else if (stringsMatch(arg, psConsoleFileParameter))
|
||||||
|
{
|
||||||
|
psConsoleFileSpecified = true;
|
||||||
|
}
|
||||||
|
else if (stringsMatch(arg, runtimeVersionParameter)) {
|
||||||
|
runtimeVersionSpecified = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Find the last 'native' parameter, and chomp everything up until it.
|
||||||
|
while (newArgc > 0 && skipParameter(newArgv[0]))
|
||||||
|
{
|
||||||
|
newArgc--;
|
||||||
|
newArgv++;
|
||||||
|
|
||||||
|
if (versionSpecified) {
|
||||||
|
// skip the next arg if there is one
|
||||||
|
versionSpecified = false;
|
||||||
|
if (newArgc > 0) {
|
||||||
|
newArgc--;
|
||||||
|
newArgv++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (psConsoleFileSpecified) {
|
||||||
|
// skip the next arg if there is one
|
||||||
|
psConsoleFileSpecified = false;
|
||||||
|
if (newArgc > 0) {
|
||||||
|
newArgc--;
|
||||||
|
newArgv++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtimeVersionSpecified) {
|
||||||
|
// skip the next arg if there is one
|
||||||
|
runtimeVersionSpecified = false;
|
||||||
|
if (newArgc > 0) {
|
||||||
|
newArgc--;
|
||||||
|
newArgv++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debug)
|
||||||
|
{
|
||||||
|
::wprintf(L" Attach the debugger to powershell.exe and press any key to continue\n");
|
||||||
|
::getchar();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (helpRequested)
|
||||||
|
{
|
||||||
|
NativeMsh::showHelp();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int exitCode;
|
||||||
|
NativeMsh::HostEnvironment hostEnvironment;
|
||||||
|
|
||||||
|
auto success = TryRun(newArgc, newArgv, hostEnvironment, exitCode, verbose);
|
||||||
|
|
||||||
|
if (verbose)
|
||||||
|
::wprintf(L"Execution %s\n", (success ? L"succeeded" : L"failed"));
|
||||||
|
return exitCode;
|
||||||
|
}
|
||||||
|
}
|
BIN
src/powershell-native/nativemsh/pwrshexe/Monad.ico
Normal file
BIN
src/powershell-native/nativemsh/pwrshexe/Monad.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
46
src/powershell-native/nativemsh/pwrshexe/MshResources.rc
Normal file
46
src/powershell-native/nativemsh/pwrshexe/MshResources.rc
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Copyright (C) 2005 Microsoft Corporation
|
||||||
|
//
|
||||||
|
// resource script for msh.exe
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
#define MANIFEST_RESOURCE_ID 1
|
||||||
|
|
||||||
|
MANIFEST_RESOURCE_ID RT_MANIFEST "powershell.exe.manifest"
|
||||||
|
MSH_MAIN ICON "monad.ico"
|
||||||
|
MSH_SECURITY ICON "powershell_securitybadge.ico"
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
// Elements of our jump list, and file descriptions, and LNK
|
||||||
|
// descriptions
|
||||||
|
101 "Windows PowerShell ISE"
|
||||||
|
102 "Windows PowerShell ISE (x86)"
|
||||||
|
103 "Windows PowerShell Script"
|
||||||
|
104 "Windows PowerShell Data File"
|
||||||
|
105 "Windows PowerShell XML Document"
|
||||||
|
106 "Windows PowerShell Script Module"
|
||||||
|
107 "Windows PowerShell Console File"
|
||||||
|
108 "Run with PowerShell"
|
||||||
|
109 "Windows PowerShell"
|
||||||
|
110 "Windows PowerShell (x86)"
|
||||||
|
111 "Performs object-based (command-line) functions"
|
||||||
|
112 "Run as 32"
|
||||||
|
113 "Windows PowerShell Integrated Scripting Environment. Performs object-based (command-line) functions"
|
||||||
|
118 "Run as Administrator"
|
||||||
|
119 "Runs with administrator privileges"
|
||||||
|
120 "Windows PowerShell Cmdlet Definition XML Document"
|
||||||
|
121 "Windows PowerShell Session Configuration File"
|
||||||
|
122 "Run ISE as Administrator"
|
||||||
|
123 "Runs ISE with administrator privileges"
|
||||||
|
|
||||||
|
// Misc resources
|
||||||
|
|
||||||
|
// Friendly name for our OID mapping
|
||||||
|
124 "Document Encryption"
|
||||||
|
END
|
||||||
|
|
||||||
|
#include "nativemsh.rc"
|
||||||
|
#include "version.rc"
|
235
src/powershell-native/nativemsh/pwrshexe/NativeMsh.mc
Normal file
235
src/powershell-native/nativemsh/pwrshexe/NativeMsh.mc
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
;// Copyright (C) Microsoft Corporation, 2000 - 2002
|
||||||
|
|
||||||
|
MessageId=1
|
||||||
|
SymbolicName=MISSING_COMMAND_LINE_ARGUMENT
|
||||||
|
Language=English
|
||||||
|
Missing argument for parameter %1!ls!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=2
|
||||||
|
SymbolicName=INVALID_CONSOLE_FILE_PATH
|
||||||
|
Language=English
|
||||||
|
Windows PowerShell console file path "%1!ls!" is invalid.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=3
|
||||||
|
SymbolicName=CLR_VERSION_NOT_INSTALLED
|
||||||
|
Language=English
|
||||||
|
Version %1!ls! of the .NET Framework is not installed and it is required to run version %2!ls! of Windows PowerShell.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=4
|
||||||
|
SymbolicName=CORBINDTORUNTIME_FAILED
|
||||||
|
Language=English
|
||||||
|
CLR initialization failed with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=5
|
||||||
|
SymbolicName=STARTING_CLR_FAILED
|
||||||
|
Language=English
|
||||||
|
Starting the CLR failed with HRESULT %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=6
|
||||||
|
SymbolicName=GETTING_DEFAULT_DOMAIN_FAILED
|
||||||
|
Language=English
|
||||||
|
Internal Windows PowerShell error. Default CLR domain initialization failed with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=7
|
||||||
|
SymbolicName=CREATING_MSH_ENTRANCE_FAILED
|
||||||
|
Language=English
|
||||||
|
Internal Windows PowerShell error. Loading managed Windows PowerShell failed with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=8
|
||||||
|
SymbolicName=GETTING_DISPATCH_ID_FAILED
|
||||||
|
Language=English
|
||||||
|
Internal Windows PowerShell error. Retrieving Dispatch ID for managed Windows PowerShell entrance method failed with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=9
|
||||||
|
SymbolicName=INOVKING_MSH_ENTRANCE_FAILED
|
||||||
|
Language=English
|
||||||
|
Internal Windows PowerShell error. Invoking managed Windows PowerShell failed with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=10
|
||||||
|
SymbolicName=MANAGED_MSH_EXCEPTION
|
||||||
|
Language=English
|
||||||
|
Windows PowerShell terminated with the following error: %n %1!ls!
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=11
|
||||||
|
SymbolicName=READ_XML_COM_INIT_FAILED
|
||||||
|
Language=English
|
||||||
|
Internal Windows PowerShell error. COM initialization failed while reading Windows PowerShell console file with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=12
|
||||||
|
SymbolicName=READ_XML_CREATE_DOMDOCUMENT_FAILED
|
||||||
|
Language=English
|
||||||
|
Internal Windows PowerShell error. DOMDocument creation for Windows PowerShell console file failed with error %1!lx!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=13
|
||||||
|
SymbolicName=READ_XML_LOAD_FILE_FAILED
|
||||||
|
Language=English
|
||||||
|
Failed to load Windows PowerShell console file "%1!ls!".
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=14
|
||||||
|
SymbolicName=EMPTY_REG_SZ_VALUE
|
||||||
|
Language=English
|
||||||
|
The value of the registry key %1!ls!\%2!ls! cannot be empty.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=15
|
||||||
|
SymbolicName=READ_XML_GET_CONSOLE_SCHEMA_VERSION_FAILED
|
||||||
|
Language=English
|
||||||
|
Cannot locate the required element ConsoleSchemaVersion in the Windows PowerShell console file "%1!ls!".
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=16
|
||||||
|
SymbolicName=READ_XML_INVALID_CONSOLE_SCHEMA_VERSION
|
||||||
|
Language=English
|
||||||
|
A required element ConsoleSchemaVersion in Windows PowerShell console file "%1!ls!" is invalid.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=17
|
||||||
|
SymbolicName=INVALID_MONAD_VERSION
|
||||||
|
Language=English
|
||||||
|
"%1!ls!" is not a valid Windows PowerShell version. Specify a valid Windows PowerShell version of the format major.minor version.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=18
|
||||||
|
SymbolicName=READ_XML_GET_MONAD_VERSION_TEXT_FAILED
|
||||||
|
Language=English
|
||||||
|
Cannot read the Windows PowerShell version from Windows PowerShell console file "%1!ls!".
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=19
|
||||||
|
SymbolicName=SEARCH_LATEST_REG_KEY_FAILED_WITH
|
||||||
|
Language=English
|
||||||
|
Encountered a problem reading the registry. Cannot read registry key %1!ls!. System error:%n %2!ls!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=20
|
||||||
|
SymbolicName=OPEN_REG_KEY_FAILED_WITH
|
||||||
|
Language=English
|
||||||
|
Encountered a problem reading the registry. Cannot open registry key %1!ls!. System error:%n %2!ls!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=21
|
||||||
|
SymbolicName=CLOSE_REG_KEY_FAILED_WITH
|
||||||
|
Language=English
|
||||||
|
Closing registry key %1!ls! causes the following Win32 error:%n %2!ls!
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=22
|
||||||
|
SymbolicName=READ_REG_VALUE_FAILED_WITH
|
||||||
|
Language=English
|
||||||
|
Reading the value of registry key %1!ls!\%2!ls! causes the following Win32 error:%n %3!ls!
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=23
|
||||||
|
SymbolicName=CREATE_MSHENGINE_REG_KEY_PATH_FAILED_WITH
|
||||||
|
Language=English
|
||||||
|
Encountered a problem creating the registry key path PowerShellEngine. System error:%n %1!ls!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=24
|
||||||
|
SymbolicName=EXPECT_REG_SZ_VALUE
|
||||||
|
Language=English
|
||||||
|
Invalid registry key value. Value for registry key %1!ls!\%2!ls! must be REG_SZ.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=25
|
||||||
|
SymbolicName=MSH_VERSION_NOT_INSTALLED
|
||||||
|
Language=English
|
||||||
|
Cannot start Windows PowerShell version %1!ls! because it is not installed.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=26
|
||||||
|
SymbolicName=INCORRECT_CONSOLE_FILE_EXTENSION
|
||||||
|
Language=English
|
||||||
|
Windows PowerShell console file "%1!ls!" extension is not psc1. Windows PowerShell console file extension must be psc1.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=27
|
||||||
|
SymbolicName=INVALID_REG_MSHVERSION_VALUE
|
||||||
|
Language=English
|
||||||
|
The value of registry key %1!ls!\%2!ls! is an invalid .NET version. Valid version format is major.minor.build.revision.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=28
|
||||||
|
SymbolicName=INCOMPATIBLE_MINOR_VERSION
|
||||||
|
Language=English
|
||||||
|
Cannot start Windows PowerShell. No version of Windows PowerShell compatible to %1!ls! is installed.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=29
|
||||||
|
SymbolicName=NO_COMPLETELY_INSTALLED_FOUND_VERSION
|
||||||
|
Language=English
|
||||||
|
Cannot start Windows PowerShell. No correctly installed versions of Windows PowerShell found.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=30
|
||||||
|
SymbolicName=MISSING_REG_KEY
|
||||||
|
Language=English
|
||||||
|
Encountered a problem reading the registry. Cannot find registry key %1!ls!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=31
|
||||||
|
SymbolicName=READ_XML_LOAD_FILE_FAILED_WITH_SPECIFIC_ERROR
|
||||||
|
Language=English
|
||||||
|
Failed to load Windows PowerShell console file "%1!ls!". WIN 32 error: %2!ls!
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=32
|
||||||
|
SymbolicName=READ_XML_LOAD_FILE_FAILED_WITH_SPECIFIC_POSITION_ERROR
|
||||||
|
Language=English
|
||||||
|
Failed to load Windows PowerShell console file "%1!ls!": %2!ls!At line:%3!li! char:%4!li!
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=33
|
||||||
|
SymbolicName=READ_XML_GET_EMPTY_MONAD_VERSION_TEXT
|
||||||
|
Language=English
|
||||||
|
Windows PowerShell version in the Windows PowerShell console file "%1!ls!" cannot be empty.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=34
|
||||||
|
SymbolicName=READ_XML_GET_PSCONSOLEFILE_FAILED
|
||||||
|
Language=English
|
||||||
|
Cannot locate the required element PSConsoleFile in the Windows PowerShell console file "%1!ls!".
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=35
|
||||||
|
SymbolicName=NOTSUPPORTED_MONAD_VERSION
|
||||||
|
Language=English
|
||||||
|
The requested Windows PowerShell version %1!d! is not supported on WinPE. WinPE supports only Windows PowerShell %1!d!.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=36
|
||||||
|
SymbolicName=NONSTANDARD_CLR_VERSION
|
||||||
|
Language=English
|
||||||
|
Warning: Windows PowerShell was started with CLR version "%1!ls!". This CLR version has not been tested with Windows PowerShell and might not operate properly. For more information about supported versions of the CLR, see http://go.microsoft.com/fwlink/?LinkId=215538.%r%n
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=37
|
||||||
|
SymbolicName=SHELLBANNER1
|
||||||
|
Language=English
|
||||||
|
Windows PowerShell
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=38
|
||||||
|
SymbolicName=SHELLBANNER2
|
||||||
|
Language=English
|
||||||
|
Copyright (C) 2015 Microsoft Corporation. All rights reserved.
|
||||||
|
.
|
||||||
|
|
||||||
|
MessageId=39
|
||||||
|
SymbolicName=MISSING_REG_KEY1
|
||||||
|
Language=English
|
||||||
|
Encountered a problem reading the registry. Cannot find registry key %1!ls!. The Windows PowerShell %2!ls! engine is not installed on this computer.
|
||||||
|
.
|
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
|
||||||
|
<assembly
|
||||||
|
xmlns="urn:schemas-microsoft-com:asm.v1"
|
||||||
|
manifestVersion="1.0"
|
||||||
|
>
|
||||||
|
<description>PowerShell</description>
|
||||||
|
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<security>
|
||||||
|
<requestedPrivileges>
|
||||||
|
<requestedExecutionLevel
|
||||||
|
level="asInvoker"
|
||||||
|
uiAccess="false"
|
||||||
|
/>
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
|
<application>
|
||||||
|
<!--This Id value indicates the application supports Windows Vista/Server 2008 functionality -->
|
||||||
|
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||||
|
<!--This Id value indicates the application supports Windows 7/Server 2008 R2 functionality-->
|
||||||
|
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||||
|
<!--This Id value indicates the application supports Windows 8/Server 2012 functionality-->
|
||||||
|
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||||
|
<!-- This Id value indicates the application supports Windows Blue/Server 2012 R2 functionality-->
|
||||||
|
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||||
|
<!-- This Id value indicates the application supports Windows Threshold functionality-->
|
||||||
|
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||||
|
</application>
|
||||||
|
</compatibility>
|
||||||
|
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<windowsSettings>
|
||||||
|
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||||
|
</windowsSettings>
|
||||||
|
</application>
|
||||||
|
</assembly>
|
Binary file not shown.
After Width: | Height: | Size: 293 KiB |
13
src/powershell-native/nativemsh/pwrshexe/version.rc
Normal file
13
src/powershell-native/nativemsh/pwrshexe/version.rc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// Copyright (C) Microsoft. All rights reserved.
|
||||||
|
//
|
||||||
|
#include <windows.h>
|
||||||
|
#include <ntverp.h>
|
||||||
|
|
||||||
|
#define VER_FILETYPE VFT_APP
|
||||||
|
#define VER_FILESUBTYPE VFT2_UNKNOWN
|
||||||
|
#define VER_FILEDESCRIPTION_STR "Windows PowerShell"
|
||||||
|
#define VER_INTERNALNAME_STR "POWERSHELL"
|
||||||
|
#define VER_ORIGINALFILENAME_STR "PowerShell.EXE"
|
||||||
|
|
||||||
|
#include <common.ver>
|
Loading…
Reference in New Issue
Block a user