我想编写一些代码,使用比特在同一服务器上的磁盘之间复制非常大的文件(第二个磁盘是SAN级别的克隆\快照)。
我查看了一些数据,因为我认为这将是取得进展的一个好方法\%完成数据的转移,以及恢复功能等。
我有很多托管的Powershell,我想我应该尝试使用内置的位cmdlet,因为这是一种非常快速的方法,我可以编写包装器来获取我需要的东西等等,不幸的是,我遇到了这样的情况:
当您在非交互式上下文(如Windows服务)中运行的进程中使用*-BitsTransfer cmdlet时,您可能无法将文件添加到位作业中,这可能会导致挂起状态。若要继续作业,必须登录用于创建传输作业的标识。例如,当在作为任务调度器作业执行的PowerShell脚本中创建位作业时,除非启用任务计划程序的任务设置“只在用户登录时运行”,否则BITS传输将永远不会完成。
通过模拟的Powershell运行空间执行任何操作都会引发以下错误:
由于用户尚未登录到网络,因此未执行请求的操作。指定的服务不存在。(HRESULT例外: 0x800704DD)“
我的web服务是以AppPoolIdentity的形式运行的,当需要时我会模仿它。这是合理的,这不能通过托管的Powershell工作,但谁能想到一个解决办法吗?如果这是不可能的,我还有别的选择吗?
我正在考虑使用BITS作为替代方案,但是文档是古老的。
发布于 2015-06-27 01:30:53
你有没有想过用机器拷贝?与/ZB交换机一起运行对我来说一直都很好,您可以使用/J来提高性能,这可以为输出、与/ETA和/TEE一起运行提供无缓冲的I/O。
https://stackoverflow.com/questions/31033546
复制相似问题