itnirvana
Goto Top

Software Paket erstellen mit was und wie

Mit was erstelle ich ein Paket

msiexec /i NessusAgent-10.4.2-x64.msi NESSUS_GROUPS="WINC_AGT_SRV_£Nessu" NESSUS_SERVER="sensor.cloud.tenable.com:443" NESSUS_KEY=023523520 /qn  

https://www.tenable.com/downloads/nessus-agents?loginAttempted=true

Gut wäre am Ende eine Exe oder so als Paket zu erhalten

Gruss
Paul

Content-ID: 23576083190

Url: https://administrator.de/contentid/23576083190

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

8585324113
8585324113 16.10.2023 um 14:56:19 Uhr
Goto Top
Ein Packprogramm wenn es einfach sein soll?
emeriks
emeriks 16.10.2023 um 15:05:51 Uhr
Goto Top
Hi,
wenn das MSI es erlaubt, die in der Kommandozeile angegeben Werte auch in der GUI anzugeben, dann einfach über "msiexec /a ..." ein neues MSI bauen.
Beachte, dass
  • der Zielpfad ein UNC-Pfad sein muss
  • es "kein vollständiges" MSI wird, sondern dass die Dateien einzeln "daneben" in Ordnern landen. Wenn Du das verteilen willst, dann im betreffenden Installations-Quellordner neben dem MSI auch diese Ordner mit ablegen

E.
itnirvana
itnirvana 16.10.2023 um 16:20:19 Uhr
Goto Top
ich habe nun Datei auf einem Share. Per Powershell wäre es

$msiPath = "\\file01\User_All\9950 Temp7Days\RRT\NessusAgent-10.4.2-x64.msi"  
$installArgs = "/i $msiPath NESSUS_GROUPS=`"WINC_AGT_SRV`" NESSUS_SERVER=`"sensor.cloud.tenable.com:443`" NESSUS_KEY=`"00abcd00000efgh11111i0k222lmopq3333st4455u66v777777w88xy9999zabc00`" /qn"  

# Prüfen, ob die MSI-Datei vorhanden ist
if (Test-Path $msiPath -PathType Leaf) {
    # MSI-Datei ausführen
    Start-Process "msiexec.exe" -ArgumentList $installArgs -Wait  
    Write-Host "Installation abgeschlossen."  
} else {
    Write-Host "Die MSI-Datei wurde nicht gefunden: $msiPath"  
}
itnirvana
itnirvana 16.10.2023 um 16:59:17 Uhr
Goto Top
Mit Chat GPT

# Pfad zur CSV-Datei mit den Servernamen
$csvFilePath = "c:\Serverliste.csv"  

# Pfad zur MSI-Datei des Nessus-Agents
$msiPath = "\\file01\User_All\9950 Temp7Days\RRT\NessusAgent-10.4.2-x64.msi"  

# Installationsargumente für den Nessus-Agent
$installArgs = "/i $msiPath NESSUS_GROUPS=`"WINC_AGT_SRV`" NESSUS_SERVER=`"sensor.cloud.tenable.com:443`" NESSUS_KEY=`"00abcd00000efgh11111i0k222lmopq3333st4455u66v777777w88xy9999zabc00`" /qn"  

# Logdateiverzeichnis
$logDirectory = "C:\temp\LOGS"  

# Pfad zur WinRM-Installationsdatei
$winrmInstallerPath = "\\file01\User_All\9950 Temp7Days\RRT\winrm.msi"  

# Installationsargumente für WinRM
$winrmInstallArgs = "/quiet"  

# Erstelle das Logverzeichnis, wenn es nicht existiert
if (-not (Test-Path $logDirectory -PathType Container)) {
    New-Item -Path $logDirectory -ItemType Directory
}

# Lese die CSV-Datei mit den Servernamen
$serverList = Import-Csv $csvFilePath

