尝试推动DSC我遇到以下错误:
Failure to get a valid result from the execution of TestScript. The Test script should return True or False.
这是TestScript:
return (Test-Path -Path "FullPath:\To\File")
我尝试了几件事:
任何想法都会受到赞赏。
编辑:对于那些好奇的人来说,这里是完整的资源。它基本上只是几行快速将脚本从源代码控制中拉出来并将其置于本地,这样我就可以创建一个计划任务来运行所述脚本。将结果转换为bool不起作用(相同的错误)。我想知道它是否甚至在此时进入了TestScript ...检查get-executionpolicy将其显示为未定义的帐户但是在userpolicy,machinepolicy和localmachine级别它们都是绕过
Script NameOfScript {
DependsOn = "[cNtfsPermissionEntry]DirectoryPermissions"
Credential = $serviceAccountPSCredentialObject
SetScript = {
Import-Module -Name Subversion
New-SvnWorkingCopy -Url "https://svnrepourl/script.ps1" -Path "E:\Scripts\"
}
TestScript = {
[bool]$result
$result = Test-Path -Path "E:\Scripts\script.ps1" -ErrorAction Stop
return $result
}
GetScript = { }
}
答案 0 :(得分:0)
试试这个
return ([bool]$testPath = Test-Path -Path "FullPath:\To\File")
答案 1 :(得分:-1)
在this forum post的帮助下计算出来。最初我没有想到它会有很大的帮助,因为我不应该遇到双跳问题,但我会解释为什么它与下面有密切关系。 @ TravisEz13发表评论称Credential
参数未被使用,但这是不正确的。
如果查看脚本资源,当您指定凭据时,这就是它运行脚本块的方式:
$scriptExecutionResult = Invoke-Command -ScriptBlock $ScriptBlock -ComputerName . -Credential $Credential
相关服务帐户无法远程访问本机。因此,当我作为该用户在本地启动PowerShell并运行Test-Path
cmdlet时,它可以正常工作,但当我尝试使用该帐户的信誉运行上述Invoke-Command
时,它会返回拒绝访问错误
我的解决方案是为subversion checkout编写一个模块/资源。不仅仅是为了解决这个问题,还因为我上面使用的subversion powershell模块并没有提供将证书传递给svn二进制文件的方法。