使用提升的权限从批处理文件运行Powershell脚本?

时间:2018-02-17 06:48:03

标签: powershell batch-file

我想从<StackPanel Orientation="Horizontal"> <StackPanel.Triggers> <EventTrigger RoutedEvent="Rectangle.Loaded"> <BeginStoryboard> <Storyboard Name="waitingAnimation" RepeatBehavior="Forever"> <DoubleAnimation Storyboard.TargetName="Dot1" BeginTime="0:0:0.1" Storyboard.TargetProperty="Opacity" From=".1" To="1" AutoReverse="True" Duration="0:0:0.4"/> <DoubleAnimation Storyboard.TargetName="Dot2" BeginTime="0:0:0.2" Storyboard.TargetProperty="Opacity" From=".1" To="1" AutoReverse="True" Duration="0:0:0.4"/> <DoubleAnimation Storyboard.TargetName="Dot3" BeginTime="0:0:0.3" Storyboard.TargetProperty="Opacity" From=".1" To="1" AutoReverse="True" Duration="0:0:0.4"/> </Storyboard> </BeginStoryboard> </EventTrigger> </StackPanel.Triggers> <Ellipse Name="Dot1" Fill="White" Opacity=".1" Width="8" Height="8"/> <Ellipse Name="Dot2" Fill="White" Opacity=".1" Width="8" Height="8" Margin="2,0,0,0"/> <Ellipse Name="Dot3" Fill="White" Opacity=".1" Width="8" Height="8" Margin="2,0,0,0"/> </StackPanel>

运行example.ps1

我意识到code.bat命令会运行它,但要求它以管理员身份运行,我该怎么做?

1 个答案:

答案 0 :(得分:1)

在批处理文件中:

powershell -Command "&{ Start-Process powershell -ArgumentList '-File C:\folder\psfile.ps1' -Verb RunAs}"

...基本上你使用Powershell来运行Powershell。第二个实例被提升为Admin,并且正在运行具有这些权限的脚本。

完整的解释:

Start-Process可用于运行程序,并且还具有参数-Verb RunAs,该参数可将程序提升为以管理员身份运行。

我们无法从批处理文件中调用Start-Process,因为它是PowerShell命令。

但我们可以从批处理文件运行powershell,然后使用-command参数运行Start-Process

我们使用Start-Process再次运行powershell并在将脚本提升为管理员时运行您的脚本:-ArgumentList '-File C:\folder\psfile.ps1' -Verb RunAs