尝试针对 ManagementObjectNotFoundException 和 ActiveDirectory/Outlook 进行 Catch/Exception

2023-12-11

这可能是一个非常基本的问题,但我还没有在表格上看到它。请耐心等待,我是 powershell 新手

当我们的 Active Directory 数据库中找不到用户名时,我试图捕获此异常(ManagementObjectNotFoundException)。

Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
$user2 = Read-Host 'Enter account name of the user who is being added'
try {
$user = Read-Host 'Enter account name of the users email you wish to have access to'
Add-MailboxPermission –Identity $user -User $user2 -AccessRights FullAccess –InheritanceType All –Automapping $false
}
catch [ManagementObjectNotFoundException] {
    "User not found, try again"
     $user = Read-Host 'Enter account name of the users email you wish to have access to - Test'
}
Remove-PSSession $Session

我也尝试过这个选项:

catch {
  Write-Host "An error occurred:"
  Write-Host $_
}

我仍然收到此错误:

The operation couldn't be performed because object 'test1' couldn't be found on 'BN4PR12A003DC03.NAMPR12A003.PROD.OUTLOOK.COM'.
    + CategoryInfo          : NotSpecified: (:) [Add-MailboxPermission], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : [Server=BYAPR12MB2885,RequestId=25cd1eb7-055e-4250-bd43-6d2f5d528f12,TimeStamp=11/12/2019 9:38:16 PM] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] C5EDB577,Microsoft.Exchange.Management.RecipientTasks.AddMailboxP 
   ermission
    + PSComputerName        : outlook.office365.com

你需要抛出所谓的终止错误以捕获异常。您可以设置错误行动偏好在您的脚本级别:

$ErrorActionPreference = "Stop"

or add -ErrorAction Stop到您想要从中捕获错误的任何 cmdlet。如果异常未终止,则无法捕获错误。默认情况下,错误设置为Continue但可以通过以下方式之一进行更改:

错误操作首选项

  • Continue:显示错误但继续执行。这是默认设置。
  • SilentlyContinue: Hides the error and continues with execution.
    • 错误已被抑制,但仍添加到$Error收藏。
  • Stop:抛出终止错误。错误操作必须设置为Stop捕获异常。
  • Inquire:询问用户要做什么。
  • Suspend:与 Powershell 工作流程一起使用。暂停工作流作业以便稍后可以恢复。
  • Ignore: Similar to SilentlyContinue, it suppresses the error and continues executing. Can only be set with the -ErrorAction parameter, Ignore cannot be set to $ErrorActionPreference.
    • Unlike SilentlyContinue, Ignore将省略将错误添加到$Error收藏。

关于终止错误的注意事项

注意终止错误无法转换为非终止同样,我们可以将非终止错误视为终止错误。换句话说,大多数异常源自框架或从 PowerShell 抛出的异常throw声明必须通过处理try/catch/finally块。两者都不$ErrorActionPreference or -ErrorAction与如何处理异常有任何关系。

由于此限制包括Ignore and SilentlyContinue, 您无法使用这些首选项值抑制或忽略终止错误. You must处理它们以防止脚本终止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试针对 ManagementObjectNotFoundException 和 ActiveDirectory/Outlook 进行 Catch/Exception 的相关文章

