Как вызвать ярлык приложения в PowerShell и передать аргументы
Мне нужно вызвать MSTEST.exe, передавая аргументы как "повышенные / admin" от учетной записи, которая не является администратором, и не может быть. Я создал ярлык для MSTest.exe под названием "MSTest_Elevated.lnk". Я могу вызвать это и передать параметры через командную строку, и все работает нормально, см. Ниже:
REM Set up test executable variables
REM SET MSTEST_EXECUTABLE="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\mstest.exe"
SET MSTEST_EXECUTABLE="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest_Elevated.lnk"
SET NUNIT_EXECUTABLE="C:\Program Files (x86)\NUnit 2.6.4\bin\nunit-console.exe"
CD %WORKSPACE%
SET WORKSPACE_TEST_RESULTS=%WORKSPACE%\TestResults_Integration
REM Create test result folder
IF NOT EXIST "%WORKSPACE_TEST_RESULTS%\" ECHO "Creating %WORKSPACE_TEST_RESULTS%"
IF EXIST "%WORKSPACE_TEST_RESULTS%\" ECHO "%WORKSPACE_TEST_RESULTS% EXISTS"
IF NOT EXIST "%WORKSPACE_TEST_RESULTS%\" md "%WORKSPACE_TEST_RESULTS%"
REM Run the tests
%MSTEST_EXECUTABLE% /resultsfile:"MyServiceTestsResults.trx" /testcontainer:"MyService\Test\Unit\MyServiceTests\bin\Release\MyServiceTests.dll" /nologo
REM Clear up test executable variables
SET MSTEST_EXECUTABLE=
SET NUNIT_EXECUTABLE=
Однако мое решение не может использовать командную строку и должно использовать PowerShell. Я могу вызвать MSTEST из PowerShell, но не с правами администратора. Это также терпит неудачу, если я пытаюсь вызвать повышенный ярлык.
Execute-Command -commandTitle "MSTest" -commandPath "`"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\mstest.exe`"" -commandArguments "/xml:`"MyServiceTestsResults.trx`" `"MyService\Test\Unit\MyServiceTests\bin\Release\MyServiceTests.dll`" /nologo ";
Ярлык, кажется, работает без сбоев, но MSTEST не вызывается. Так...
Есть ли способ вызвать MSTest.exe с помощью повышенного ярлыка с параметрами таким же образом в PowerShell, как я могу от вызова его из BAT- файла?