1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. DigitalKarl

Beiträge von DigitalKarl

  • Softwareinventarisierung

    • DigitalKarl
    • 27. Juli 2018 um 13:58

    Hallo Lashandan,

    das Performance Problem liegt an der Abfrage der Installierten Software via wmi query der Win32_product Klasse. Diese dauert immer sehr lange! Aufgepasst es kann unter umständer auch passieren, dass die Software sich repariert, da mit einer query auf Win32_product auch ein consistency check gemacht wird.

    Hier ein auszug von Microsoft:

    Warning  Win32_Product is not query optimized. Queries such as "select * from Win32_Product where (name like 'Sniffer%')" require WMI to use the MSI provider to enumerate all of the installed products and then parse the full list sequentially to handle the “where” clause. This process also initiates a consistency check of packages installed, verifying and repairing the install. With an account with only user privileges, as the user account may not have access to quite a few locations, may cause delay in application launch and an event 11708 stating an installation failure. For more information, see KB Article 794524.

    Eine andere Methode, die ich bei der Software Paketierung verwende ist, die uninstall registry keys der installierten Software abzufragen:

    (x86)

    HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\

    (x64)

    HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\


    Hier einmal ein Auszug aus einem Powershell-Script, vielleicht kannst du ja etwas von gebrauchen:

    Code
    # Version of the application to detect
    [version]$InstallerVersion = ''
    # Name of the application to detect
    [string]$AppName = ''
    
    # 32-Bit Detection
    $32BitApp = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { 
        ($_.DisplayName -notlike "Windows *") `
        -and ($_.DisplayName -notlike "") `
        -and ($_.DisplayName -notlike "Security*") `
        -and ($_.DisplayName -notlike "Update*") `
        -and ($_.DisplayName -notlike "Service Pack*") `
        -and ($_.DisplayName -notlike "Definition*") `
        -and ($_.displayname -like $AppName) 
    } 
    
    foreach ($item in $32BitApp) {
        [version]$InstalledVersion = $item.DisplayVersion
        if ($InstalledVersion -ge $InstallerVersion) {
            Write-Output "Installed"
        }
        else {
        }
    }
    
    # 64-Bit Detection
    $64BitApp = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { 
        ($_.DisplayName -notlike "Windows *") `
        -and ($_.DisplayName -notlike "") `
        -and ($_.DisplayName -notlike "Security*") `
        -and ($_.DisplayName -notlike "Update*") `
        -and ($_.DisplayName -notlike "Service Pack*") `
        -and ($_.DisplayName -notlike "Definition*") `
        -and ($_.displayname -like $AppName) } 
    
    foreach ($item in $64BitApp) {
        [version]$InstalledVersion = $item.DisplayVersion
        if ($InstalledVersion -ge $InstallerVersion) {
            Write-Output "Installed"
        }
        else {
        }
    }
    Alles anzeigen

    Viele Grüße,

    Digitalkarl

  • CheckProcess (Softwareinstallation)

    • DigitalKarl
    • 1. August 2017 um 18:11

    Hi olfibits,

    den Sinn ergibt es tatsächlich wohl eher nur für den Bereich für den ich es im Einsatz habe. Über die automatische Softwareverteilung wird ein Batchskript gestartet, welches die Software installiert, damit bei Programmen die für die Installation geschlossen werden müssen das Script nicht abbricht, wird dieses CheckProcess gestartet.

    Zu 1.) Falls noch ein vierter Prozess überprüft werden soll, ist quasi schon eine Template angelegt.

    Zu 2.) Aa schön jede Vereinfachung macht den Code schlanker. Gleich umgesetzt.

    Ich werde die GUI noch ein wenig grafisch überarbeiten. Das produktive Script sieht mit Firmenlogo aber nicht ganz so leer aus wie diese Version.

    VG,
    DigitalKarl

  • CheckProcess (Softwareinstallation)

    • DigitalKarl
    • 1. August 2017 um 12:14

    Moin zusammen,

    ich möchte euch hier kurz mein erstes Scipt vorstellen. Vorab: Ich bin kein Programmierer und bin mir sicher ich schreibe keinen "sauberen" Code, aber genau deswegen möchte ich mir auch gerne euer Feedback einholen :) . (Nicht zuletzt auch weil ch mir vieles hier aus dem Forum schon weiterverwenden konnte).

    Zum Script:
    CheckProcess prüft ob die im Script hinterlegten Programme laufen. Ist nur eines der Programme geöffnet, baut sich die GUI auf, legt sich über alle anderen Programme und fordert den User auf die Entsprechenden Programme zu beenden. Zusätzlich hat der User die Möglichkeit dies zu verschieben. (maximum ist 2x 90min)

    Default-Werte:
    Prüft im Auslieferungszustand auf geöffnete Microsoft Office Produkte (Outlook,Word,Excel). Falls ihr also überhaupt etwas sehen wollt, sollte natürlich eins der Programme geöffnet sein. Sinn dahinter ist natürlich dies entsprechend anzupassen, je nach Bedarf.

    Hintergrund:
    Das Script ist bei mir in ein Batch-Script eingebaut, welches die eigentliche Software-Installation steuert.

    Zu verbessern:
    Leider flackern bei mir die Programmnamen noch und weiß nicht wie ich das besser lösen kann. Das Flackern des "OK-Buttons" konnte ich beseitigen, indem ich die Funktion mit BitAND umgesetzt habe (BitAND BitOR etc. habe ich noch nicht wirklich durchschaut. Habe es nur aus einem anderen Beitrag übernommen).

    Für Feedback währe ich sehr dankbar! Eventuell kann es ja auch der ein oder andere gebrauchen :)

    Viele Grüße,
    DigitalKarl

    Dateien

    CheckProcess.zip 442,22 kB – 435 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™