随机推荐

  • 从oracle存储过程中获取结果集

    我正在努力将存储过程从 SQL Server 转换为 Oracle 此存储过程提供直接结果集 我的意思是 如果您在例如 Management Studio 中调用存储过程 您将直接获得结果集 通过转换为Oracle 我遇到了Oracle中不
  • 如何使用角度材料实现范围内联日历?

    我想使用物料日历作为范围内联日历来显示和插入日期范围 当使用 mat date range picker 时 这只是工作 但不是内联 使用 mat calendar 时 它适用于内联 但不适用于范围 但是 如果我将 selectedRang
  • 动态查询结果存入临时表或表变量

    我有一个使用 sp executesql 生成结果集的存储过程 结果中的列数可能有所不同 但形式为 Col1 Col2 Col3 等 我需要将结果放入临时表或表变量中 以便我可以使用它 问题是我需要定义临时表的列 但我无法使用 sp exe
  • 为什么我会收到堆栈溢出?

    我的第一个代码块是我的项目对象文件 第二个是主类 在代码运行没有任何问题之前 但在添加读写文件之后 我的代码开始收到堆栈流错误 只是调用错误的片段 public class Item implements java io Serializa
  • 如何使用 Google Apps 脚本将表格置于 Google 文档页面的中心

    我已使用 Google Apps 脚本功能在 google 文档中插入了一个表格 var grg body appendTable griglia 我可以设置表格中文本的格式 字体大小 粗细 对齐方式 也可以设置单个单元格的格式 背景 前景
  • 我应该如何使用 HttpRequest.GetBufferlessInputStream?

    我在 WCF 服务中接收发布数据时遇到问题 如果我尝试使用 InputStream 则会出现异常 调用 HttpRequest GetBufferlessInputStream 后不支持此方法或属性 我相信我明白为什么会抛出这个错误 但我还
  • OpenGL 中的厚贝塞尔曲线

    我正在使用 jogl opengl 绑定在 java 中编写一个程序 我需要创建一条厚度沿曲线变化的贝塞尔曲线 到目前为止 我只管理了一条细的单点贝塞尔曲线 我很确定这不是一件容易的事 但我不知道从哪里开始寻找解决方案 如果有人能指出我如何
  • 当屏幕关闭时,MediaPlayer 在 Lollipop 上过早切断播放

    我在 Lollipop 设备上遇到了 MediaPlayer 的问题 基本上 当设备屏幕关闭 即用户锁定设备 时 播放会继续 但提前结束约 1 2 秒 但屏幕打开时不会发生这种情况 我在 MediaPlayer 上有一个 onComplet
  • 计算素数时堆栈空间溢出

    我正在学习 Real World Haskell 我在第 4 章 为了进行一些课外练习 我创建了以下程序来计算第 n 个素数 import System Environment isPrime primes test loop primes
  • Android 2.1:如何在 GridView 上放大/缩小和滚动

    背景 我的工作应用程序包含一个 GridView 它有 5 行 11 列 并带有一个用于显示的覆盖适配器 它非常适合我对大显示屏平板电脑的需求 移植到小型智能手机后 我意识到网格由于尺寸小而无法使用 我决定使用缩放功能 而不是实现横向 问题
  • 当使用 tcp 套接字执行 async_write 时,何时调用处理程序?

    这只是 async write 如何与 tcp 套接字配合的简单问题 基本上 当使用 tcp 套接字时 当数据写入套接字时 或者从目标接收到 ack 时 写入处理程序是否会被调用 AFAIK 一旦数据写入套接字的内核缓冲区 处理程序就会被调
  • Access 2007 SQL 中的 Group By 聚合函数中的不同计数

    您好 我浏览论坛有一段时间了 在这里问我的第一个问题 我有点陷入困境 想知道是否可以获得一些帮助 我正在使用 Access 2007 尚未在网上找到该问题的良好答案 我的数据是诊断代码和客户 ID 我正在寻找的是为什么要查找每个诊断代码的客
  • Django 表单未提交

    我有一个在模板中正确呈现的 Django 模型 视图 表单 但它没有提交输入到数据库的数据 任何对此的帮助将不胜感激 models py from django db import models from django forms impo
  • 汇编程序可以在 Linux 发行版之间移植吗?

    以汇编程序格式提供的程序是否可以在 Linux 发行版之间移植 模 CPU 架构差异 这是我的问题的背景 我正在开发一种新的编程语言 名为 Aklo 其操作方式将是经典的编译为 s 并将结果提供给 GNU 汇编器 显然最终最好能自己编写实现
  • 如何在javascript中创建txt文件

    if window XMLHttpRequest xmlhttp new XMLHttpRequest else xmlhttp new ActiveXObject Microsoft XMLHTTP xmlhttp open GET t1
  • 如何访问动态列表中的项目?

    我试图弄清楚如何枚举动态 LINQ 的结果 Select string selectors 在 NET 4 5 中 动态 linq 来自System Linq Dynamic命名空间 Edit 我还包括System Linq 我有一个看起来
  • 双向 WeakMap 保持对象存活?

    假设我有两个 WeakMap a2b new WeakMap
  • java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass

    当我尝试这个时 我是 JPA 和 hibernate 的新手tutorial 我在 persistence xml 中添加了以下提供程序
  • 类型不匹配无法从元素类型对象转换为字符串

    在我的代码中创建搜索方法来搜索字符串时 我不断收到此错误 我已经通过很多例子试图解决这个问题 但我找不到任何例子 感谢您提供的任何帮助和建议 public class runNote public static void main Stri
  • 尝试针对 ManagementObjectNotFoundException 和 ActiveDirectory/Outlook 进行 Catch/Exception

    这可能是一个非常基本的问题 但我还没有在表格上看到它 请耐心等待 我是 powershell 新手 当我们的 Active Directory 数据库中找不到用户名时 我试图捕获此异常 ManagementObjectNotFoundExc