Windows 如何运行PowerShell脚本

Windows 如何运行PowerShell脚本,windows,powershell,scripting,Windows,Powershell,Scripting,如何运行PowerShell脚本 我有一个名为myscript.ps1的脚本 我已经安装了所有必要的框架 那东西是我定的 我已经按照上面的说明做了 我试着这样运行它: powershell.exe'C:\my\u path\yada\u yada\run\u import\u script.ps1'(带或不带——noexit) 它完全不返回任何内容,只是输出了文件名 没有错误,没有消息,什么都没有。哦,当我添加-noexit时,同样的情况也会发生,但我仍在PowerShell中,必须手动退出

如何运行PowerShell脚本

  • 我有一个名为myscript.ps1的脚本
  • 我已经安装了所有必要的框架
  • 那东西是我定的
  • 我已经按照上面的说明做了 我试着这样运行它:
    powershell.exe'C:\my\u path\yada\u yada\run\u import\u script.ps1'
    (带或不带
    ——noexit
它完全不返回任何内容,只是输出了文件名

没有错误,没有消息,什么都没有。哦,当我添加
-noexit
时,同样的情况也会发生,但我仍在PowerShell中,必须手动退出

.ps1文件应该运行一个程序,并根据该程序的输出返回错误级别。但我很确定我还没到那里

我做错了什么

  • 启动Windows PowerShell,然后等待
    PS
    命令提示符出现
  • 导航到脚本所在的目录

    PS> cd C:\my_path\yada_yada\ (enter)
    
  • 执行脚本:

    PS> .\run_import_script.ps1 (enter)
    
  • 我错过了什么

    或者:您可以从
    cmd.exe
    运行PowerShell脚本,如下所示:

    powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
    
    type "script_path" | powershell.exe -c -
    
    据此,

    或者您甚至可以从C应用程序运行PowerShell脚本:-)


    如果您使用的是PowerShell 2.0,请使用PowerShell.exe的
    -File
    参数从其他环境(如cmd.exe)调用脚本。例如:

    Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
    

    我也有同样的问题,我试了又试。。。最后我用了:

    powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
    

    并将这一行放入批处理文件中,这样做就可以了。

    如果您只有PowerShell 1.0,这似乎可以很好地完成以下任务:

    powershell -command - < c:\mypath\myscript.ps1
    
    powershell-command-

    它将脚本文件通过管道传输到PowerShell命令行。

    如果要在不修改默认脚本执行策略的情况下运行脚本,可以在启动Windows PowerShell时使用旁路开关

    powershell [-noexit] -executionpolicy bypass -File <Filename>
    
    powershell[-noexit]-执行策略旁路-文件
    
    • 给出脚本的路径,即通过cmd设置路径:

      $>。c:\program file\prog.ps1

    • 运行PowerShell的入口点函数:

      例如,
      $>add或entry\u func或main

    使用cmd(BAT)文件:

    如果需要以管理员身份运行

  • 创建一个指向命令提示符的快捷方式(我将其命名为 管理命令提示符)
  • 打开快捷方式的属性并转到“兼容性”选项卡
  • 在“权限级别”部分下,确保选中“以管理员身份运行此程序”旁边的复选框
  • 类型:

    powershell-executionpolicy bypass-File。\Test.ps1


    注意:这里的
    Test.ps1
    是PowerShell脚本。

    非常简单。在Windows中右键单击.ps1文件,然后在shell菜单中单击Run with PowerShell。

    如果您的脚本使用扩展名
    .ps1
    命名,并且您位于PowerShell窗口中,则只需运行
    /myscript.ps1
    (假设该文件位于您的工作目录中)

    这对我来说在Windows 10上的PowerShell 5.1版也是如此,我认为我没有做任何事情来实现这一点。

    一个简单的方法是使用、打开脚本、运行和调用脚本、函数


    如果要使用Windows任务计划程序运行PowerShell脚本,请执行以下步骤:

  • 创建任务

  • Program/Script
    设置为
    Powershell.exe

  • 参数设置为
    -文件“C:\xxx.ps1”


  • 这是另一个答案。

    使用文件名前面的
    -File
    参数。引号使PowerShell认为这是一系列命令。

    我有一个非常简单的答案:

  • 在管理员模式下打开PowerShell
  • 运行:
    set executionpolicy unrestricted
  • 打开常规PowerShell窗口并运行脚本
  • 我在错误消息中给出的链接后发现此解决方案:


    编辑:完成后,请确保运行
    设置执行策略默认值
    ,否则您将面临安全风险(感谢匿名用户)。

    您可以从cmd运行,如下所示:

    powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
    
    type "script_path" | powershell.exe -c -
    

    你的博客链接做到了。我必须使用
    powershell-noexit“&“C:\yada\u yada\run\u import\u script.ps1”
    (注意这三个双引号)我真的不明白为什么,但在这一点上,我真的不在乎:)非常感谢。
    “&
    到底做了什么?根据我们的说法,“&”代表“如果你真的想执行这个字符串值”(也就是说,如果要运行路径包含在双引号中的脚本,则需要在路径前面加上Call运算符(与号)。”在我为新创建的未签名脚本绕过powershell的默认执行策略之前,所有这些都不适用于我。除此之外,这需要以管理员身份重新启动powershell。完全同意@LukePlupett的观点-让最简单的用例花20分钟的时间进行谷歌搜索和搜索是非常棒的。还有错误消息!显然,这些人在70年代在IBM工作。正如下面的一条评论所述,执行策略必须被绕过。这里没有讨论的一项是如何从命令行运行powershell脚本并传入参数。为此,请键入
    powershell-executionpolicy bypass。“\myscript.ps1 yadayada”
    是否有方法向此类调用添加参数?您应该能够在脚本文件路径后跟踪参数。由于在此系统上禁用了脚本的执行,因此无法从PowerShell.exe使用-[-file]”加载。有关详细信息,请参阅“获取有关签名的帮助”如果尚未在系统上启用PowerShell脚本执行,请添加参数
    -ExecutionPolicy Bypass
    FYI,以我的经验,这也适用于PowerShell 1.0(Windows 2012 Server),这应该是e