具有参数的PowerShell调用运算符

时间:2018-10-04 16:10:42

标签: powershell arguments

对不起,我编辑我的信息是因为您没有所有信息。 该脚本的目标是启动另一个具有提升权限的参数的脚本

我这样称呼脚本:

./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 :(得分:0)

我已经解决了我的问题。 我停止尝试以更高的特权执行另一个脚本。 我已将脚本修改为自我提升。然后,我的变量没有任何问题。

非常感谢。