是否可以使用 Powershel 或 VBScript 获取 CCM 更新计划?

是否可以使用 Powershel 或 VBScript 获取 CCM 更新计划?

我希望能够检查配置管理器更新选项卡中显示的 CCM 更新计划。我在 Google 上搜索过,但一直找不到一致的答案。

我尝试使用 UDA.CCMUpdatesDeployment 创建 COM 对象。这样我就可以成功地使用 SetUserDefinedSchedule 方法设置重复计划。如果我尝试使用 GetUserDefinedSchedule,我只能获得变量的原始值。

PS> $UD = New-Object -com "UDA.CCMUpdatesDeployment"
PS> $A= 101
PS> $B= 102
PS> $UD.GetUserDefinedSchedule([ref]$A, [ref]$B)
PS> $A
101
PS> $B
102
PS> $UD.GetUserDefinedSchedule

MemberType          : Method
OverloadDefinitions : {void GetUserDefinedSchedule (Variant, Variant)}
TypeNameOfValue     : System.Management.Automation.PSMethod
Value               : void GetUserDefinedSchedule (Variant, Variant)
Name                : GetUserDefinedSchedule
IsInstance          : True

我实际上希望能够远程执行此操作以获取文本文件中的服务器列表,但现在任何方法都可以。

答案1

所以我是 Powershell 的完全新手。

我的变量应该被声明:

PS> [ref]$A = $Null
PS> [ref]$B = $Null

那么命令应该这样运行:

PS> $UD.GetUserDefinedSchedule($A,$B)

每周日凌晨 3 点的结果是:

PS> $A
Value
-----
    1
PS> $B
Value
-----
    3

第一个变量是下拉框中可用的各种选项的索引。第二个变量包含 24 小时格式的时间。因此下午 3 点将给出值 15。

我在浏览一些 powershell 代码时得到了答案。我当时正在考虑将引用传递为 C 函数来更新相同的变量。我仍然不明白 Powershell 中的概念。如果我更新 CCM 并使用相同的变量运行命令,则值不会改变。

答案2

你能试试吗?请注意 Powershell 中传递参数的方式。

$A = $null
$B = $null
$UD.GetUserDefinedSchedule ([ref]$A) ([ref]$B)
write-host "Recurrence: $A"
write-host "Hour: $B"

相关内容