问题标签 [microsoft-bits]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
499 浏览

operating-system - SCCM 1710 - 客户端数据源报告不正确

我有 800 个客户端启用了分支缓存,但是在部署包时,我没有看到客户端数据源报告显示客户端使用了分支缓存。

我在部署包后等待了 48 小时,但它仍然在报告中显示所有内容都由服务器提供。

我通过 Perfmon 在三个客户端上看到的内容:

部署到单个客户端

  • BITS: Bytes from ServerRetrieval: Bytes from Server填充了我期望从我的包中获得的 20mb。

30 分钟后部署到同一子网上的另外两个客户端

  • BITS: Bytes from CacheRetrieval: Bytes from Cache填充了我期望从我的包中获得的 20mb。
  • 在最初的客户端上,我还看到Retrieval: Bytes Served大约 40mb,这与证明它已将缓存的内容发送到其他两个设备一致。

客户端配置:

  • BITS 启用
  • 使用以下设置启用客户端缓存
    • 配置 BranchCache - 是
    • 启用 BranchCache - 是
    • 最大缓存大小 - 10%

包配置:

  • 允许客户端与同一子网上的其他客户端共享内容被选中。

这将表明内容来自缓存。

0 投票
0 回答
793 浏览

windows-10 - 如何以系统帐户开始 BITS 下载?当前错误:“用户尚未登录网络”0x800704DD

我正在尝试在 GPO 启动脚本中启动 BITS 服务下载。启动脚本作为本地 SYSTEM 帐户启动,根据 Microsoft 的文档https://msdn.microsoft.com/en-us/library/windows/desktop/aa363152(v=vs.85).aspx非常适合后台下载

可悲的是,当我尝试开始下载(忽略有效的源或目标)时,我收到以下错误:

这只是一个测试,实际的 BITS 传输是在 GPO 启动脚本中启动的 ac# 应用程序中启动的。通过 Sysinternals PSExec 对手动创建的进程进行进一步测试会产生相同的错误。

在 whoami /all 中对安全主体的额外检查看起来不错:

我检查了服务 BITS 和 SENS - 都在运行。

总结一下:

  • 如何在启动脚本中成功启动 BITS 下载作为 SYSTEM?
  • 考虑到系统帐户始终处于登录状态,“用户尚未登录网络”的错误有什么意义?“指定的服务不存在”是什么意思。- 什么服务?
0 投票
1 回答
531 浏览

http-headers - BITS 作业在尝试下载 zip 文件时引发错误

尝试从远程服务器下载 zip 文件时,我们从 BITS 作业中收到此错误(我们为该服务器上的 zip 文件实现了 HTTP 处理程序):

错误代码:0x80200013 - 服务器不支持必要的 HTTP 协议。后台智能传输服务 (BITS) 要求服务器支持 Range 协议标头。
错误上下文:0x00000005 - 处理远程文件时发生错误。

我的理解是该错误表明我们应该添加 Content-Range 标头。我添加了标题,现在代码如下所示:

,但我一直收到同样的错误。

我还尝试了以下行:

但最终出现了另一个错误:“与服务器的连接异常终止”。下载链接在浏览器中运行良好。

我将不胜感激任何想法,谢谢!

0 投票
2 回答
731 浏览

powershell - Powershell 一次将 BITS 传输限制为 4 个

我正在编写一个脚本,以使用 BITS 将 Office 365 ProPlus 二进制文件传输到 12 个单独的文件共享。我还想在屏幕上显示这些传输的进度。我的问题是,我想将同时 BITS 传输的数量限制为一次不超过 4 个。当一个作业完成时,我想开始队列中的下一个作业并继续接收进度,直到所有作业完成。

这就是我到目前为止所拥有的。我首先从这个函数开始,为处于挂起状态的所有网络位置创建我的所有 BITS 作业。

创建完所有作业后,我会尝试使用此 While 循环一次启动 4 个作业,并在执行过程中显示进度。不幸的是,实际行为是它会尝试同时启动所有 12 个作业,这会导致网络资源陷入困境。

0 投票
1 回答
273 浏览

c# - 如何在 .Net 中使用后台传输服务上传文件

我想使用 BITS 扩展将文件上传到 IIS 服务器。我有一个成功上传的powershell脚本:

其中“filelist.txt”是包含以下内容的 CSV 文件:

Source, Destination iis-85.png, http://172.18.3.131/Uploads/iis-85.png

要通过 C# 上传,我使用以下代码段:

但作业状态始终显示为排队。

0 投票
1 回答
682 浏览

windows-server-2012 - Windows 2012 位传输

