使用提升的权限和传递的参数从cmd运行powershell脚本

50few1ms  于 2023-03-23  发布在  Shell
关注(0)|答案(2)|浏览(149)

我尝试使用提升的权限从cmd运行powershell脚本,但我需要向powershell脚本传递一个参数。这是我使用的批处理文件的代码:

echo off
cls
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -Verb runas -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dp0\MigrationTool.ps1 -ConfigFile ConfigFile.xml""'}"

当我使用上面的代码时,脚本什么也不做。
如果我不带-ConfigFile参数运行脚本,脚本运行后会提示我输入配置文件,虽然我收到提示后只输入配置文件,但脚本仍然不起作用。
我在互联网上做了一点挖掘,但找不到任何解决方案。
谢谢。

mrfwxfqh

mrfwxfqh1#

谢谢你的帮助,但我有一个解决我的问题的方法.请参阅下面的其他人推荐:
回显关闭CLS
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command“Start-Process -FilePath PowerShell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File“%~dp0MigrationTool.ps1”-ConfigFile“%~dp0ConfigFile.xml”“
谢谢你的帮助。

xt0899hw

xt0899hw2#

我通常是这样做的:

@echo off

REM Calling script without parameters
REM powershell.exe -ExecutionPolicy Bypass -File E:\scripts\some-ps-script.ps1

REM Calling script with option 'Parameter'
powershell.exe -ExecutionPolicy Bypass -File "E:\scripts\some-ps-script.ps1" -Parameter

这应该适用于您的情况:

powershell.exe -ExecutionPolicy Bypass -File "E:\scripts\some-ps-script.ps1 -ConfigFile E:\scripts\ConfigFile.xml"

相关问题