foreach ($server in $serverList) {
    $serverName = $server.Server
    $logFilePath = Join-Path -Path $logDirectory -ChildPath "${serverName}_InstallLog.txt"  

    try {
        # Überprüfen, ob WinRM auf dem Server vorhanden ist, und bei Bedarf installieren
        Invoke-Command -ComputerName $serverName -ScriptBlock {
            $winrmPath = Get-Command winrm.exe -ErrorAction SilentlyContinue
            if ($null -eq $winrmPath) {
                # WinRM ist nicht vorhanden, daher installieren
                Start-Process "msiexec.exe" -ArgumentList "/i $using:winrmInstallerPath $using:winrmInstallArgs" -Wait -ErrorAction Stop  
            }
        }

        # Wenn die WinRM-Installation erfolgreich war oder bereits vorhanden ist, installieren Sie Nessus-Agent
        if (Test-Path $msiPath -PathType Leaf) {
            try {
                # MSI-Datei auf dem aktuellen Server ausführen und die Ausgabe in das Logfile schreiben
                Invoke-Command -ComputerName $serverName -ScriptBlock {
                    Start-Process "msiexec.exe" -ArgumentList $using:installArgs -Wait -ErrorAction Stop | Out-File -FilePath $using:logFilePath -Append  
                }
                Write-Host "Installation auf Server $serverName erfolgreich abgeschlossen."  
            } catch {
                # Fehlermeldung in das Logfile schreiben
                $errorMessage = "Fehler bei der Installation auf Server $serverName: $_"  
                $errorMessage | Out-File -FilePath $logFilePath -Append
                Write-Host $errorMessage
            }
        } else {
            Write-Host "Die MSI-Datei wurde nicht gefunden: $msiPath auf Server $serverName"  
            "Die MSI-Datei wurde nicht gefunden: $msiPath auf Server $serverName" | Out-File -FilePath $logFilePath -Append  
        }
    } catch {
        # Fehlermeldung in das Logfile schreiben
        $errorMessage = "Fehler bei der Überprüfung von WinRM auf Server $serverName: $_"  
        $errorMessage | Out-File -FilePath $logFilePath -Append
        Write-Host $errorMessage
    }
}
itnirvana
itnirvana 16.10.2023 um 16:59:44 Uhr
Goto Top
Dieses Skript führt die Installation des Nessus-Agents auf den Servern durch, überprüft und installiert WinRM, wenn es nicht vorhanden ist, und protokolliert die Ergebnisse in den entsprechenden Logdateien. Bitte stellen Sie sicher, dass Sie die Pfade zu den MSI-Dateien und Installationsargumenten an Ihre Umgebung anpassen.
maretz
maretz 16.10.2023 um 17:13:43 Uhr
Goto Top
Ok - ehrlich gesagt ka. was du jetzt genau möchtest. Irgendwas hast du dir aus ChatGPT zusammennagel lassen - dann probiere es aus... Ansonsten ein Paket erstellt man relativ einfach: Einen flachen Karton zB. passend falten...

Denn du fragst einerseits nach wie man nen paket erstellt, dein erstes Script soll aber schon was installieren?!? Dazu kommt: WAS für ein Paket, es gibt ja verschiedene Manager (OPSI, WinGet, Gruppenrichtlinie,...), die möchten aber alle verschiedene Formate...
DarkZoneSD
DarkZoneSD 16.10.2023 um 19:39:10 Uhr
Goto Top
Ich bin auch ein wenig verwirrt, wenn ich das richtig verstehe möchtest Du ein vorhandenes MSI Paket mit ein paar Argumenten starten und daraus ein neues Msi paket erstellen?

Wenn ja, würde ich mir sfx bei winrar anschauen, kleine Batch Datei schreiben die das Programm startet mit args und die erstellte exe dann zu msi konvertieren.

Grüße
Crusher79
Crusher79 16.10.2023 um 23:11:43 Uhr
Goto Top
Hallo,

ja sowas geht. Aber man kann auch bestehende Systeme für alles nehmen. Chocolatey z.B. Dort ist Nessus sogar mit dabei.

https://community.chocolatey.org/packages/nessus-agent

Ist eine Frage wie du in Zukunft arbeiten willst. Mit Chocolatey hat die Community ggf. Anpassungen schon vorgenommen. Du kannst ein bestehendes Paket aber auch lokal deployen - Nexus.

Damit kannst du es selber so manipulieren, wie du es brauchst. Die Installation erfolgt aber auf normalen Weg mit choco install.

ChatGPT ist nett. Ein Gesamtkonzept für alles gg. schöner?

mfg Crusher