אם אתם נתקלים בבעיות בהתקנת סוכן Atera, או אם אתם חווים בעיות של יציבות הסוכן, עקביות התראות, חוסר זמינות של הסוכן או חוסר יציבות בחיבור מרחוק, אנא בדקו את הדברים הבאים:
הגבלת תקופת ניסיון
במהלך תקופת הניסיון, ייתכן שתיתקלו בבעיות בהתקנת סוכן Atera על מכשירים שעליהם הותקן הסוכן בעבר על ידי חשבון אחר. מגבלה זו אינה ניתנת לפתרון בחשבונות ניסיון. לאחר רכישת מנוי ל-Atera, תוכלו להתקין את הסוכן על מכשירים אלה על ידי פנייה לצוות התמיכה שלנו לקבלת עזרה.
שגיאה 2753
ייתכן שתיתקלו בשגיאה 2753 בעת ניסיון להתקין את סוכן Atera על מכשיר. שגיאה זו מתרחשת כאשר קבצים מהתקנה קודמת של סוכן Atera עדיין קיימים על המכשיר. כדי לפתור את הבעיה, עיינו במאמר הבא שמסביר את כל השלבים הדרושים לפתרון התקלה.
גרסאות נתמכות
עיינו במאמר הראשי כדי לבדוק אילו גרסאות Windows תואמות לסוכן Atera.
רשימת שרתים ופתיחת פורטים
בנוסף להתקנת .NET Framework על המכשיר שלכם, חשוב להגדיר את הגדרות הרשת כך שיתאפשר תקשורת בין המכשירים שלכם לשרתי Atera.
יש להוסיף לרשימת ההיתרים (Whitelist) את השרתים הבאים ברשת שלכם כדי להבטיח תקשורת תקינה של הסוכן:
- a32dl55qcodech-ats.iot.eu-west-1.amazonaws.com
- agent-api.atera.com
- agent-api-v2.atera.com
- agenthb.atera.com
- app.atera.com
- appcdn.atera.com
- ps.atera.com
- pubsub.atera.com
- dotnetcli.azureedge.net
- builds.dotnet.microsoft.com
- download.visualstudio.microsoft.com
- ps.pndsn.com
- pubsub.pubnub.com
- atera.pubnubapi.com
- agentreportingstore.blob.core.windows.net
- agentspoliciesprod.blob.core.windows.net
- packagesstore.blob.core.windows.net
- ticketingitemsstoreeu.blob.core.windows.net
- atera-agent-heartbeat-cus.servicebus.windows.net
- atera-agent-heartbeat.servicebus.windows.net
- cacerts.thawte.com
- *.cloudfront.net
- automationtasks.blob.core.windows.net
- dot.net
- ci.dot.net
הערה חשובה:
- לא ניתן להוסיף את השרתים שלנו לרשימת ההיתרים לפי כתובת IP; יש להוסיף אותם לפי שם השרת בלבד.
פתיחת פורטים
בנוסף להוספת השרתים שצוינו לעיל לרשימת ההיתרים ברשת שלכם, יש לאפשר גם תעבורת יוצאת בפורטים 443 (TCP) ו-8883 (TCP/UDP) באנטי-וירוס, חומת האש ושרת הפרוקסי שלכם.
פתרון תקלות סוכן Windows (.ps1)
במקרה של בעיות התקנה או חיבור עם סוכן Atera, ניתן להריץ את הסקריפט הבא באופן מקומי על המכשיר או דרך Atera (אם הסוכן מגיב) כדי לוודא שרוב ההגדרות תקינות ולסיים תהליכים מסוימים.
למידע נוסף על הרצת סקריפטים ישירות מ-Atera, עיינו במאמרים הבאים:
# פונקציה לבדוק תוכנת חומת אש צד שלישי
function Check-ThirdPartyFirewall {
$firewallPrograms = @(
"Symantec", "McAfee", "Norton", "Kaspersky", "Bitdefender", "ESET",
"Avast", "AVG", "Comodo", "ZoneAlarm", "Sophos"
)
$thirdPartyFirewallFound = $false
$installedPrograms = Get-WmiObject -Query "SELECT * FROM Win32_Product"
$runningServices = Get-Service
foreach ($firewall in $firewallPrograms) {
if ($installedPrograms.Name -like "*$firewall*" -or $runningServices.DisplayName -like "*$firewall*") {
Write-Host "זוהתה חומת אש צד שלישי: $firewall" -ForegroundColor Green
$thirdPartyFirewallFound = $true
}
}
return $thirdPartyFirewallFound
}
# פונקציה לבדוק חוקים של חומת האש של Windows
function Check-WindowsFirewallRules {
$targetAddress = "agent-api.atera.com"
$targetIP = [System.Net.Dns]::GetHostAddresses($targetAddress)[0].IPAddressToString
$checkRules = {
param ($action, $direction)
Get-NetFirewallRule | Where-Object { $_.Action -eq $action -and $_.Direction -eq $direction -and $_.Protocol -eq "TCP" -and $_.LocalPort -eq "443" } |
ForEach-Object {
$addresses = Get-NetFirewallAddressFilter -AssociatedNetFirewallRule $_
if ($addresses.RemoteAddress -contains $targetIP) {
Write-Host "נמצא חוק $action עבור תעבורת HTTPS אל $targetAddress ($targetIP)." -ForegroundColor Green
return $true
}
}
return $false
}
if (-not ($checkRules.Invoke("Allow", "Outbound"))) {
Write-Host "לא נמצאו חוקים שמאפשרים במפורש תעבורת HTTPS." -ForegroundColor Red
$global:allowRuleMissing = $true
}
if (-not ($checkRules.Invoke("Block", "Outbound"))) {
Write-Host "לא נמצאו חוקים שחוסמים במפורש תעבורת HTTPS." -ForegroundColor Green
} else {
$global:blockRuleFound = $true
}
}
# פונקציה לפתור את כל כתובות ה-IP של שרת מסוים
function Get-AllIPAddresses {
param ([string]$server)
try {
[System.Net.Dns]::GetHostAddresses($server).IPAddressToString
} catch {
return $null
}
}
# פונקציה לבדוק חיבור TCP לפורט מסוים
function Test-TcpConnection {
param ([string]$server, [int]$port)
$resolvedIPs = Get-AllIPAddresses -server $server
if (-not $resolvedIPs) {
Write-Host "לא ניתן לפתור כתובות IP עבור $server." -ForegroundColor Red
$global:connectionIssues = $true
return
}
foreach ($resolvedIP in $resolvedIPs) {
# ── 1. בדיקת TCP בסיסית ─────────────────────────────────────────────
try {
$tcpClient = New-Object System.Net.Sockets.TcpClient
$sw = [System.Diagnostics.Stopwatch]::StartNew()
# התחברות אסינכרונית עם טיימאאוט של 3 שניות
$connectTask = $tcpClient.ConnectAsync($resolvedIP, $port)
if (-not $connectTask.Wait(3000)) {
$sw.Stop()
Write-Host "TCP נכשל: $server ($resolvedIP):$port — פג תוקף לאחר 3000ms" -ForegroundColor Red
$global:connectionIssues = $true
continue
}
$sw.Stop()
if ($tcpClient.Connected) {
Write-Host "TCP תקין: $server ($resolvedIP):$port [$($sw.ElapsedMilliseconds) ms]" -ForegroundColor Green
} else {
Write-Host "TCP נכשל: $server ($resolvedIP):$port — התחבר אך הסוקט לא נוצר" -ForegroundColor Red
$global:connectionIssues = $true
continue
}
} catch {
Write-Host "TCP נכשל: $server ($resolvedIP):$port — $($_.Exception.Message)" -ForegroundColor Red
$global:connectionIssues = $true
continue
} finally {
# סגירה נקייה של הסוקט
if ($tcpClient) {
$tcpClient.Close()
$tcpClient.Dispose()
}
}
# ── 2. בדיקת HTTPS + תעודה (רק לפורט 443) ──────────────────────────
if ($port -eq 443) {
try {
$script:capturedCert = $null
$certCallback = [System.Net.ServicePointManager]::ServerCertificateValidationCallback
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {
param($sender, $certificate, $chain, $sslPolicyErrors)
# שמירת התעודה בזיכרון לפני שה-Handle משתחרר
if ($certificate) {
try {
$script:capturedCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certificate)
} catch {
$script:capturedCert = $null
}
}
return $true
}
$request = [System.Net.HttpWebRequest]::Create("https://$server/")
$request.Host = $server
$request.Timeout = 10000
$request.Method = "HEAD"
$request.AllowAutoRedirect = $false
try {
$response = $request.GetResponse()
$statusCode = [int]$response.StatusCode
$response.Close()
} catch [System.Net.WebException] {
if ($_.Exception.Response) {
$statusCode = [int]$_.Exception.Response.StatusCode
} else {
throw
}
}
Write-Host "HTTPS תקין: $server — HTTP $statusCode" -ForegroundColor Green
# ── 3. בדיקת בעלות על התעודה ────────────────────────────────
if ($script:capturedCert) {
$certSubject = $script:capturedCert.Subject
$certIssuer = $script:capturedCert.Issuer
$certExpiry = $script:capturedCert.NotAfter
# יצירת דומיין עם כוכבית להתאמת תעודות Wildcard
# לדוג' d25btwd9wax8gu.cloudfront.net -> *.cloudfront.net
$serverDomain = $server -replace '^[^.]+\.', '*.'
# בדיקת SAN (Subject Alternative Names) להתאמה מדויקת יותר
$sanExtension = $script:capturedCert.Extensions | Where-Object { $_.Oid.FriendlyName -eq "Subject Alternative Name" }
$sanMatched = $false
if ($sanExtension) {
$sanString = $sanExtension.Format($false)
$sanEntries = $sanString -split ",|, " | ForEach-Object { $_.Trim() -replace "DNS Name=", "" }
foreach ($san in $sanEntries) {
$sanPattern = [regex]::Escape($san) -replace '\\\*', '[^.]+'
if ($server -match "^$sanPattern$") {
$sanMatched = $true
break
}
}
}
# סימון אם נושא התעודה/SAN לא תואם את השרת הצפוי
if (-not $sanMatched -and
$certSubject -notmatch [regex]::Escape($server) -and
$certSubject -notmatch [regex]::Escape($serverDomain) -and
$certSubject -notmatch "atera\.com" -and
$certSubject -notmatch "pubnub\.com" -and
$certSubject -notmatch "pubnubapi\.com") {
# בדיקה אם מדובר ב-CDN מוכר לפני סימון כאזהרה
$knownCDNs = @("akamai", "cloudfront", "fastly", "azureedge", "windows.net", "amazonaws.com")
$isCDN = $false
foreach ($cdn in $knownCDNs) {
if ($certSubject -match $cdn -or $certIssuer -match $cdn) {
$isCDN = $true
break
}
}
if ($isCDN) {
Write-Host "CERT תקין: $server — מוגש דרך CDN ($certSubject)" -ForegroundColor Green
} else {
Write-Host "CERT אזהרה: $server — נושא התעודה '$certSubject' לא תואם. ייתכן שיש בדיקת SSL." -ForegroundColor Yellow
$global:connectionIssues = $true
}
} else {
Write-Host "CERT תקין: $server — נושא: $certSubject" -ForegroundColor Green
}
# סימון מנפיקי תעודות מוכרים לבדיקת SSL ארגונית
$suspiciousIssuers = @("Zscaler", "Netskope", "Forcepoint", "BlueCoat",
"Palo Alto", "Cisco", "ContentKeeper", "Symantec SSL")
foreach ($issuer in $suspiciousIssuers) {
if ($certIssuer -match $issuer) {
Write-Host "CERT אזהרה: $server — מונפק על ידי '$issuer'. ייתכן שהתעבורה מנותבת דרך בדיקת אבטחה." -ForegroundColor Yellow
$global:connectionIssues = $true
}
}
# סימון תעודות שפג תוקפן או עומדות לפוג
if ($certExpiry -lt (Get-Date)) {
Write-Host "CERT אזהרה: $server — תוקף התעודה פג ($certExpiry)." -ForegroundColor Red
$global:connectionIssues = $true
} elseif ($certExpiry -lt (Get-Date).AddDays(30)) {
Write-Host "CERT אזהרה: $server — תוקף התעודה יפוג בקרוב ($certExpiry)." -ForegroundColor Yellow
}
} else {
# לא ניתן היה ללכוד תעודה - כנראה בגלל שימוש חוזר ב-SSL session, לא בעיה אמיתית
Write-Host "CERT מידע: $server — בדיקת תעודה לא בוצעה (שימוש חוזר ב-SSL session)." -ForegroundColor Cyan
}
} catch {
Write-Host "HTTPS נכשל: $server — $($_.Exception.Message)" -ForegroundColor Red
$global:connectionIssues = $true
} finally {
# תמיד להחזיר את ה-callback המקורי
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = $certCallback
}
}
}
}
# פונקציה לבדוק הגדרות TLS של .NET
function Check-NetTlsSettings {
$paths = @(
"HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319",
"HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319"
)
foreach ($path in $paths) {
try {
$tlsSetting = Get-ItemProperty -Path $path -Name "SystemDefaultTlsVersions" -ErrorAction SilentlyContinue
if ($tlsSetting) {
if ($tlsSetting.SystemDefaultTlsVersions -ne 1) {
Write-Host "הגדרת TLS עבור .NET Framework ב-$path אינה מוגדרת כראוי." -ForegroundColor Red
$global:tlsIssue = $true
} else {
Write-Host "הגדרת TLS עבור .NET Framework ב-$path מוגדרת כראוי." -ForegroundColor Green
}
} else {
Write-Host "הגדרת TLS עבור .NET Framework ב-$path לא נמצאה." -ForegroundColor Yellow
}
} catch {
Write-Host "שגיאה בגישה לנתיב הרישום ${path}: $($_.Exception.Message)" -ForegroundColor Red
}
}
}
# פונקציה לבדוק סטטוס FIPS ו-MDMEnabled
function CheckFIPS {
$fipsRegistryKey = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy"
$mdmEnabledRegistryKey = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy"
$enabledValue = Get-ItemProperty -Path $fipsRegistryKey -Name "Enabled" -ErrorAction SilentlyContinue
$mdmEnabledValue = Get-ItemProperty -Path $mdmEnabledRegistryKey -Name "MDMEnabled" -ErrorAction SilentlyContinue
if ($enabledValue) {
if ($enabledValue.Enabled -eq 1) {
Write-Host "FIPS מופעל." -ForegroundColor Green
$global:fipsEnabled = $true
} else {
Write-Host "FIPS כבוי." -ForegroundColor Red
$global:fipsEnabled = $false
}
} else {
Write-Host "ערך הרישום של FIPS לא נמצא." -ForegroundColor Yellow
}
if ($mdmEnabledValue) {
if ($mdmEnabledValue.MDMEnabled -eq 1) {
Write-Host "MDMEnabled מופעל." -ForegroundColor Green
} else {
Write-Host "MDMEnabled כבוי." -ForegroundColor Red
}
} else {
Write-Host "ערך הרישום של MDMEnabled לא נמצא." -ForegroundColor Yellow
}
}
# פונקציה לבדוק את גרסת סוכן Atera
function Check-AteraAgentVersion {
$agentPaths = @(
"C:\Program Files\ATERA Networks\AteraAgent\Agent\AteraAgent.exe",
"C:\Program Files\ATERA Networks\AteraAgent\AteraAgent.exe"
)
foreach ($path in $agentPaths) {
if (Test-Path $path) {
$fileVersionInfo = Get-Item -Path $path | Select-Object -ExpandProperty VersionInfo
Write-Host "$([System.IO.Path]::GetFileName($path)) גרסה: $($fileVersionInfo.FileVersion)" -ForegroundColor Green
if ($path -eq "C:\Program Files\ATERA Networks\AteraAgent\AteraAgent.exe") {
$global:oldAgentFound = $true
} else {
$global:newAgentFound = $true
}
} else {
Write-Host "$([System.IO.Path]::GetFileName($path)) לא נמצא ב-$path" -ForegroundColor Yellow
}
}
}
# פונקציה ראשית להרצת כל הבדיקות
function Main {
Write-Host ""
Write-Host "קטגוריה: בדיקת חיבור לשרתים" -ForegroundColor Cyan
$targets = @{
"pubsub.atera.com" = @(443)
"pubsub.pubnub.com" = @(443)
"app.atera.com" = @(443)
"agenthb.atera.com" = @(443)
"packagesstore.blob.core.windows.net" = @(443)
"ps.pndsn.com" = @(443)
"agent-api.atera.com" = @(443)
"agent-api-v2.atera.com" = @(443)
"cacerts.thawte.com" = @(443)
"agentreportingstore.blob.core.windows.net" = @(443)
"atera-agent-heartbeat.servicebus.windows.net" = @(443)
"ps.atera.com" = @(443)
"atera.pubnubapi.com" = @(443)
"appcdn.atera.com" = @(443)
"atera-agent-heartbeat-cus.servicebus.windows.net" = @(443)
"ticketingitemsstoreeu.blob.core.windows.net" = @(443)
"download.visualstudio.microsoft.com" = @(443)
"dotnetcli.azureedge.net" = @(443)
"agentspoliciesprod.blob.core.windows.net" = @(443)
"builds.dotnet.microsoft.com" = @(443)
"d25btwd9wax8gu.cloudfront.net" = @(443)
"a32dl55qcodech-ats.iot.eu-west-1.amazonaws.com" = @(443, 8883)
"automationtasks.blob.core.windows.net" = @(443)
}
foreach ($target in $targets.GetEnumerator()) {
$server = $target.Key
$ports = $target.Value
foreach ($port in $ports) {
Test-TcpConnection -server $server -port $port
}
}
Write-Host ""
Write-Host "קטגוריה: בדיקת חיבור ל-URL" -ForegroundColor Cyan
$urls = @(
"https://ps.atera.com/agentpackagesnet45/Agent.Package.Availability/0.16/Agent.Package.Availability.zip",
"https://ps.atera.com/agentpackagesnet45/Agent.Package.Watchdog/1.5/Agent.Package.Watchdog.zip",
"https://ps.atera.com/agentpackagesnet45/AgentPackageAgentInformation/37.2/AgentPackageAgentInformation.zip",
"https://ps.atera.com/agentpackagesnet45/AgentPackageInternalPoller/23.8/AgentPackageInternalPoller.zip",
"https://ps.atera.com/agentpackagesnet45/AgentPackageMarketplace/1.4/AgentPackageMarketplace.zip",
"https://ps.atera.com/agentpackagesnet45/AgentPackageMonitoring/36.9/AgentPackageMonitoring.zip"
)
foreach ($url in $urls) {
$request = [System.Net.HttpWebRequest]::Create($url)
$request.Method = "GET"
try {
$response = $request.GetResponse()
if ($response.StatusCode -eq [System.Net.HttpStatusCode]::OK) {
Write-Host ("החיבור אל ${url} הצליח.") -ForegroundColor Green
} else {
Write-Host ("החיבור אל ${url} נכשל. קוד סטטוס: $($response.StatusCode)") -ForegroundColor Red
$global:connectionIssues = $true
}
$response.Close()
} catch {
Write-Host ("שגיאה בחיבור אל ${url}: $($_.Exception.Message)") -ForegroundColor Red
$global:connectionIssues = $true
}
}
Write-Host ""
Write-Host "קטגוריה: בדיקת חומת אש" -ForegroundColor Cyan
$thirdPartyFirewallFound = Check-ThirdPartyFirewall
if ($thirdPartyFirewallFound) {
Write-Host "זוהתה חומת אש צד שלישי. דילוג על בדיקות חומת האש של Windows." -ForegroundColor Cyan
} else {
Write-Host "לא זוהתה חומת אש צד שלישי. בודק חוקים של חומת האש של Windows..." -ForegroundColor Cyan
Check-WindowsFirewallRules
}
Write-Host ""
Write-Host "קטגוריה: גרסת .NET Framework" -ForegroundColor Cyan
$dotNetVersion = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -Name Version | Select-Object -ExpandProperty Version
if ($dotNetVersion) {
Write-Host "גרסת .NET Framework מותקנת: $dotNetVersion"
if ([version]$dotNetVersion -lt [version]"4.5") {
$global:dotNetIssue = $true
}
} else {
Write-Host "לא מותקן .NET Framework או לא ניתן לקבוע את הגרסה."
$global:dotNetIssue = $true
}
Write-Host ""
Write-Host "קטגוריה: הגדרות פרוקסי של IE" -ForegroundColor Cyan
Write-Host "הגדרות פרוקסי של IE עבור localsystem:"
$proxySettings = bitsadmin /util /getieproxy localsystem
Write-Host $proxySettings
$global:proxyIssue = $true
Write-Host ""
Write-Host "קטגוריה: סטטוס FIPS ו-MDMEnabled" -ForegroundColor Cyan
CheckFIPS
Write-Host ""
Write-Host "קטגוריה: גרסת סוכן Atera" -ForegroundColor Cyan
Check-AteraAgentVersion
Write-Host ""
Write-Host "קטגוריה: הגדרות TLS של .NET" -ForegroundColor Cyan
Check-NetTlsSettings
Write-Host ""
Write-Host "קטגוריה: סיום תהליך msiexec.exe" -ForegroundColor Cyan
$msiexecProcesses = Get-Process -Name "msiexec" -ErrorAction SilentlyContinue
if ($msiexecProcesses) {
$msiexecProcesses | ForEach-Object { $_.Kill() }
Write-Host "תהליך msiexec.exe הופסק."
} else {
Write-Host "לא נמצא תהליך msiexec.exe."
}
Write-Host ""
Write-Host "קטגוריה: מערכת הפעלה וגרסה" -ForegroundColor Cyan
$osInfo = Get-CimInstance -ClassName Win32_OperatingSystem
Write-Host "מערכת הפעלה: $($osInfo.Caption)"
Write-Host "גרסה: $($osInfo.Version)"
Write-Host ""
Write-Host "קטגוריה: הוראות" -ForegroundColor Cyan
if ($global:dotNetIssue) {
Write-Host "זוהתה גרסת .NET Framework נמוכה מ-4.5. יש להתקין גרסה עדכנית יותר." -ForegroundColor Red
}
if ($global:proxyIssue) {
Write-Host "אם בוצעו שינויים בפרוקסי תחת חשבון local system, יש להריץ את הפקודה הבאה:" -ForegroundColor Red
Write-Host "bitsadmin /util /setieproxy localsystem no_proxy" -ForegroundColor Red
}
if ($global:connectionIssues) {
Write-Host "חלק מהשרתים או ה-URL חסומים. יש להוסיף לרשימת ההיתרים (whitelist) את השרתים/URL החסומים." -ForegroundColor Red
}
if ($global:oldAgentFound -and $global:fipsEnabled) {
Write-Host "זוהה סוכן Atera ישן. ודא ש-FIPS כבוי לצורך תאימות." -ForegroundColor Red
}
if ($global:blockRuleFound) {
Write-Host "נמצא חוק שחוסם תעבורת HTTPS. ודא שיש חוק שמאפשר תעבורת HTTPS מ-LAN ל-WAN עבור agent-api.atera.com. שקול את הגדרות בדיקת HTTPS." -ForegroundColor Red
}
if ($global:tlsIssue -and $tlsSetting) {
Write-Host "הגדרות TLS של .NET אינן נכונות. יש להריץ את הפקודות הבאות לתיקון:" -ForegroundColor Red
Write-Host 'reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" /v SystemDefaultTlsVersions /t REG_DWORD /d 00000001 /f' -ForegroundColor Red
Write-Host 'reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" /v SystemDefaultTlsVersions /t REG_DWORD /d 00000001 /f' -ForegroundColor Red
}
}
# הרץ את הפונקציה הראשית
Main
פרטי הסקריפט
כאשר מריצים את הסקריפט על מכשיר, הוא יתחיל תהליך שמסייע באבחון הבעיות הנפוצות ביותר הקשורות לסוכן של Atera. בנוסף, הוא יספק סדרת הוראות שמטרתן להקל על פתרון הבעיות השכיחות ביותר הקשורות לסוכן של Atera.
הערה חשובה: הסקריפט ינסה לסיים תהליכים הקשורים להתקנת MSI. אם אתם מתקינים תוכנה במקביל, ודאו שההתקנה הסתיימה לפני הרצת הסקריפט.
גרסת .NET Framework לא נתמכת
אם גרסת .NET Framework נמוכה מ-4.5, הסקריפט יתריע על כך. ודאו שגרסה 4.5 או גבוהה ממנה מותקנת על המכשירים שלכם.
כלל חומת אש שחוסם תעבורת HTTPS
הסקריפט יבדוק אם מותקנת חומת אש של צד שלישי על המכשיר או אם נעשה שימוש בחומת האש של Windows.
אם פועלת חומת אש של צד שלישי, ודאו שהיא מוגדרת כפי שמפורט בסעיף חומת אש.
אם מזוהה חומת האש של Windows, הסקריפט ינסה גם לזהות חסימות שעלולות להפריע לפעולה או להתקנה של סוכן Atera. אנא עברו גם על סעיף חומת אש.
כשל בחיבור לשרתים וכתובות URL
הסקריפט יבדוק את החיבור של המכשיר לשרתים שלנו. אם תראו פלט שמציג שרתים חסומים, ודאו שהם נמצאים ברשימת ההיתרים (whitelist) ברשת שלכם.
FIPS
הסקריפט יבדוק אם FIPS מופעל על המכשירים שלכם.
- אם אתם משתמשים בגרסה ישנה של הסוכן, הסקריפט יתריע שיש לכבות את FIPS, כיוון שהגרסה הישנה אינה תואמת.
- אם אתם משתמשים בגרסה החדשה של הסוכן, ניתן להפעיל FIPS, כיוון שהיא תואמת.
הגדרות TLS שגויות ב-.NET
הסקריפט יבדוק אם .NET מוגדר להפנות ל-TLS שמושבת. מידע נוסף ניתן למצוא בסעיף למטה:
הגדרות Proxy שזוהו עבור חשבון Local System
הגדרות Proxy תחת חשבון Local System עלולות להפריע לחיבור של הסוכן. אם ידוע לכם על שינויים, ודאו שאתם פועלים לפי השלבים המפורטים בסעיף.
תוכנות/מכשירים שעלולים לחסום
בהגדרות הארגון שלכם, ייתכן שתצטרכו להתאים הגדרות עבור אנטי-וירוס, חומת אש, Proxy או חסימת מיקום גיאוגרפי (Geo-blocking). להלן רשימת הגדרות שיש להחיל על כל היישומים הרלוונטיים.
.NET Framework
Atera תומכת רק בגרסאות של .NET Framework חדשות מ-4.5. ודאו שהגרסה המתאימה מותקנת.
אנטי-וירוס
הוסיפו את הנתיבים הבאים לרשימת ההיתרים של האנטי-וירוס:
- C:\Program Files\Atera Networks (או C:\Program Files (x86)\ATERA Networks עבור 32 ביט)
- C:\Windows\Temp\AteraUpgradeAgentPackage
ייתכן שתצטרכו להפעיל/להוסיף מדיניות החרגה לסריקת קבצי ZIP מוגני סיסמה (או לאפשר מעבר של תוכן שלא ניתן לסרוק).
לצורך בדיקות, שקלו להוסיף לרשימת ההיתרים את התיקיה: C:\Windows\Installer
לאחר סיום תהליך ההיתור, המשיכו לנסות התקנה נוספת. זכרו להסיר את ההיתור בסיום שלב הבדיקה.
חומת אש
בסביבות רשת מסוימות שבהן תעבורת HTTPS מוגבלת, ודאו שהוספתם כלל שמאפשר תעבורת HTTPS מ-LAN ל-WAN, במיוחד עבור כתובת Atera:
- agent-api.atera.com
בנוסף, בדיקת HTTPS (Deep Packet Inspection/SSL Inspection) עלולה לגרום לחסימות; חשוב או לבטל סריקת HTTPS או להוסיף את Atera והשרתים שלה לרשימת ההיתרים של הבדיקה.
הערה חשובה: החומה הגדולה של סין חוסמת כיום שרתים מסוימים החיוניים לדיווח זמינות מכשירים (סטטוס אונליין/אופליין) של AteraAgent. לכן, ייתכן שלא ניתן יהיה לנהל מכשירים במדינה זו מהקונסולה. שימוש ב-VPN עשוי לעקוף את ההגבלות, אך שימו לב שאיננו מספקים הוראות או תמיכה בהגדרת VPN.
רשימת היתרים ל-Nmap (גילוי רשת)
לפני הרצת גילוי רשת, מומלץ להוסיף את Nmap לרשימת ההיתרים כדי למנוע הפרעות או זיהוי שגוי על ידי תוכנות אבטחה, אנטי-וירוס או מערכות EDR.
כך תבטיחו שהתהליך יתבצע בצורה חלקה וכל תוצאות הגילוי ייאספו במדויק. להוראות מפורטות כיצד להוסיף את Nmap לרשימת ההיתרים, ראו מדריך היתור Nmap עבור תוכנות אנטי-וירוס.
Proxy
מערכות Proxy וסינון אתרים נפוצות ועלולות להשפיע על יציבות הסוכן.
ודאו שתעבורה יוצאת בפורטים 443 ו-8883, וכן קבצים עם סיומות ZIP ו-EXE מהאתר שלנו (כתובת Atera: agent-api.atera.com), מאושרות.
הערה חשובה: שימו לב ש-Atera אינה מספקת תמיכה או הנחיות להגדרת Proxy.
חסימת מיקום גיאוגרפי (Geo-blocking)
לדוגמה, נתבי SonicWall, הידועים ביכולות חסימת מיקום גיאוגרפי, עשויים לדרוש הגדרות מיוחדות.
ודאו שתעבורת תוכן מותרת, בנוסף לאישור תעבורת TCP בפורטים 443 ו-8883, לקבלת תפקוד מיטבי.
Proxy תחת חשבון Local System
הפעלת Proxy מקומית על המכשיר, תחת חשבון Local System, עלולה להשפיע על תפקוד תקין של סוכן Atera. לצורך בדיקות, חשוב לבטל את ה-Proxy תחת חשבון Local System.
כדי לבדוק את סטטוס ה-Proxy, הריצו את הפקודה הבאה ב-CMD עם הרשאות מנהל.
bitsadmin /util /getieproxy localsystem
כדי לבטל את ה-Proxy שרץ תחת חשבון Local System, הריצו את הפקודה הבאה ב-CMD כמנהל.
bitsadmin /util /setieproxy localsystem no_proxy
הגדרות TLS שיושמו באמצעות כלי צד שלישי IIS Crypto
IIS Crypto ידוע בכך שהוא משבש תקשורת TLS על ידי הכנסת ערכים לא סטנדרטיים למפתחות רג'יסטרי. לצורך אבטחה מיטבית, כל מפתחות TLS (Enabled/DisabledByDefault) צריכים להיות עם ערכים 0 או 1 בלבד, כפי שמפורט בתיעוד הרשמי של מיקרוסופט:
שינויים שמבצע IIS Crypto יוצרים ערכים לא תקניים שמפריעים לתקשורת בפרוטוקול.
הגדרות .NET עבור TLS
לעיתים, .NET עשוי להיות מוגדר לעבוד מול TLS שמושבת, מה שמפריע לתקשורת של Atera, כיוון שמדובר באפליקציית .NET.
לטיפול בבעיה, הריצו את הפקודות הבאות ב-CMD עם הרשאות מנהל:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" /v SystemDefaultTlsVersions /t REG_DWORD /d 00000001 /f reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" /v SystemDefaultTlsVersions /t REG_DWORD /d 00000001 /f
FIPS
FIPS אינו נתמך בגרסאות ישנות של הסוכן; הפעלתו עלולה לגרום לבעיות. אם המכשיר שלכם פועל עם גרסה נמוכה מ-2.0.0.0, ודאו ש-FIPS כבוי.
עבור סוכנים בגרסה 2.0.0.0 ומעלה, ניתן להפעיל FIPS, כיוון שהוא תואם לתקן.
כדי לכבות FIPS, ניתן להריץ את הפקודה הבאה על המכשיר ב-PowerShell.
# Disable FIPS Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" -Name "Enabled" -Value 0 # Disable MDMEnabled (if applicable) Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" -Name "MDMEnabled" -Value 0 Write-Host "FIPS and MDMEnabled have been disabled." -ForegroundColor Green
מכונות משוכפלות
Atera ממליצה לא להתקין את AteraAgent כחלק מתמונת שיבוט (clone image), כיוון שזה עלול לגרום לדיווח כפול של מכשירים בקונסולה. להנחיות על יצירת Golden Image עם Atera וטיפול בבעיות אפשריות, ראו את המאמר הבא.
מתקיני סוכן Atera מיושנים
שימוש במתקין מיושן עלול לגרום לבעיות במהלך התקנת סוכן Atera. מומלץ להשתמש במתקין עדכני בעת התקנה על מכשיר חדש. ליצירת מתקין עדכני, פעלו לפי השלבים במאמר הראשי שלנו.
שימוש במשאבי מערכת (שטח דיסק וזיכרון)
סעיף זה עוסק בבעיות נפוצות במשאבי מערכת הקשורות לשטח דיסק ושימוש בזיכרון שעלולות להשפיע על היציבות והביצועים של סוכן Atera.
תקשורת לקויה בין הסוכן לשרתי Atera
בדרך כלל נגרמת עקב כללי חומת אש, חסימות אנטי-וירוס או הגדרות רשת שגויות.
מערכות הפעלה לא נתמכות או מיושנות
הרצת הסוכן על מערכות הפעלה לא נתמכות או ישנות עלולה לגרום לצריכת משאבים חריגה.
התנגשויות עם תוכנות אבטחה או ניטור
תוכנות אנטי-וירוס, ספי ניטור Exchange, כלי ניהול עדכונים או פתרונות דומים עשויים לסרוק שוב ושוב קבצי סוכן, מה שמוביל לשימוש מוגבר בזיכרון.
התקנה פגומה של הסוכן או חבילות סוכן פגומות
התקנה פגומה או חבילות פגומות עלולות לגרום להתנהגות לא צפויה של הסוכן.
פריטי ניטור מיותרים או כפולים בפרופילי סף
פרופילי סף עמוסים או מוגדרים לא נכון עלולים להגדיל משמעותית את צריכת המשאבים של הסוכן.
עיבוד נתונים גבוה מסקריפטי ניטור
צריכת זיכרון גבוהה עלולה להתרחש כאשר מוגדרים מספר רב של סקריפטים של כלי מערכת בפרופילי ניטור או סף.
סקריפטים אלו עלולים לגרום לסוכן לאסוף ולעבד כמויות גדולות של נתוני מערכת, מה שמגדיל משמעותית את השימוש בזיכרון, במיוחד במכשירים עם זיכרון RAM מוגבל.
כדי לפתור עומס גבוה בעיבוד נתונים ושימוש בזיכרון שנגרמים מסקריפטים מפקחים בסוכן של Atera, מומלץ להפחית את מספר הפריטים המנוטרים שמבוססים על סקריפטים או צורכים הרבה משאבים בפרופילי הסף שלכם, במיוחד בבדיקות כבדות כמו Exchange; צרו פרופילים רזים יותר והקצו אותם רק לפי הצורך
גרסאות סוכן ישנות
גרסאות ישנות של הסוכן ידועות ככאלה שצורכות יותר משאבי מערכת.
מומלץ בחום להתקין ולתחזק תמיד את גרסת הסוכן העדכנית ביותר.