断言向变量发出 msol 请求时脚本挂起



我已经完成了一个在sharepoint网站中创建文件夹结构的脚本。

首先,我创建了一个没有 gui 的后端脚本,它工作得很好,它可以创建和修改文件夹。

因此,我使用System.Windows.Forms api添加了一个基本的前端。我添加了一个窗体和一些控件,如按钮和标签,当我运行脚本时,它会挂起。它成功地在线连接到sharepoint,但我意识到当调用像get-SPOSite或get-SPOUsser这样的cmdlet时,我习惯返回它挂起的变量。否则,如果我调用像 Connect-SPOService 这样的 cmdlet,它可以正常工作。 主要问题是脚本挂起并且没有返回任何异常,它只是挂起,我必须关闭Powershell ISE。似乎问题是何时必须将返回值分配给变量。例如,在第一句话中,我们这里有一个管道来过滤结果,如果我调试,我可以看到所有返回的站点,get-SPOSite 可以工作,但在最后一个结果之后它挂起,永远不要将值分配给变量。

有人知道会发生什么吗?

<# THis code works ok #>
try{        
Connect-SPOService -Url $adminUrl 
return $True
}
catch{
return $False
}
<# THis code Fail #>
try{        
$siteExists = get-SPOSite | where{$_.url -eq $sitePath}
<# or nextfail to #>
$sites = Get-SPOSite -Limit All
return $True
}
catch{
return $False
}

尝试(脚本在返回后不会运行(。

$result=$False
try{        
Connect-SPOService -Url $adminUrl 
$result=$True
}
catch{
return $False
}    
try{        
$siteExists = get-SPOSite | where{$_.url -eq $sitePath}        
$sites = Get-SPOSite -Limit All
$result=$True
}
catch{
return $False
}
return $result

最新更新