Powershell Try/catch - 获取用户
Powershell Try/catch - get-user
我正在学习 posh
。我试图理解为什么这个脚本没有捕捉到警告。
try{
get-user aaaa -WarningAction Stop
}
catch
{
Write-Host "hi"
}
这里是错误:
get-user : The operation couldn't be performed because object 'aaaa' couldn't be found on
'iDC01.contoso.com'. At C:\Users\Gra***\Desktop\test.ps1:2 char:5
+ get-user aaaa -WarningAction Stop
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-User], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : [Server=ME1,RequestId=ebcde0d2-9222-443b-b25a-ef7279fd168e,
TimeStamp=20.06.2017 13:51:35] [FailureCategory=Cmdlet-ManagementObjectNotFoundException]
FE0D594D,Microsoft.Exchange.Management.RecipientTasks.GetUser
我试过 -WarningActions Stop
和 -ErrorAction Stop
但没有结果。
总的来说,我已经了解 try/catch
的基础知识,并且以下脚本可以正常工作。
try{
Get-Process -name xyz -ErrorAction Stop
}
catch{
Write-Host "oops"
}
我正在使用 powershell_ise 5.1
。你知道 get-user
有什么问题吗?
另外,我不能使用 Get-ADuser
.
调用函数时有两种情况可以被捕获,Error 或 Warning。您可以在脚本中使用 $WarningPreference
或 $ErrorActionPreference
全局设置它们,或者使用 -ea 或 -wa 参数单独设置。在您的示例中,我将使用以下内容来确定:
Try {
Get-User aaaa -wa Stop -ea Stop
} Catch {
Write-Output "hi"
Write "[$($_.Exception.GetType().FullName)] - $($_.Exception.Message)"
}
我正在学习 posh
。我试图理解为什么这个脚本没有捕捉到警告。
try{
get-user aaaa -WarningAction Stop
}
catch
{
Write-Host "hi"
}
这里是错误:
get-user : The operation couldn't be performed because object 'aaaa' couldn't be found on
'iDC01.contoso.com'. At C:\Users\Gra***\Desktop\test.ps1:2 char:5
+ get-user aaaa -WarningAction Stop
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-User], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : [Server=ME1,RequestId=ebcde0d2-9222-443b-b25a-ef7279fd168e,
TimeStamp=20.06.2017 13:51:35] [FailureCategory=Cmdlet-ManagementObjectNotFoundException]
FE0D594D,Microsoft.Exchange.Management.RecipientTasks.GetUser
我试过 -WarningActions Stop
和 -ErrorAction Stop
但没有结果。
总的来说,我已经了解 try/catch
的基础知识,并且以下脚本可以正常工作。
try{
Get-Process -name xyz -ErrorAction Stop
}
catch{
Write-Host "oops"
}
我正在使用 powershell_ise 5.1
。你知道 get-user
有什么问题吗?
另外,我不能使用 Get-ADuser
.
调用函数时有两种情况可以被捕获,Error 或 Warning。您可以在脚本中使用 $WarningPreference
或 $ErrorActionPreference
全局设置它们,或者使用 -ea 或 -wa 参数单独设置。在您的示例中,我将使用以下内容来确定:
Try {
Get-User aaaa -wa Stop -ea Stop
} Catch {
Write-Output "hi"
Write "[$($_.Exception.GetType().FullName)] - $($_.Exception.Message)"
}