Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在runonce键中运行powershell脚本?_Powershell_Windows 7_Runonce - Fatal编程技术网

如何在runonce键中运行powershell脚本?

如何在runonce键中运行powershell脚本?,powershell,windows-7,runonce,Powershell,Windows 7,Runonce,我对powershell.exe的调用如下所示,它可以从我的命令行工作: powershell.exe -noexit -command " & 'C:\Test\test.ps1' " 但是,当我在当前用户的runonce键中以这种方式输入该条目时,什么也没有发生 通过runonce或run传递参数调用powershell.exe的正确方法是什么?尝试使用完整路径: c:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -

我对powershell.exe的调用如下所示,它可以从我的命令行工作:

powershell.exe -noexit -command " & 'C:\Test\test.ps1' "
但是,当我在当前用户的runonce键中以这种方式输入该条目时,什么也没有发生

通过runonce或run传递参数调用powershell.exe的正确方法是什么?

尝试使用完整路径:

c:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -noexit "C:\Test\test.ps1" 


另一种稍有不同的方法是将所有对powershell.exe的调用以及所有参数/参数放入一个简单的*.bat文件中,然后从RunOnce键调用该*.bat文件。这样你就不需要和params玩了,有时候会搞砸的。PowerShell脚本甚至可以删除该*.bat文件,因为它只需要一次。

使用file参数而不是命令。 您还可以使用一些其他参数来清理内容(noprofile、sta和/或WindowStyle)

这是我使用的一个例子

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -noprofile -sta -WindowStyle Hidden -File "C:\Test\Test.ps1"

谢谢,这是路径的问题,它在commandshell中工作,因为我猜powershell路径在已登录时在我的环境设置中,但在执行runonce键时还没有。但是,我使路径更加通用:%WINDIR%\system32\WindowsPowerShell\v1.0\powershell.exe,并在将另一个powershell脚本中的路径添加到注册表之前使用ExpandEnvironmentString。这是否也适用于Win7 x64?如果要更改脚本的工作目录,该怎么办?
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -noprofile -sta -WindowStyle Hidden -File "C:\Test\Test.ps1"