环境
- 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 似乎配置正确,因为:
- 当我
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
- 当我
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 命令脚本相反)不起作用。很高兴收到反馈。