0

对于实用程序diskpart,Powershell 允许我通过以下方式将数据传递到控制台

'list vol' | diskpart 

与此非常相似,我们可以将数据传递给diskshadow实用程序吗?

当我尝试时,我收到以下错误:

PS C:\Users\administrator> 'list vol' | diskshadow
Microsoft DiskShadow version 1.0
Copyright (C) 2007 Microsoft Corporation
On computer:  myserver,  11/8/2012 1:13:32 PM


**DISKSHADOW> Error reading from console. Win32 error: 0x6
The handle is invalid.**

请建议我是否需要不同的东西?

4

2 回答 2

2

您必须使用您的命令创建一个临时文件并diskshadow使用该脚本运行。

$script = "./tmp.dsh"
"list shadows all" | Set-Content $script
diskshadow /s $script
Remove-Item $script
于 2012-11-08T13:03:40.557 回答
0

我遵循了上面 Ansgar 提供的解决方案,并试图理解为什么 Diskshadow 忽略了我的脚本内容并只返回这个输出:

Microsoft DiskShadow version 1.0
Copyright (C) 2013 Microsoft Corporation
On computer:  AS-C01-EX01,  12/2/2021 4:20:29 PM

->

原来 Diskshadow 对脚本文件编码很敏感。

为了解决这个问题,我只需要使用 Set-Content(或 Out-File)的 -encoding 参数将编码设置为 ASCII

于 2021-12-03T08:34:24.177 回答