Benutzer-Werkzeuge

Webseiten-Werkzeuge


winlogbeat

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
winlogbeat [2025/04/06 10:41]
jango
winlogbeat [2025/04/16 11:34] (aktuell)
jango
Zeile 109: Zeile 109:
 =====Windows Deployment===== =====Windows Deployment=====
  
 +Not good
 <code powershell> <code powershell>
 #$servers = Get-ADComputer -Filter * | Where-Object { $_.Name -like "*-SRV-AUDIT*" } | Select-Object -ExpandProperty Name #$servers = Get-ADComputer -Filter * | Where-Object { $_.Name -like "*-SRV-AUDIT*" } | Select-Object -ExpandProperty Name
Zeile 161: Zeile 162:
     }     }
  
 +}
 +</code>
 +
 +Good
 +<code powershell>
 +#
 +# Last run stopped at vie-srv-admin01 (not finished)
 +#
 +
 +<#
 +$servers = Get-ADComputer -Filter * -Properties * | Where-Object { 
 +    $_.Name -like "*-SRV-*" 
 +    -and $_.OperatingSystem -like "Windows*" 
 +    -and $_.DistinguishedName -notlike "*Löschen*" 
 +} | Select-Object -ExpandProperty Name
 +#>
 +
 +$servers = @(
 +    "vie-srv-sign01"
 +)
 +
 +$logfile = "c:\users\manuel.zarat\desktop\winlogbeat_deployment_log.txt"
 +$online = "c:\users\manuel.zarat\desktop\winlogbeat_deployment_servers_online.txt"
 +$offline = "c:\users\manuel.zarat\desktop\winlogbeat_deployment_servers_offline.txt"
 +
 +#$servers = @("vie-t-srv-audit")
 +
 +foreach ($server in $servers) {
 +
 +    # If the service is running, stop it so we can overwrite files
 +    
 +    $status = (Get-Service -Name Winlogbeat -ComputerName $server).Status
 +    if($status -like "running") {
 +        Write-Output "[info] Winlogbeat is running on $server" 
 +        $r = (Get-Service Winlogbeat -ComputerName $server).Stop()   
 +        Write-Output "[info] Winlogbeat service stopped successfully"  
 +    } else {
 +        Write-Output "[info] Winlogbeat is NOT running on $server" 
 +    }
 +    
 +
 +    $session = New-PSSession -ComputerName $server
 +    Copy-Item -Path "\\fileserver\public\gbi\infrastruktur\software\winlogbeat\*" -Destination "C:\Program files\Winlogbeat" -ToSession $session -Recurse -Force
 + 
 +    try {
 +
 +        Invoke-Command -ComputerName $server -ErrorAction Stop -ScriptBlock {
 +        
 +            Param($srv)
 +
 +            #whoami
 +
 +            # Copy new files
 +            <#
 +            Write-Output "[info] Copying new files.."
 +            $source = "\\fileserver\public\gbi\infrastruktur\software\winlogbeat\*"
 +            $destination = "C:\Program Files\Winlogbeat\"
 +            $xcopyArgs = "`"$source`" `"$destination`" /y /s /e"
 +            
 +            $output = cmd /c "xcopy `"$source`" `"$destination`" /y /s /e"
 +            #Start-Process -FilePath "xcopy.exe" -ArgumentList $xcopyArgs -NoNewWindow -Wait
 +            
 +            Write-Output "[info] Files successfully copied" 
 +            #>
 +
 +            $scriptPath = "C:\Program Files\Winlogbeat\install-service-winlogbeat.ps1"
 + 
 +            if (Test-Path $scriptPath) {
 + 
 +                # Execute install script
 +                powershell.exe -ExecutionPolicy Bypass -File $scriptPath
 +                # Start service
 +                Start-Service winlogbeat
 +                # Set startup type to automatic
 +                Set-Service winlogbeat -StartUpType Auto
 +                # Check status
 +                Write-Output "[info] Install script executed" 
 + 
 +            } else {
 + 
 +                Write-Output "[error] Install script not found: $scriptPath" 
 + 
 +            }
 +        
 + 
 +            $status = (Get-Service winlogbeat).Status
 +            Write-Output "[info] Status after install: $status" 
 +
 +            #Write-Output "[info] Remotely connected to $srv "
 +
 +        } -ArgumentList $server
 +
 +        #$stat >> $online
 +
 +    
 +    } catch {
 +        
 +        $connection = Test-Connection -ComputerName $server -Count 1 -Quiet
 +
 +        # Wenn der Server nicht erreichbar ist, schreibe es ins Log
 +        if (-not $connection) {
 +            Write-Output "[info] Could NOT connect remotely to $server" >> $offline
 +        } else {
 +            Write-Output "[info] Could NOT connect remotely to $server but its reachable by ping" >> $offline
 +        }
 +
 +    }
 +    
 } }
 </code> </code>
winlogbeat.1743928867.txt.gz · Zuletzt geändert: 2025/04/06 10:41 von jango