首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试着抓,其实抓不到

试着抓,其实抓不到
EN

Stack Overflow用户
提问于 2020-05-15 08:43:39
回答 2查看 106关注 0票数 2

我有一些选择的项目,用户选择了一个gui脚本,那些代表GPO现在我有OU他想链接到他们。代码可以工作,但是我希望结果给用户,因为它们已经链接了,所以不能链接,但是由于某些原因,gui输出了成功的链接,并写入以控制已经存在链接的错误。

代码语言:javascript
运行
复制
$ResultsTextBox.clear()
 #$listBox1.selecteditems
 $SWITCH = Get-ADOrganizationalUnit -filter *  -Property CanonicalName | Where-Object {$_.CanonicalName -eq $listBox2.SelectedItem}

 forEach ($line in $listBox1.selecteditems){
 #Link each selected item GPO to the OU
 try {
    New-GPlink -name $line -target $SWITCH
    $ResultsTextBox.AppendText("`n GPO: $line HAVE BEEN LINKED Successfully.`n")
        }

    catch{$ResultsTextBox.AppendText("`n COULDN NOT LINK GPO: $line TO $SWITCH `n")
    }
 }

这里出什么问题了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-15 08:54:04

Try-Catch块只捕获终止错误。您可以通过设置特殊的ErrorPreference或ErrorAction变量来做到这一点。

方法1:

每当发生错误时,此方法将导致几乎每个cmdlet都终止脚本执行。只要它满足了您的需要,您就可以这样做:

在脚本顶部声明

代码语言:javascript
运行
复制
$ErrorActionPreference = 'Stop'

方法2:

使用它,您可以控制错误期间不同的PowerShell cmdlet的行为,从而为您提供更多的控制:

代码语言:javascript
运行
复制
# For every cmdlet inside the try block add -ErrorAction to Stop for the try block to "catch".
New-GPlink -name $line -target $SWITCH -ErrorAction STOP

请检查终于来了。

票数 6
EN

Stack Overflow用户

发布于 2020-05-15 08:54:07

要么将-ErrorAction Stop添加到您想要捕获的每个命令:

代码语言:javascript
运行
复制
Try {
    New-GPlink -name $line -target $SWITCH -ErrorAction Stop
}
Catch {
    $_
}

或设定

代码语言:javascript
运行
复制
$ErrorActionPreference = 'Stop'

在你剧本的开头。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61815206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档