从本地服务帐户运行BitsTransfer
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从本地服务帐户运行BitsTransfer相关的知识,希望对你有一定的参考价值。
我正在制作一些脚本,以使我的工作更容易一些。我需要的一件事是下载一些文件来使用。我首先使用命令Invoke-WebRequest使用powershell。
它工作得很好,但是它不能在Windows 7计算机上运行,因为它们有powershell 2.因为我有尽可能多的Windows 7个人的胜利10我需要找到另一种方式。
我发现Start-BitsTransfer是一种适用于大多数计算机的好方法。我现在的问题是,当通过我的远程支持会话使用脚本时,它在本地服务帐户上运行脚本,然后BitsTransfer不会运行并给我一个错误。 (0x800704DD)
有没有办法解决这个问题,或者可以在win 7和10上使用并从本地服务帐户运行的任何命令?
我也同意你不应该继续支持PowerShell 2.0。理想情况下,抛弃Windows 7(它现在太旧了),如果你不能这样做,升级PowerShell,如果你不能这样做,找一份新工作,如果你不能这样做,那么我猜解决方法!
postanote's answer covers the BITS angle。
你可以做的另一件事就是使用.Net框架的底层库,这正是Invoke-RestMethod
和Invoke-WebRequest
所做的(这些cmdlet是在PowerShell 3.0中引入的,但它们的内容要长得多)。
try {
$wc = New-Object -TypeName System.Net.WebClient
$wc.DownloadFile($url, $path)
finally {
$wc.Dispose()
}
大多数人都不打扰在PowerShell中处理IDisposable
对象,所以你会看到很多这样的简写:
(New-Object Net.WebClient).DownloadFile($url, $path)
如果你的脚本的过程不会出现一段时间,这可能就好了,但是如果你把它整合到更大规模的东西中,最好记住。
您应该更新PowerShell作为gms0ulman状态,但如果您不是负责此决定的人,则必须采取其他步骤。
这个错误代码......
0x800704DD
出现错误消息ERROR_NOT_LOGGED_ON,因为系统事件通知服务(SENS)未收到用户登录通知。 BITS(版本2.0及更高版本)取决于来自服务控制管理器的登录通知,而后者又取决于SENS服务。确保SENS服务已启动并正常运行。
默认情况下,BITS在LocalSystem帐户下运行。要修改,停止或重新启动BITS,您必须以管理员身份登录。在您的情况下,当您登录常规帐户并以提升权限启动PS时,BITS不会在常规用户帐户下运行。要解决此问题,您可能需要为BITS配置登录用户。请访问以下链接以配置服务的启动方式。
配置服务的启动方式
服务通常使用默认设置运行 - 例如,服务可能会在启动时自动禁用。但是,您可以使用“服务”管理单元更改服务的默认设置。如果要对服务故障进行故障排除,或者需要更改运行服务的安全帐户,这将非常有用。帐户操作员或域管理员,企业管理员或同等人员的成员身份是完成此过程所需的最低要求。查看本主题中“其他注意事项”中的详细信息。
以上是关于从本地服务帐户运行BitsTransfer的主要内容,如果未能解决你的问题,请参考以下文章