设备未就绪错误 (CreateFromDirectory)

Device is not ready error (CreateFromDirectory)

所以我正在为我的办公室编写一个脚本,将 visual studio 构建在他们的临时机器上以使其自动化。但是,当我尝试在通过 powershell 远程处理后压缩文件时,出现了一个非常普遍的错误(设备未准备好)。这是我为此获得的代码:

$userName = Read-Host 'What is your username for sampleServer?'
Enter-PSSession -ComputerName sampleServer -Credential $userName


$src_folder_Staging = "D:\www\test"
$archiveName = "$(get-date -f yyyy-MM-dd)$ext"
$destfile_staging = "D:\www\Archive\Project\sampleServer_" + "$archiveName" + ".zip"
[System.IO.Compression.ZipFile]::CreateFromDirectory($src_folder_Staging,$destfile_staging,$compressionLevel, $includebasedir )

此时,它会远程进入,但会在 createFromDirectory 上抛出错误 设备尚未就绪。

我已经加载了程序集,因为我在脚本的前面压缩了一个文件。我已验证路径正确并测试了时间戳代码并验证它生成了可用路径。

这在不远程时工作正常,所以我确定它与此有关。我是 Powershell 远程处理的新手,所以我不知道我能做什么和不能做什么的界限。任何帮助,将不胜感激。谢谢

这可能是因为远程会话尝试使用计算机凭据而不是用于调用远程会话的凭据来访问目录。尝试启用 CredSSP.

要启用 CredSSP,运行 来自提升提示符的那些命令:

  • 在您的电脑上:Enable-WSManCredSSP -Role Client -DelegateComputer "TargetServer.FQ.DN"

    DelegateComputer 参数用于指定从客户端接收委托凭据的服务器。 DelegateComputer 接受通配符 (*.FQ.DN)。您也可以指定*来指定网络中的所有计算机。

  • 在目标服务器上:Enable-WSManCredSSP -Role Server

现在,您应该能够 运行 Enter-PSSession 使用 CredSSP 作为身份验证方法并传递凭据:

Enter-PSSession -ComputerName sampleServer -Authentication Credssp -Credential $userName