UI (SCCM 2012) を使用する場合、コレクション (ColA としましょう) を削除できるようにするには、最初に次のような別のルール (ColB としましょう) にリンクされていないことを確認する必要があります。
- CollB には CollA が含まれます
- CollC は CollA を除く
多数のコレクションを扱う場合、コレクションの削除に時間がかかることがあります。そのため、スクリプトを作成しましたが、
- RDP 経由で接続する必要をなくすためにリモートで使用可能
- CollA にルールが残っていないことを確認します (ColA を削除したい場合は問題ありません)。
- CollA が他のコレクションに「リンク」されているかどうかを確認します (ルールを含めるか除外するか)。
- 見つかったすべてのルールを削除します (ColB と CollA の間、ColC と CollA の間)
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 コレクションは、一度 $CollA で取得された System.Management.ManagementObject です。MSDN ページで説明されているように、次の方法を使用できるはずです。
- Delete() > 上記のエラーが発生します
- Delete(DeleteOptions) > 必要なオプションの仕様が見つかりません
- Delete(ManagementOperationObserver) > 必要なオプションの仕様が見つかりません
*.Delete() に関する MSDN ページを正しく理解していることを確認するために、次のことを (成功して) 試しました。
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()
編集2
実際には、コンソールから SCCM コレクションを削除すると、インベントリから削除されるのはコレクションだけではありません。たとえば、割り当てが削除されすぎています。MySQL や ORACLE を扱うときの CASCADE スイッチを思い起こさせます。多分私がやろうとしていることは不可能です
- コンソールを使用せずに
- SCCM コマンドレットを使用せずに
そのようにできない場合は、確認する必要があります。
編集3
ある程度成熟した後、私はそれが承認の問題ではないかと考え始めています. つまり、「-credential」スイッチで使用しているアカウント、またはサーバーに接続して SCCM コンソールを開くときに使用しているアカウントでは、コレクションを作成/更新/削除できますが、たとえば、コレクションを削除することはできません。デバイス。エラーメッセージは異なると思いますが、誰が知っていますか?
コマンドラインからデバイスを削除しようとして、多かれ少なかれ同じ問題について(脱線して申し訳ありません)、これを見つけ、同じエラーメッセージが表示されました(上記を参照)。それが私ではなく他の人にとってはうまくいく場合、それは承認に関連している可能性がありますか?
編集4
テクニカル アカウントよりも多くの「権限」を持つサービス アカウントを要求しました。テストしましたが、同じエラーが発生しました。私は認可仮説を脇に置いています。