Время от времени агент SCCM теряет связь с SCCM-сервером и становится не активным после долгого простоя. Иногда включения хоста в сеть бывает достаточно, но не всегда. Сегодня мы рассмотрим варианты по восстановлению работоспобности агента SCCM. Первый способ восстановить агента Configuration Manager - использовать утилиту ccmrepair.exe. Ниже я упомяну и о некоторых дополнительных методах, с помощью которых вы можете легко исправить проблемы с агентом клиента SCCM.
Вариант 1.
Если у вас есть ccmrepair, вы можете легко восстановить агент клиента sccm с помощью командной строки:
cd C:\Windows\ccm
C:\Windows\CCM>ccmrepair.exe
Repairing product {88B420C9-C484-4E20-8D02-C25243A36B80}…
Done.
Вариант 2.
Не помогло? Используем Powershell. Удалим полностью агента, выполнив скрипт с админстративными правами.
cd C:\Windows\ccmsetup
.\ccmsetup.exe /uninstall
Start-Sleep -Seconds 10
while (Get-Process -Name ccmsetup -ErrorAction SilentlyContinue) {
Start-Sleep -Seconds 180
}
Start-Sleep -Seconds 120
if (Get-WmiObject -Query "SELECT * FROM __Namespace WHERE Name='ccm'" -Namespace root -ErrorAction SilentlyContinue) {
Get-WmiObject -Query "SELECT * FROM __Namespace WHERE Name='ccm'" -Namespace root -ErrorAction SilentlyContinue | Remove-WmiObject
}
if (Get-WmiObject -Query "SELECT * FROM __Namespace WHERE Name='sms'" -Namespace root\cimv2 -ErrorAction SilentlyContinue) {
Get-WmiObject -Query "SELECT * FROM __Namespace WHERE Name='sms'" -Namespace root\cimv2 -ErrorAction SilentlyContinue | Remove-WmiObject
}
if (Test-Path -Path "c:\windows\ccm") {
rd "c:\windows\ccm" -Recurse –Force -ErrorAction SilentlyContinue
}
if (Test-Path -Path "c:\windows\ccmsetup") {
rd "c:\windows\ccmsetup" -Recurse –Force -ErrorAction SilentlyContinue
}
if (Test-Path -Path "c:\windows\ccmcache") {
rd "c:\windows\ccm" -Recurse –Force -ErrorAction SilentlyContinue
}
if (Test-Path -Path "c:\windows\smscfg.ini") {
rd "c:\windows\smscfg.ini" –Force -ErrorAction SilentlyContinue
}
Get-ChildItem -Path "c:\windows\sms*.mif " | foreach { $_.Delete()}
if (Get-Item Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM -ErrorAction SilentlyContinue) {
Remove-Item Registry::HKEY_LOCAL_MACHINE\software\Microsoft\ccm –Recurse -ErrorAction SilentlyContinue
}
if (Get-Item Registry::HKEY_LOCAL_MACHINE\software\Microsoft\CCMSETUP -ErrorAction SilentlyContinue) {
Remove-Item Registry::HKEY_LOCAL_MACHINE\software\Microsoft\CCMSETUP –Recurse -ErrorAction SilentlyContinue
}
if (Get-Item Registry::HKEY_LOCAL_MACHINE\software\Microsoft\SMS -ErrorAction SilentlyContinue) {
Remove-Item Registry::HKEY_LOCAL_MACHINE\software\Microsoft\SMS –Recurse -ErrorAction SilentlyContinue
}
Get-ChildItem Cert:\LocalMachine\SMS\ | Remove-Item -ErrorAction SilentlyContinue
Тут же удалим старый сертификат которым был подписан SCCM-агент.
[DateTime]$Date = (Get-Date -Format 'yyyy-MM-dd')
$CompName = ($env:ComputerName).ToUpper()
$Certs = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject.ToUpper() -like "*$CompName*" -And $_.EnhancedKeyUsageList -like "*Client Authentication*" -And $_.FriendlyName -eq ""} | Sort-Object NotBefore -Descending
ForEach ($Cert in $Certs) {
If ($Cert.NotBefore -lt $Date) {
# Removing Old Certificate"
Remove-Item -Path Cert:\LocalMachine\My\$($Cert.PSChildName) -Force
}
}
После обязательно делаем перезагрузку ОС. И ставим SCCM-агента по новому
ccmsetup.exe /mp:SCCM01.forza.com SMSSITECODE = UE1 SMSMP = SCCM01.forza.com DNSSUFFIX = forza.com
либо ждем его наката через GPO.
Вариант 3.
Еще можно упомянуть использование надстройки "Right Click Tools". Как ее использовать смотрим здесь.
Ну вот и все. Что-то из указанного должно помочь. Успехов.
No comments:
Post a Comment
А что вы думаете по этому поводу?