我的 Windows 2012 服务器很少,但我无法使用 Start-BitsTransfer cmdlet。相同的 cmdlet 在 Windows 服务器 Windows 2012 R2 和 2016 上运行良好。您知道在 Windows Server 2012 中应该启用什么吗?

Start-BitsTransfer - 源 https://...

Start-BitsTransfer : 安全通道支持出现错误 At line:1 char:1 + Start-BitsTransfer -source https://... + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Start-BitsTransfer], 异常 + FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBitsTransferCommand

0 投票
1 回答
130 浏览

c# - 如何检索我的 BITS 作业的状态?

我正在使用 Microsoft.ConfigurationManagement.Messaging 包来使用 BITS。到目前为止,我已经编写了以下代码:

现在我想在 do-while-statement 中检索作业的状态。我找不到BitsJob返回作业当前状态的实例的属性或方法。有人可以告诉我如何获得当前的工作状态吗?

0 投票
3 回答
898 浏览

powershell - 使用 Powershell 重试 BITS 文件传输失败的下载

我正在从网络服务器进行每日图像的 BITS 传输,并且在传输过程中我不断得到随机丢弃。

当它循环下载时,我偶尔会收到“连接过早关闭”或“安全通道支持中发生错误”。每个文件夹中大约有 180 张图像,其中可能有 5-10% 发生这种情况。对于那些未完成的,我需要重试下载。

我这样做的代码如下 - 我不完美的解决方法是运行循环两次,但我希望找到更好的解决方案。

0 投票
1 回答
90 浏览

amazon-web-services - 通过 BITS 下载 AWS S3

我知道我可以使用 Powershell 通过 VPN 从我的服务器启动和管理 BITS(后台智能传输服务)下载,我希望这样做以在普通用户登录时在本地暂存大型安装资源,准备好在软件稍后安装和更新。但是,我还想支持下载存储库的云服务,因为我预见(一些)公司不再拥有集中式服务器和 VPN 连接,只有云存储库和分布式劳动力。为此,我已经使用Copy-S3Object来自 AWS Powershell 工具,并且有效。但据我所知,它不能节流。所以我想知道,有没有办法配置我的 AWS 存储桶,以便我可以使用 BITS 进行下载,但仍受 AWS 凭证的限制?如果有,该技术是否适用于多种云服务,例如 Azure 和谷歌云?如果可能的话,我希望成为云平台不可知论者。

我找到了这个线程,这似乎表明创建预签名 URL 是可行的。但我对这个过程的理解是,嗯,不存在。我目前正在为每个用户创建凭据。我是否基本上将这些用户分配给 AWS 组并赋予该组一些权限,然后 Powershell 可用于使用特定用户的凭证签署 URL,而该 URL 是 BITS 使用的?因此,已从组中删除的用户将不再能够创建签名 URL,因此将不再能够访问可用资源?

或者,如果有一种节流方法Copy-S3Object也可以。但据我所知,这不是一个选择。

0 投票
2 回答
232 浏览

windows - 如何在 Packer 供应商中使用 BITS 下载文件?

我正在 PowerShell 中为 CI 管道上的 Packer 构建的 Windows 映像编写配置脚本。此过程涉及下载几个大文件。我的印象是BITS比 快Invoke-WebRequest,所以我决定使用 BITS 来异步下载这些大文件。

问题是 BITS只会为交互式登录的用户处理作业......

BITS 仅在作业的所有者登录到计算机时传输文件(用户必须以交互方式登录)。BITS 不支持RunAs命令。

...除非作业是由服务帐户提交的

您可以使用 BITS 从服务传输文件。该服务必须使用 LocalSystem、LocalService 或 NetworkService 系统帐户。这些帐户始终处于登录状态;因此,使用这些帐户的服务提交的作业始终运行。

但即便如此,也有一个皱纹:

如果在系统帐户下运行的服务在调用 BITS 之前模拟用户,则 BITS 会像对任何用户帐户一样做出响应(例如,用户需要登录到计算机才能进行传输)。

这是一个问题,因为供应脚本作为管理员帐户运行,该帐户不是服务帐户,因此必须以交互方式登录才能使用 BITS。这恰好是Packer的行为,所以我无法改变这一点。 我错了,我可以改变这个。看我的最终答案。 如何在一个 PowerShell 脚本中执行以下操作?

  • Administrator使用服务帐户的凭据提交 BITS 作业。我假设我需要将一些东西传递给Start-BitsTransfer's-Credential参数?
  • 将 BITS 作业存储在局部变量中(作业将在脚本中的不同位置启动)
  • 等待 BITS 作业的完成,以便我可以开始使用我下载的文件(作业将在脚本中的不同位置等待)