add files
This commit is contained in:
parent
d70e612491
commit
0801a864d9
274
linux.sh
Normal file
274
linux.sh
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
#!/bin/bash
|
||||
##########################################
|
||||
# CheckMK Agent Registrierung
|
||||
# Author: Maximilian Radtke
|
||||
# E-Mail: maximilian.radtke@gc-gruppe.de
|
||||
##########################################
|
||||
|
||||
|
||||
# Farben für bessere Lesbarkeit
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
|
||||
# Funktion für formatierte Ausgaben
|
||||
print_header() {
|
||||
echo -e "\n${BLUE}╔════════════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e "${BLUE}║${NC} CheckMK Agent - TLS & Updater Registrierung ${BLUE}║${NC}"
|
||||
echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}\n"
|
||||
}
|
||||
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}✓${NC} $1"
|
||||
}
|
||||
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}✗${NC} $1"
|
||||
}
|
||||
|
||||
|
||||
print_info() {
|
||||
echo -e "${CYAN}ℹ${NC} $1"
|
||||
}
|
||||
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}⚠${NC} $1"
|
||||
}
|
||||
|
||||
|
||||
# Funktion zur Überprüfung ob Befehle existieren
|
||||
check_dependencies() {
|
||||
local missing_deps=0
|
||||
|
||||
if ! command -v cmk-agent-ctl &> /dev/null; then
|
||||
print_error "cmk-agent-ctl nicht gefunden"
|
||||
missing_deps=1
|
||||
fi
|
||||
|
||||
if ! command -v cmk-update-agent &> /dev/null; then
|
||||
print_error "cmk-update-agent nicht gefunden"
|
||||
missing_deps=1
|
||||
fi
|
||||
|
||||
if ! command -v curl &> /dev/null; then
|
||||
print_error "curl nicht gefunden"
|
||||
missing_deps=1
|
||||
fi
|
||||
|
||||
if ! command -v jq &> /dev/null; then
|
||||
print_warning "jq nicht gefunden - API-Suche wird übersprungen"
|
||||
fi
|
||||
|
||||
if [ $missing_deps -eq 1 ]; then
|
||||
print_error "Bitte installieren Sie die fehlenden Abhängigkeiten"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Funktion zur Eingabevalidierung
|
||||
validate_input() {
|
||||
local var_name=$1
|
||||
local var_value=$2
|
||||
|
||||
if [ -z "$var_value" ]; then
|
||||
print_error "$var_name darf nicht leer sein"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
# Funktion zum Suchen des Hosts in CheckMK via API
|
||||
search_checkmk_host() {
|
||||
local server=$1
|
||||
local site=$2
|
||||
local username=$3
|
||||
local password=$4
|
||||
local search_hostname=$5
|
||||
|
||||
# Prüfe ob jq verfügbar ist
|
||||
if ! command -v jq &> /dev/null; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
print_info "Suche Host in CheckMK..." >&2
|
||||
|
||||
# API URL
|
||||
local api_url="https://${server}/${site}/check_mk/api/1.0/domain-types/host_config/collections/all"
|
||||
|
||||
# Bearer Token Format: "username password"
|
||||
local auth_header="Authorization: Bearer ${username} ${password}"
|
||||
|
||||
# API Aufruf
|
||||
local response=$(curl -s -k -H "$auth_header" -H "Accept: application/json" "$api_url" 2>/dev/null)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
print_warning "Konnte nicht auf CheckMK API zugreifen" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Suche nach dem Host (case-insensitive)
|
||||
local search_lower=$(echo "$search_hostname" | tr '[:upper:]' '[:lower:]')
|
||||
local found_host=$(echo "$response" | jq -r --arg search "$search_lower" '.value[]? | select(.id | ascii_downcase == $search) | .id' 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -n "$found_host" ]; then
|
||||
print_success "Host gefunden in CheckMK: $found_host" >&2
|
||||
echo "$found_host"
|
||||
return 0
|
||||
else
|
||||
print_warning "Host '$search_hostname' nicht in CheckMK gefunden" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Header anzeigen
|
||||
print_header
|
||||
|
||||
|
||||
# Abhängigkeiten prüfen
|
||||
print_info "Prüfe Systemvoraussetzungen..."
|
||||
check_dependencies
|
||||
print_success "Alle benötigten Befehle gefunden"
|
||||
echo ""
|
||||
|
||||
|
||||
# Benutzereingaben sammeln
|
||||
echo -e "${BLUE}═══ Schritt 1: Server-Informationen ═══${NC}\n"
|
||||
|
||||
|
||||
while true; do
|
||||
read -p "Server: " SERVER
|
||||
validate_input "Server" "$SERVER" && break
|
||||
done
|
||||
|
||||
|
||||
while true; do
|
||||
read -p "Site: " SITE
|
||||
validate_input "Site" "$SITE" && break
|
||||
done
|
||||
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}═══ Schritt 2: Anmeldedaten ═══${NC}\n"
|
||||
|
||||
|
||||
while true; do
|
||||
read -p "Benutzername: " USERNAME
|
||||
validate_input "Benutzername" "$USERNAME" && break
|
||||
done
|
||||
|
||||
|
||||
while true; do
|
||||
read -s -p "Passwort: " PASSWORD
|
||||
echo ""
|
||||
validate_input "Passwort" "$PASSWORD" && break
|
||||
done
|
||||
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}═══ Schritt 3: Hostname ═══${NC}\n"
|
||||
|
||||
|
||||
# Verwende den FQDN direkt vom System
|
||||
DEFAULT_HOSTNAME=$(hostname | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
|
||||
read -p "Hostname [$DEFAULT_HOSTNAME]: " HOSTNAME
|
||||
|
||||
|
||||
if [ -z "$HOSTNAME" ]; then
|
||||
HOSTNAME="$DEFAULT_HOSTNAME"
|
||||
fi
|
||||
|
||||
|
||||
# Versuche den Host in CheckMK zu finden
|
||||
echo ""
|
||||
CHECKMK_HOSTNAME=$(search_checkmk_host "$SERVER" "$SITE" "$USERNAME" "$PASSWORD" "$HOSTNAME")
|
||||
|
||||
|
||||
if [ -n "$CHECKMK_HOSTNAME" ]; then
|
||||
# Host in CheckMK gefunden - verwende exakte Schreibweise
|
||||
HOSTNAME="$CHECKMK_HOSTNAME"
|
||||
else
|
||||
# Host nicht gefunden - verwende Kleinschreibung als Fallback
|
||||
HOSTNAME=$(echo "$HOSTNAME" | tr '[:upper:]' '[:lower:]')
|
||||
print_warning "Verwende Fallback-Hostname: $HOSTNAME"
|
||||
echo ""
|
||||
read -p "Trotzdem fortfahren? (j/n): " CONTINUE
|
||||
if [[ ! "$CONTINUE" =~ ^[jJ]$ ]]; then
|
||||
print_warning "Abbruch durch Benutzer"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Zusammenfassung anzeigen
|
||||
echo ""
|
||||
echo -e "${BLUE}═══ Zusammenfassung ═══${NC}\n"
|
||||
echo -e "Server: ${GREEN}$SERVER${NC}"
|
||||
echo -e "Site: ${GREEN}$SITE${NC}"
|
||||
echo -e "Username: ${GREEN}$USERNAME${NC}"
|
||||
echo -e "Hostname: ${GREEN}$HOSTNAME${NC}"
|
||||
echo ""
|
||||
|
||||
|
||||
read -p "Fortfahren? (j/n): " CONFIRM
|
||||
if [[ ! "$CONFIRM" =~ ^[jJ]$ ]]; then
|
||||
print_warning "Abbruch durch Benutzer"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
# TLS-Registrierung durchführen
|
||||
echo ""
|
||||
echo -e "${BLUE}═══ Schritt 4: TLS-Registrierung ═══${NC}\n"
|
||||
print_info "Registriere Agent mit TLS..."
|
||||
|
||||
|
||||
if yes | cmk-agent-ctl register --hostname "$HOSTNAME" --server "$SERVER" --site "$SITE" --user "$USERNAME" --password "$PASSWORD"; then
|
||||
print_success "TLS-Registrierung erfolgreich abgeschlossen"
|
||||
else
|
||||
print_error "TLS-Registrierung fehlgeschlagen (Exit-Code: $?)"
|
||||
echo ""
|
||||
print_info "Mögliche Ursachen:"
|
||||
print_info " - Netzwerkverbindung zum Server prüfen: ping $SERVER"
|
||||
print_info " - Firewall-Regeln prüfen (Port 8000): telnet $SERVER 8000"
|
||||
print_info " - DNS-Auflösung prüfen: nslookup $SERVER"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Updater registrieren
|
||||
echo ""
|
||||
echo -e "${BLUE}═══ Schritt 5: Updater-Registrierung ═══${NC}\n"
|
||||
print_info "Registriere Agent-Updater..."
|
||||
|
||||
|
||||
if cmk-update-agent register -s "$SERVER" -i "$SITE" -H "$HOSTNAME" -p https -U "$USERNAME" -S "$PASSWORD"; then
|
||||
print_success "Updater-Registrierung erfolgreich abgeschlossen"
|
||||
else
|
||||
print_error "Updater-Registrierung fehlgeschlagen (Exit-Code: $?)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Erfolgsmeldung
|
||||
echo ""
|
||||
echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e "${GREEN}║${NC} ✓ Registrierung erfolgreich abgeschlossen! ${GREEN}║${NC}"
|
||||
echo -e "${GREEN}╚════════════════════════════════════════════════════════════╝${NC}"
|
||||
echo ""
|
||||
print_info "Der CheckMK Agent ist nun registriert und einsatzbereit"
|
||||
echo ""
|
||||
|
||||
|
||||
exit 0
|
||||
334
windows.ps1
Normal file
334
windows.ps1
Normal file
|
|
@ -0,0 +1,334 @@
|
|||
##########################################
|
||||
# CheckMK Agent Registrierung
|
||||
# Author: Marius Gielnik
|
||||
# E-Mail: marius.gielnik@gc-gruppe.de
|
||||
##########################################
|
||||
|
||||
|
||||
# Farben fuer bessere Lesbarkeit
|
||||
$ColorInfo = "Cyan"
|
||||
$ColorSuccess = "Green"
|
||||
$ColorError = "Red"
|
||||
$ColorWarning = "Yellow"
|
||||
|
||||
|
||||
# Fester API-Server
|
||||
$API_SERVER = "monitoring.gc-gruppe.net"
|
||||
|
||||
|
||||
# Funktion fuer formatierte Ausgaben
|
||||
function Write-Header {
|
||||
Write-Host ""
|
||||
Write-Host "============================================================" -ForegroundColor Cyan
|
||||
Write-Host " CheckMK Agent - TLS & Updater Registrierung " -ForegroundColor Cyan
|
||||
Write-Host "============================================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
|
||||
function Write-Success {
|
||||
param([string]$Message)
|
||||
Write-Host "[OK] $Message" -ForegroundColor Green
|
||||
}
|
||||
|
||||
|
||||
function Write-ErrorMsg {
|
||||
param([string]$Message)
|
||||
Write-Host "[FEHLER] $Message" -ForegroundColor Red
|
||||
}
|
||||
|
||||
|
||||
function Write-Info {
|
||||
param([string]$Message)
|
||||
Write-Host "[INFO] $Message" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
|
||||
function Write-Warning {
|
||||
param([string]$Message)
|
||||
Write-Host "[WARNUNG] $Message" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
|
||||
function Write-SectionHeader {
|
||||
param([string]$Message)
|
||||
Write-Host ""
|
||||
Write-Host "--- $Message ---" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
|
||||
# Funktion zur Ueberpruefung ob Dateien existieren
|
||||
function Test-Dependencies {
|
||||
$agentCtlPath = "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe"
|
||||
$updaterPath = "C:\Program Files (x86)\checkmk\service\check_mk_agent.exe"
|
||||
|
||||
$missingDeps = 0
|
||||
|
||||
if (-not (Test-Path $agentCtlPath)) {
|
||||
Write-ErrorMsg "cmk-agent-ctl.exe nicht gefunden: $agentCtlPath"
|
||||
$missingDeps++
|
||||
}
|
||||
|
||||
if (-not (Test-Path $updaterPath)) {
|
||||
Write-ErrorMsg "check_mk_agent.exe nicht gefunden: $updaterPath"
|
||||
$missingDeps++
|
||||
}
|
||||
|
||||
if ($missingDeps -gt 0) {
|
||||
Write-ErrorMsg "Bitte installieren Sie den CheckMK Agent"
|
||||
exit 1
|
||||
}
|
||||
|
||||
return $true
|
||||
}
|
||||
|
||||
|
||||
# Funktion zur Eingabevalidierung
|
||||
function Get-ValidatedInput {
|
||||
param(
|
||||
[string]$Prompt,
|
||||
[switch]$IsSecure,
|
||||
[string]$DefaultValue = ""
|
||||
)
|
||||
|
||||
while ($true) {
|
||||
if ($IsSecure) {
|
||||
$value = Read-Host -AsSecureString $Prompt
|
||||
$plainValue = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
|
||||
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($value)
|
||||
)
|
||||
} else {
|
||||
if ($DefaultValue) {
|
||||
$value = Read-Host "$Prompt [$DefaultValue]"
|
||||
if ([string]::IsNullOrWhiteSpace($value)) {
|
||||
$plainValue = $DefaultValue
|
||||
} else {
|
||||
$plainValue = $value
|
||||
}
|
||||
} else {
|
||||
$value = Read-Host $Prompt
|
||||
$plainValue = $value
|
||||
}
|
||||
}
|
||||
|
||||
if (-not [string]::IsNullOrWhiteSpace($plainValue)) {
|
||||
return $plainValue
|
||||
}
|
||||
|
||||
Write-ErrorMsg "Eingabe darf nicht leer sein"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Funktion zum Suchen des Hosts in CheckMK via API (fest ueber monitoring.gc-gruppe.net)
|
||||
function Get-CheckMKHostname {
|
||||
param(
|
||||
[string]$Site,
|
||||
[string]$Username,
|
||||
[string]$Password,
|
||||
[string]$SearchHostname
|
||||
)
|
||||
|
||||
try {
|
||||
Write-Info "Suche Host in CheckMK (via $API_SERVER)..."
|
||||
|
||||
# TLS 1.2 erzwingen
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
|
||||
# Automation User Format: "username password" als Bearer Token
|
||||
$authString = "$Username $Password"
|
||||
|
||||
$headers = @{
|
||||
"Authorization" = "Bearer $authString"
|
||||
"Accept" = "application/json"
|
||||
}
|
||||
|
||||
$url = "https://$API_SERVER/$Site/check_mk/api/1.0/domain-types/host_config/collections/all"
|
||||
|
||||
$response = Invoke-RestMethod -Uri $url -Headers $headers -Method Get -ErrorAction Stop
|
||||
|
||||
# Suche nach dem Host (case-insensitive)
|
||||
$searchLower = $SearchHostname.ToLower()
|
||||
|
||||
if ($response.value) {
|
||||
foreach ($hostItem in $response.value) {
|
||||
if ($hostItem.id.ToLower() -eq $searchLower) {
|
||||
Write-Success "Host gefunden in CheckMK: $($hostItem.id)"
|
||||
return $hostItem.id
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Write-Warning "Host '$SearchHostname' nicht in CheckMK gefunden"
|
||||
return $null
|
||||
|
||||
} catch {
|
||||
Write-Warning "Konnte nicht auf CheckMK API zugreifen ($API_SERVER)"
|
||||
Write-Info "Fehler: $($_.Exception.Message)"
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Header anzeigen
|
||||
Clear-Host
|
||||
Write-Header
|
||||
|
||||
|
||||
# Abhaengigkeiten pruefen
|
||||
Write-Info "Pruefe Systemvoraussetzungen..."
|
||||
Test-Dependencies | Out-Null
|
||||
Write-Success "Alle benoetigten Dateien gefunden"
|
||||
|
||||
|
||||
# Benutzereingaben sammeln
|
||||
Write-SectionHeader "Schritt 1: Server-Informationen"
|
||||
|
||||
|
||||
$server = Get-ValidatedInput -Prompt "Server"
|
||||
$site = Get-ValidatedInput -Prompt "Site"
|
||||
|
||||
|
||||
Write-SectionHeader "Schritt 2: Anmeldedaten"
|
||||
|
||||
|
||||
$username = Get-ValidatedInput -Prompt "Benutzername"
|
||||
$passwordPlain = Get-ValidatedInput -Prompt "Passwort" -IsSecure
|
||||
|
||||
|
||||
Write-SectionHeader "Schritt 3: Hostname"
|
||||
|
||||
|
||||
$defaultHostname = "$env:COMPUTERNAME.ad.ghnit.net".ToLower()
|
||||
$hostname = Get-ValidatedInput -Prompt "Hostname" -DefaultValue $defaultHostname
|
||||
|
||||
|
||||
# Versuche den Host in CheckMK zu finden (API-Call ueber monitoring.gc-gruppe.net)
|
||||
Write-Host ""
|
||||
$checkmkHostname = Get-CheckMKHostname -Site $site -Username $username -Password $passwordPlain -SearchHostname $hostname
|
||||
|
||||
|
||||
if ($checkmkHostname) {
|
||||
# Host in CheckMK gefunden - verwende exakte Schreibweise
|
||||
$hostname = $checkmkHostname
|
||||
} else {
|
||||
# Host nicht gefunden - verwende Kleinschreibung als Fallback
|
||||
$hostname = $hostname.ToLower()
|
||||
Write-Warning "Verwende Fallback-Hostname: $hostname"
|
||||
Write-Host ""
|
||||
$continue = Read-Host "Trotzdem fortfahren? (j/n)"
|
||||
if ($continue -notmatch "^[jJ]$") {
|
||||
Write-Warning "Abbruch durch Benutzer"
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Zusammenfassung anzeigen
|
||||
Write-SectionHeader "Zusammenfassung"
|
||||
|
||||
|
||||
Write-Host "Server: " -NoNewline
|
||||
Write-Host "$server" -ForegroundColor Green
|
||||
Write-Host "Site: " -NoNewline
|
||||
Write-Host "$site" -ForegroundColor Green
|
||||
Write-Host "Username: " -NoNewline
|
||||
Write-Host "$username" -ForegroundColor Green
|
||||
Write-Host "Hostname: " -NoNewline
|
||||
Write-Host "$hostname" -ForegroundColor Green
|
||||
Write-Host "API-Server:" -NoNewline
|
||||
Write-Host " $API_SERVER" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
|
||||
$confirm = Read-Host "Fortfahren? (j/n)"
|
||||
if ($confirm -notmatch "^[jJ]$") {
|
||||
Write-Warning "Abbruch durch Benutzer"
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# TLS-Registrierung durchfuehren
|
||||
Write-SectionHeader "Schritt 4: TLS-Registrierung"
|
||||
Write-Info "Registriere Agent mit TLS..."
|
||||
|
||||
|
||||
$cmdPathAgentCtl = "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe"
|
||||
$cmdArgsAgentCtl = @(
|
||||
"register",
|
||||
"--trust-cert",
|
||||
"--hostname", $hostname,
|
||||
"--server", $server,
|
||||
"--site", $site,
|
||||
"--user", $username,
|
||||
"--password", $passwordPlain
|
||||
)
|
||||
|
||||
|
||||
try {
|
||||
$output = & $cmdPathAgentCtl @cmdArgsAgentCtl 2>&1
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Success "TLS-Registrierung erfolgreich abgeschlossen"
|
||||
} else {
|
||||
Write-ErrorMsg "TLS-Registrierung fehlgeschlagen (Exit-Code: $LASTEXITCODE)"
|
||||
Write-Host ""
|
||||
Write-Host "Fehlermeldung:" -ForegroundColor Yellow
|
||||
Write-Host $output -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
exit 1
|
||||
}
|
||||
} catch {
|
||||
Write-ErrorMsg "Fehler bei der TLS-Registrierung: $_"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
# Updater registrieren
|
||||
Write-SectionHeader "Schritt 5: Updater-Registrierung"
|
||||
Write-Info "Registriere Agent-Updater..."
|
||||
|
||||
|
||||
$cmdPathUpdater = "C:\Program Files (x86)\checkmk\service\check_mk_agent.exe"
|
||||
$cmdArgsUpdater = @(
|
||||
"updater",
|
||||
"register",
|
||||
"--hostname", $hostname,
|
||||
"--server", $server,
|
||||
"--site", $site,
|
||||
"--user", $username,
|
||||
"--password", $passwordPlain
|
||||
)
|
||||
|
||||
|
||||
try {
|
||||
$output = & $cmdPathUpdater @cmdArgsUpdater 2>&1
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Success "Updater-Registrierung erfolgreich abgeschlossen"
|
||||
} else {
|
||||
Write-ErrorMsg "Updater-Registrierung fehlgeschlagen (Exit-Code: $LASTEXITCODE)"
|
||||
Write-Host ""
|
||||
Write-Host "Fehlermeldung:" -ForegroundColor Yellow
|
||||
Write-Host $output -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
exit 1
|
||||
}
|
||||
} catch {
|
||||
Write-ErrorMsg "Fehler bei der Updater-Registrierung: $_"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
# Erfolgsmeldung
|
||||
Write-Host ""
|
||||
Write-Host "============================================================" -ForegroundColor Green
|
||||
Write-Host " Registrierung erfolgreich abgeschlossen! " -ForegroundColor Green
|
||||
Write-Host "============================================================" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Info "Der CheckMK Agent ist nun registriert und einsatzbereit"
|
||||
Write-Host ""
|
||||
|
||||
|
||||
# Warten auf Benutzereingabe vor dem Schliessen
|
||||
Read-Host "Druecken Sie Enter zum Beenden"
|
||||
exit 0
|
||||
Loading…
Reference in a new issue