【问题标题】:How to run a powershell script in runonce-Key?如何在 runonce-Key 中运行 powershell 脚本?
【发布时间】:2023-04-09 17:33:02
【问题描述】:

我有一个看起来像这样的 powershell.exe 调用,它可以在我的命令行中运行:

powershell.exe -noexit -command " & 'C:\Test\test.ps1' "

但是,当我在当前用户的 runonce-key 中完全以这种方式输入该条目时,什么也没有发生。

从runonce或run调用powershell.exe传参的正确方法是什么?

【问题讨论】:

    标签: powershell windows-7 runonce


    【解决方案1】:

    尝试使用完整路径:

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

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

    【讨论】:

    • 谢谢,这是路径的问题,它在 commandshell 中工作,因为我猜 powershell-path 在我已经登录时在我的环境设置中,但在执行 runonce-key 时还没有。但是,我使路径更加通用:%WINDIR%\system32\WindowsPowerShell\v1.0\powershell.exe,并在将该路径从另一个 powershell 脚本添加到注册表之前使用 ExpandEnvironmentStrings。这也适用于 Win7 x64 吗?
    • 如果要更改脚本的工作目录怎么办?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      使用 File 参数代替命令。 您还可以使用其他一些参数来清理 (noprofile、sta 和/或 WindowStyle)

      这是我使用的一个例子。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 2014-03-23
        相关资源
        最近更新 更多