当使用UI(SCCM 2012)时,为了能够删除集合(比方说CollA),首先需要确保它不被任何规则链接到另一个集合(让我们说CollB,等..),如:从命令行中删除SCCM集合
- CollB包括科亚
- CollC排除科亚
在有很多藏品的处理,删除了一个集合可能是费时。出于这个原因,我创建了一个脚本,
- 使用远程以避免需要通过RDP连接
- 它会检查科拉没有规则左(即使如果我们想删除这不是一个问题科亚)
- 用来检查是否科亚被“链接”到其他收藏品(包括或排除规则)
- 其删除发现的任何规则(CollB和科拉之间,CollC和科亚之间)
我现在坚持我不能t找到一种方法来删除CollA。 对于身份验证和远程目的,我使用了很多Powershell和WMI。
$CollA=Get-WmiObject -computername servername -namespace root\sms\site_111 -credential $cred -query "select * from SMS_Collection where Name='Tartempion'"
$CollA.get()
在这一点上,我发现了一个方法Delete(),这时候我尝试使用它,它给了我:
Exception calling "Delete" with "0" argument(s): "Generic failure "
At line:1 char:1
+ $coll.delete()
+ ~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
如果是这样,我应该使用的方法,什么是要传递的参数?
编辑1
正如指出的theMadTechnician的SCCM集合,曾经在$科拉,一个System.Management.ManagementObject检索。 我应,如在MSDN页所描述的,能够使用下面的方法:
- 删除()>产生高于
- 删除(DeleteOptions)中提到的错误>我无法找到该规格所需的选项
- 删除(ManagementOperationObserver)>我无法找到所需的选项
为了确保我正确地理解关于MSDN页* .Delete(),我试图(成功)以下规格:
PS C:\> Set-WmiInstance -Class win32_environment -argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}
PS C:\> (gwmi -class win32_environment -filter "Name='testvar'").gettype()
PS C:\> (gwmi -class win32_environment -filter "Name='testvar'").delete()
EDIT 2
事实是,通过控制台删除SCCM集合时,集合是没有从清单中移除的唯一的事:例如在分配,太删除。它在处理MySQL或ORACLE时提醒了CASCADE开关。也许是我想要做的是不可能的
- 不使用控制台
- 不使用SCCM的cmdlet
如果不能那么做,我只是需要确定。
编辑3
一些成熟后,我开始怀疑它可能是一个授权问题。我的意思是,我使用“-credential”开关的帐户或连接到服务器时打开SCCM控制台的帐户允许我创建/更新/删除集合,但是,例如,它不允许我删除设备。我希望错误信息会有所不同,但谁知道?
或多或少的关于同样的事情(抱歉的离题),试图从命令行中删除设备,我发现this和我有相同的错误信息(见上文)。如果它适用于其他人而不是我,它可能是授权相关的吗?
EDIT 4
我请求的服务帐户与更多的“特权”比我有我的技术客户。 我测试过,并且发生同样的错误。我抛开授权假设。
我假设它是一个你正在使用一个System.Management.ManagementObject,对不对?你检出了[MSDN](http://msdn.microsoft.com/en-us/library/system.management.managementobject(v = vs.110).aspx)页面来查看方法以及如何调用它们为了它? – TheMadTechnician
查看已更新的问题,跟随您的潜在客户, – projetnumero9