【问题标题】:Device is not ready error (CreateFromDirectory)设备未就绪错误 (CreateFromDirectory)
【发布时间】:2015-08-25 14:24:57
【问题描述】:

所以我正在为我的办公室编写一个脚本,将 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 远程处理的新手,所以我不知道我能做什么和不能做什么的界限。任何帮助,将不胜感激。谢谢。

【问题讨论】:

    标签: .net powershell remoting


    【解决方案1】:

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

    要启用 CredSSP,请在提升的提示符下运行这些命令:

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

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

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

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

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

    【讨论】:

    • 看来,我公司的组策略不允许用户将 Credssp 登录到服务器上。在我与他们解决此问题之前,我实际上无法确定这是否是问题所在。不过我今天确实学到了一些东西,所以我会为此给你的帖子 +1。
    猜你喜欢
    • 2014-02-28
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    相关资源
    最近更新 更多