Оператор вызова PowerShell с аргументом - PullRequest
0 голосов
/ 04 октября 2018

Извините, ребята, я редактирую свой пост, потому что у вас не было всей информации .Цель этого скрипта - запустить другой скрипт с аргументами с повышенными привилегиями

Я называю скрипт так:

./myscript.ps1 "ScriptName.ps1" "Argument1" "Argument2"

Это весь мой скрипт (myscript.ps1):

# ELEVATED SCRIPT
$ScriptName = $args[0]
$Argument1 = $args[1]
$Argument2 = $args[2]

If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{
  # Relaunch as an elevated process:
  Start-Process powershell.exe "-File",('"{0}"' -f $MyInvocation.MyCommand.Path) -Verb RunAs
  exit
}
# Now running elevated so launch the script:
& $ScriptName $Argument1 $Argument2
Pause
# This function allows me to see variables content
function Pause ($Message="Press any key to continue…")
{
Write-Host -NoNewLine $Message
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Write-Host “”
}

В этой строке переменные равны нулю:

& $ScriptName $Argument1 $Argument2

Этот скрипт работает, если я изменяю верхнюю часть скрипта:

$ScriptName = "mycommand.exe"
$Argument1 = "something"
$Argument2 = "something_else"

Надеюсь, на этот раз все достаточно ясно.

1 Ответ

0 голосов
/ 11 октября 2018

Я решил свою проблему.Я перестаю пытаться выполнить другой скрипт с повышенными привилегиями.Я изменил свой сценарий, чтобы повысить его.Тогда у меня нет проблем с моими переменными.

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...