如何使用PowerShell从外部源指示如何启动从SCCM删除服务器

时间:2018-10-03 16:21:35

标签: powershell sdk sccm

我无法从System Center Configuration Manager SDK网站https://docs.microsoft.com/en-us/sccm/develop/core/misc/system-center-configuration-manager-sdk中确定如何启动从可能属于其中的所有资产收集中删除计算机的方式。

我的公司现在可以在几个小时内构建,部署和销毁虚拟服务器。所有新建的服务器都会自动安装SCCM客户端。当前的SCCM策略是从连续22天不活动的资产组中删除服务器。对于我们的旧版环境,这仍然是必需的。

我的VM团队通知我,已经有代码在虚拟服务器被销毁后自动运行。我想包含可以伸到我们的SCCM服务器上的代码,以启动对被破坏的服务器的删除。我以前从未使用过这种方法,甚至从哪里开始都没有成功。我相信它被称为API或Hooks。  我更喜欢使用PowerShell进行编码,因为那是我所知道的语言。

1 个答案:

答案 0 :(得分:0)

从sccm删除记录的WMI代码为

$comp = [wmi]"\\<siteserver>\root\sms\site_<sitename>:sms_r_system.resourceID='<resourceid>'"
$comp.psbase.Delete()

要获取ResourceID,可以按名称查询sms_r_system

(Get-WmiObject -computername <siteserver> -query "select resourceID from sms_r_system where name like '<computername>'" -Namespace "root\sms\s
ite_<sitename>").ResourceID

请记住,这可能会产生多个条目(这就是为什么我们不按名称而是按ResourceID删除的原因,因此可能有必要删除所有记录。

如果您有权访问sccm cmdlet(仅在安装了sccm控制台的服务器上),将是:

Get-CMDevice -Name <DeviceName> | Remove-CMDevice