Powershell 从本地服务帐户运行BitsTransfer

Powershell 从本地服务帐户运行BitsTransfer,powershell,download,Powershell,Download,我正在制作一些脚本,使我的工作更容易一点。 我需要的一件事是下载一些无法使用的文件。我首先将powershell与Invoke WebRequest命令一起使用 它工作得非常好,但是它不能在Windows7计算机上运行,因为他们有PowerShell2。因为我的Windows7和Win10一样多,所以我需要找到另一种方法 我发现开始比特串是一个很好的方法,应该适用于大多数计算机。我现在的问题是,当通过远程支持会话使用脚本时,它会在本地服务帐户上运行脚本,然后BitsTransfer不会运行,并给

我正在制作一些脚本,使我的工作更容易一点。 我需要的一件事是下载一些无法使用的文件。我首先将powershell与Invoke WebRequest命令一起使用

它工作得非常好,但是它不能在Windows7计算机上运行,因为他们有PowerShell2。因为我的Windows7和Win10一样多,所以我需要找到另一种方法

我发现开始比特串是一个很好的方法,应该适用于大多数计算机。我现在的问题是,当通过远程支持会话使用脚本时,它会在本地服务帐户上运行脚本,然后BitsTransfer不会运行,并给我一个错误。(0x800704DD)


有没有办法解决这个问题,或者任何可以在win 7和win 10上使用并从本地服务帐户运行的命令?

您应该将PowerShell更新为状态,但如果您不是此决策的负责人,则必须采取其他步骤

此错误代码

0x800704DD

由于系统事件通知服务(SENS)未接收到用户登录通知,因此出现错误消息error_NOT_LOGGED_ON。BITS(版本2.0及以上)取决于来自服务控制管理器的登录通知,而服务控制管理器又取决于SENS服务。确保SENS服务已启动并正确运行

默认情况下,BITS在LocalSystem帐户下运行。要修改、停止或重新启动BITS,您必须以管理员身份登录。在您的情况下,当您登录常规帐户并以提升权限启动PS时,BITS不会在常规用户帐户下运行。要解决此问题,您可能需要为BITS配置登录用户。请访问以下链接以配置服务的启动方式

配置如何启动服务

服务通常使用默认设置运行-例如,服务 可在启动时自动禁用。但是,您可以使用 “服务”管理单元更改服务的默认设置。这是 如果您正在对服务故障进行故障排除或需要,此功能非常有用 更改运行服务的安全帐户。会员资格 帐户操作员或域管理员、企业管理员或同等人员, 是完成此程序所需的最低要求。查看详细信息 在本主题的“其他注意事项”中


我也同意您不应该继续支持PowerShell 2.0。理想情况下,抛弃Windows 7(现在太旧了),如果你做不到,升级PowerShell,如果你做不到,找一份新工作,如果你做不到,那么我想采取变通办法吧

您可以做的另一件事是只使用.Net framework的底层库,这正是
Invoke RestMethod
Invoke WebRequest
所要做的(这些cmdlet是在PowerShell 3.0中引入的,但它们的内涵要长得多)

大多数人不会在PowerShell中处理
IDisposable
对象,因此您会看到很多类似这样的速记:

(New-Object Net.WebClient).DownloadFile($url, $path)

如果您的脚本进程暂时无法运行,这可能没什么问题,但最好记住,以防您将其整合到更大规模的应用程序中。

为什么不在Windows 7机器上更新PowerShell版本?我无法停止支持win 7,因此我需要一个解决方法。我以前尝试过你的建议,但它也给了我一个错误:使用“2”参数调用“DownloadFile”时发生异常:“WebClient请求期间发生异常”。没关系。我写错了。它就像一个符咒。
(New-Object Net.WebClient).DownloadFile($url, $path)