我希望能够检查配置管理器更新选项卡中显示的 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"