Powershell:此操作返回,因为超时期限已过期

时间:2017-04-06 12:48:34

标签: powershell powershell-v5.0

我正在尝试从xTestPlan_1.ps1运行enable_local.ps1

虽然enable_local.ps1位于我的本地计算机上,但xTestPlan_1.ps1位于网络驱动器上。我只有本地机器上xTestPlan_1.ps1的快捷方式。

以下是enable_local.ps1

$item = "d:\temp\xTestPlan_1.lnk"
WriteInLogFile "$item"
Try
{
    & "$item"
}
Catch
{
    WriteInLogFile $Error
}

运行此代码时,有时会出现此错误:

  

计划" xTestPlan_1.lnk"无法运行:此操作返回   因为超时时间已到期D:\ Temp \ enable_local.ps1。

此脚本有时会按预期工作,有时它不起作用。 xTestPlan_1.ps1确实存在于网络驱动器上。

1 个答案:

答案 0 :(得分:2)

尝试执行快捷方式不是运行其他脚本的好方法。

更好的做法是直接调用脚本:

$item = "\\server\share\xTestPlan_1.ps1"
WriteInLogFile "$item"
Try
{
    & $item
}
Catch
{
    WriteInLogFile $Error
}

如果由于某种原因确实必须使用快捷方式,则可以从快捷方式获取目标路径,然后调用脚本本身。

$item = "d:\temp\xTestPlan_1.lnk"

$ShellObj = New-Object -COM WScript.Shell
$targetPath = $ShellObj.CreateShortcut($item).TargetPath

WriteInLogFile "$targetPath"
Try
{
    & $targetPath
}
Catch
{
    WriteInLogFile $Error
}