ActiveDirectory 启动/关闭 PowerShell 脚本未执行,静默失败

ActiveDirectory 启动/关闭 PowerShell 脚本未执行,静默失败

环境

  • Windows Server 2012 域
  • Windows 10 版本 2004 客户端

我正在尝试在测试 OU 上部署 ActiveDirectory 启动或关闭 powershell 脚本来更新 VLC 媒体播放器,但我不明白为什么 powershell 没有运行。

我在用着本文作为模板,具体来说是以powershell.exe脚本名称运行的技巧以及以下面的参数作为脚本参数来解决执行策略。

它们是使用组策略 > 计算机配置 > 策略 > Windows 设置 > 脚本(启动/关闭)在名为“部署 Active Directory 脚本”的 GPO 中配置的:

  • 脚本名称:%windir%\System32\WindowsPowerShell\v1.0\powershell.exe
  • 脚本参数:-NonInteractive -ExecutionPolicy Bypass –NoProfile -File "%~dp0Update_VLC.ps1"

Update_VLC.ps1已保存在相应的\Machine\Scripts\文件夹中,并且相应的计算机安全组对其具有读取/执行权限。GPO 似乎配置正确,因为:

  1. 当我gpresult在客户端运行时,它报告

设置

政策

Windows 设置

脚本

启动

名称 | 参数 | 上次运行 | GPO 中的脚本顺序 | 获胜 DPO

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe| -NonInteractive -ExecutionPolicy Bypass -NoProfile -File "%~dp0Update_VLC.ps1"| 21/07/2020 2:47:10 PM| Not configured|Deploy Active Directory Scripts

  1. 当我psexec -i -s cmd.exe通过在计算机的 LocalSystem 帐户上下文中从同一位置运行脚本来在客户端上进行故障排除时,它可以起作用。

我还尝试运行.cmd脚本文件来运行 powershell 命令。.cmd文件本身可以执行,但其中的 powershell 调用会默默失败,即使将输出重定向到文件也是如此。

任何建议都值得赞赏。

编辑:更新。

.cmd最终我通过以下调用得到了这个文件(我原来的文件有拼写错误.cmd):

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -ExecutionPolicy Bypass -NoProfile -File %~dp0Update_VLC.ps1

使用输入的相同参数似乎不起作用姓名参数脚本(启动/关闭)如下:

脚本名称:%windir%\System32\WindowsPowerShell\v1.0\powershell.exe

脚本参数:-NonInteractive -ExecutionPolicy Bypass –NoProfile -File %~dp0Update_VLC.ps1

我使用的内容中可能存在我看不到的拼写错误(如果有,如果有人能指出,我将不胜感激)。或者建议的直接方法关联(与使用 Windows 命令脚本相反)不起作用。很高兴收到反馈。

相关内容