将 WMI 调用转换为 CIM 调用

2024-03-29

我正在编写的代码应该启动当前可用于使用 CIM 的服务器的任何补丁。由于我的网络需要 DCOM 协议,我必须使用 CIM。

我使用 ` 以便于查看

以下 wmi 代码有效:

$ComputerName = 'Foo'
[System.Management.ManagementObject[]] $CMMissingUpdates = @(`
    Get-WmiObject -ComputerName $ComputerName `
                  -Query "SELECT * FROM CCM_SoftwareUpdate WHERE ComplianceState = '0'" `
                  -Namespace "ROOT\ccm\ClientSDK" `
                  -ErrorAction Stop)
$null = (Get-WmiObject -ComputerName $ComputerName `
                       -Namespace "root\ccm\ClientSDK" `
                       -Class "CCM_SoftwareUpdatesManager" `
                       -List).InstallUpdates($CMMissingUpdates)

我使用 CIM 所做的工作不起作用:

$null = (Invoke-CimMethod -CimSession $Computer.CimSession `
                          -Namespace 'ROOT\ccm\ClientSDK' `
                          -ClassName 'CCM_SoftwareUpdatesManager' `
                          -MethodName 'InstallUpdates').InstallUpdates($CMMissingUpdates)

我不仅对我的问题的解决方案感兴趣Invoke-CimMethod但它是如何解决的。我似乎无法确定如何查看和实现 CIM 中类的方法。


您的问题是您使用两个不兼容的命令进行翻译。

Invoke-CimMethod == Invoke-WmiMethod

Get-WmiObject然而,不是以上所述。这是完成您正在做的事情的一种方法:

$ComputerName = 'Foo'
$cimArgs = @{
    'Namespace'    = 'Root\CCM\ClientSDK'
    'ClassName'    = 'CCM_SoftwareUpdatesManager'
    'MethodName'   = 'InstallUpdates' # returns UInt32 object; 0 = success
    'Arguments'    = @{
        'CCMUpdates' = Get-WmiObject -Namespace Root\CCM\ClientSDK -Class CCM_SoftwareUpdate -Filter 'ComplianceState = "0"'
    }
    'CimSession'   = New-CimSession -ComputerName $ComputerName -SessionOption (New-CimSessionOption -Protocol Dcom)
}
Invoke-CimMethod @cimArgs

The Invoke-CimMethodcmdlet 采用字典将参数传递给方法。我根据以下内容确定了键/值本文档 https://msdn.microsoft.com/en-us/library/jj155391.aspx.

这也可以通过以下方式找到:

Get-CimClass -ClassName 'CCM_SoftwareUpdatesManager' -Namespace 'Root\CCM\ClientSDK' |
     ForEach-Object -MemberName CimClassMethods
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 WMI 调用转换为 CIM 调用 的相关文章

随机推荐

  • 如何使用 IHTTPNegotiate 添加额外的 http 标头?

    如何使用 HTTP Negotiate 向请求添加额外的标头 我添加了接口但功能BeginningTransaction OnResponse永远不会被打电话 TNameSpaceHandler class TComObject IInte
  • 如何获取 Amazon 的 AWS_ACCESS_KEY_ID?

    我对 AWS 完全陌生 我从亚马逊下载了一些示例代码 我需要设置一些常量 AWS ACCESS KEY ID AWS SECRET ACCESS KEY MERCHANT ID MARKETPLACE ID 我刚刚创建了一个 AWS 账户
  • QT 程序包含带有 if-test-then 块的 bash 脚本以及内部问题错误中转义的必要引号

    我正在尝试在 QT 应用程序中运行一个小型 bash 脚本 其中包含 if test then 块以及测试中必要的引号 由于脚本应该由 QT 编译并由 bash 运行 因此引号必须转义两次 因此引号的转义反斜杠也必须转义 正如我所见 不幸的
  • Javascript + HTML - 在后台加载图像(异步?)

    我发现了许多描述 javascript 图像加载的主题 但并不完全是我正在寻找的内容 我目前正在以正常方式加载 html 中的图像 例如 img src images big image jpg 这会导致网页上有空白区域 从上到下填充有加载
  • iOS 6 - 如何获得“释放刷新”动画?就像在邮件中一样?

    在邮件应用程序中 我们现在可以drag the view down and release to refresh 如下图所示 这是我可以从 SDK 获得的标准东西吗 Thanks 使用新的iOS6UIRefreshControl https
  • 如何在 Slim 模板中渲染 HTML

    我正在尝试渲染一个前面带有图标的链接 我在用着Slim https github com stonean slim模板引擎以及引导CSS http twitter github com bootstrap base css html ico
  • 如何模拟数据库故障以进行测试(在 Ruby on Rails 中)

    通过某些监视工具 例如 Monit 通过心跳消息来监视应用程序是一种常见的设置 如果应用程序正在运行并且一切正常 它会返回 我还活着 消息 如果数据库失败或 Web 服务器挂起 它不会返回任何内容或返回内部服务器错误 HTTP 状态代码 5
  • Jupyter 笔记本中的函数单元测试?

    我有一个 Jupyter 笔记本 我打算反复运行 里面有函数 代码结构是这样的 def construct url data return url def scrape url url fetch url extract data retu
  • 在 Cython 中共享扩展类型以实现静态类型

    我将 Python 类转换为 pyx 文件内的扩展类型 我可以在另一个 Cython 模块中创建这个对象 但是我无法进行静态类型处理用它 这是我的课程的一部分 cdef class PatternTree cdef public Patte
  • 用于过滤 Django 列表的下拉选择选项

    来自 Angular 这很容易做到 但我不确定从哪里开始创建一个将从对象列表中过滤的下拉表单 基本上 我有下面的代码 它将拉入并显示所有房地产列表 我想创建一个下拉菜单 其中有两个选择 精选 和 新列表 当用户选择其中一个时 列表将过滤掉并
  • F# 模块间相互递归

    对于 F 中的递归 现有文档清楚地说明了在只有一个函数调用自身或一组物理上相邻的函数相互调用的特殊情况下如何执行递归 但一般情况下 不同模块中的一组函数需要相互调用 该怎么做呢 我认为在 F 中没有办法实现这一点 通常可以以不需要这样做的方
  • 函数定义的类外声明中不可能完全限定类名

    该程序会导致不必要的解析贪婪死胡同 struct float4x4 class C float4x4 M float4x4 C M return float4x4 8 1 错误 float4x4 中没有名为 C 的成员 您的意思只是 C 吗
  • 扩展 CodeIgniter 控制器时出错[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 如何格式化运算符 C++ Visual Studio 之间的空格?

    我想要实现的是寻找是否存在一种方法来格式化 C Visual Studio 在我的例子中为 2012 中运算符之间的空格 例如 用 C 编写以下代码行 int number 10 Then hitting Ctrl K Ctrl D in
  • Web.Debug.config 和 Web.Release.Config 文件的用途是什么?

    我刚刚升级到 Visual Studio 2010 和 MVC 2 0 我注意到 Web config 附加了两个附加文件 这些文件是否用于指定调试和发布特定设置 以便您不会弄乱主 Web config 如果我在调试和发布 Web conf
  • JSP gzip 输出流

    我知道我可以使用类似的东西来压缩输出流 OutputStream outA response getOutputStream outWriter new PrintWriter new GZIPOutputStream outA false
  • 如何使用Spring Data Jpa实现批量更新?

    如何使用Spring Data Jpa实现批量更新 我有一个商品实体 对于不同的用户级别 有不同的价格 例如 goodsId level price 1 1 10 1 2 9 1 3 8 当更新商品时我想批量更新这些价格 如下所示 Quer
  • 基于 webkit 的浏览器的 CSS 规则

    我有下一个 CSS 代码 mgheader letters display inline block margin left 55px margin top 45px position absolute mgheader letters d
  • 运行 Web 角色(Web 应用程序)的 Azure 云服务内存问题(Gen2)

    我有一个关于运行 MVC 应用程序的 Web 角色的高内存使用率的问题 使用简单注入器作为 DI 实体框架 6 用于 DAL 应用程序作为 Web 角色在 Azure 云服务上运行 具有 2 个标准 A2 实例 2 个核心 3 5 GB R
  • 将 WMI 调用转换为 CIM 调用

    我正在编写的代码应该启动当前可用于使用 CIM 的服务器的任何补丁 由于我的网络需要 DCOM 协议 我必须使用 CIM 我使用 以便于查看 以下 wmi 代码有效 ComputerName Foo System Management Ma