我有一个低权限用户,使用Powershell管理公司Active Directory树的区域。我想测试我的脚本可以执行一个动作而不是调用它和barfing。例如,我想要测试的东西:
#Eigenvalues = pca.explained_variance_)
答案 0 :(得分:1)
你想打电话给它吧。但是,就像在现实生活中一样,你想要在适当的容器中捕获barf。
try
/ catch
进来的地方。但PowerShell在出现错误方面有点奇怪。默认情况下,发生错误时它不会停止。它只是显示它并继续前进。除非您更改,try
没有看到错误。因此,当失败时,您还需要告诉PowerShell硬盘。
可以使用-ErrorAction
参数完成,该参数可以在任何cmdlet上使用。
try {
New-ADGroup -GroupScope Global -Path $OU -Name $GROUP_NAME -ErrorAction Stop
} catch {
Write-Host "Ask the administrator to permit"
Write-Host "$env:USERNAME New-ADGroup privs at $OU"
}
此代码假定访问不足是导致失败的唯一原因。如果需要,您可以检查错误并测试是否属于这种情况。
有关在PowerShell中捕获错误的更多阅读:https://blogs.technet.microsoft.com/heyscriptingguy/2015/09/16/understanding-non-terminating-errors-in-powershell/
这也很有用:https://blogs.technet.microsoft.com/heyscriptingguy/2014/07/09/handling-errors-the-powershell-way/