none
Skript läuft ohne Fehler, bewirkt aber nichts RRS feed

  • Frage

  • Hallo zusammen,

    Zuerst, ich stehe noch so ziemlich am Anfang mit meiner Skript Karriere mit Powershell, deswegen verzeiht mir bitte den ein oder anderen groben Fehler. Ich möchte Config-Dateien für Firefox über unser Netzwerk mit einem Powershell-Skript verteilen. Dazu habe ich das folgende Skript verfasst:

    $Appdata = $env:APPDATA
    $Default = "$Appdata\Mozilla\Firefox\Profiles\*wws"
    $Firefox = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -CreateProfile wws.default"
    $Laufwerk = “\\FREIGABE\abteilung”
    
    ##check/generate profil##
    if (Test-Path $Default)
    {
        "$Default ist bereits vorhanden."
    }
    else
    {
        $Firefox
        Write-Host "Profil wurde angelegt"
    }
    
    ##check/generate network drive##
    if (Test-Path T: -IsValid)
    {
        "Netzverbindung zu $Laufwerk ist bereits vorhanden." 
    } 
    else
    {
        New-PSDrive –Name "T" –PSProvider FileSystem –Root $Laufwerk -Persist
        Write-Host "Erstellt"
    } 
    
    ##copy files##
    Copy-Item "T:\FREIGABE\Datei1" "$Default"
    Copy-Item "T:\FREIGABE\Datei2" "$Default"
    Copy-Item "T:\FREIGABE\Datei3" "$Default\chrome"

    Leider funktioniert das ganze nicht wie gewünscht. Das Skript wirft keinen Fehler tut aber auch nichts. Das Heißt es wird mir Zwar angezeigt, dass z.B. das Profil für Firefox erstellt wurde aber ich finde es unter dem Entsprechneden Pfand nicht. Gleiches gilt für das Netzlaufwerk. Wenn ich das Skript laufen lasse, bekomme ich folgenden Output:

    PS C:\Users\peters.kai\Desktop\GPO> .\Firefox_MHSC.ps1
    C:\Program Files (x86)\Mozilla Firefox\firefox.exe -CreateProfile wws.default
    Profil wurde angelegt
    
    Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
    ----           ---------     --------- --------      ----                                               ---------------
    T                  13,37         26,29 FileSystem    \\FREIGABE\abteilung
    Erstellt

    Ebenso bin ich mir unsicher ob nicht vielleicht die Wildcard das Problem sein kann.

    $Default = "$Appdata\Mozilla\Firefox\Profiles\*.wws"

    Da Firefox seinen Profile mit einem Beliebigen String anlegt (z.B. g1doct5o.default) muss ich dort mit einer arbeiten.
    Das würde aber das Fehlende Netzlaufwerk nicht erklären.

    Leider komme ich in diesen Punkten nicht weiter und ich hoffe, dass jemand von euch mir vielleicht helfen kann.

    Mit freundlichen Grüßen
    Kai Peters




    Dienstag, 29. November 2016 16:21

Antworten

  • $Firefox = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -CreateProfile wws.default"
    else
    {
        $Firefox
        Write-Host "Profil wurde angelegt"
    }

    Dieser Code führt leider garnichts aus, außer Text darzustellen. Um wirdlich Firefox mit entsprechendem Parameter auszuführen, sollte das so aussehen:

    else
    {
        Start-Process 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe' -ArgumentList '-CreateProfile wws.default'
        Write-Host "Profil wurde angelegt"
    }

    Und ob das default profil schon vorhanden ist, lässt sich gut mit Get-ChildItem lösen:

    if (Get-ChildItem -Path $env:APPDATA\Mozilla\Firefox\Profiles\ -Filter '*.default'){
        Write-Host 'default Profil vorhanden'
    }
    else{
        Write-Host 'default Profil nicht vorhanden'
        Start-Process 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe' -ArgumentList '-CreateProfile wws.default'
        Start-Sleep -Seconds 5 # warten bis firefox fertig ist
        Write-Host 'Profil wurde angelegt'
    }
    
    $default = Get-ChildItem -Path $env:APPDATA\Mozilla\Firefox\Profiles\ -Filter '*.default' | Select-Object -ExpandProperty FullName
    
    Copy-Item -Path "T:\FREIGABE\Datei1" -Destination $default
    # etc

    • Als Antwort vorgeschlagen Evgenij Smirnov Mittwoch, 30. November 2016 05:52
    • Als Antwort markiert kai._peters Mittwoch, 30. November 2016 08:26
    Dienstag, 29. November 2016 16:59

Alle Antworten

  • $Firefox = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -CreateProfile wws.default"
    else
    {
        $Firefox
        Write-Host "Profil wurde angelegt"
    }

    Dieser Code führt leider garnichts aus, außer Text darzustellen. Um wirdlich Firefox mit entsprechendem Parameter auszuführen, sollte das so aussehen:

    else
    {
        Start-Process 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe' -ArgumentList '-CreateProfile wws.default'
        Write-Host "Profil wurde angelegt"
    }

    Und ob das default profil schon vorhanden ist, lässt sich gut mit Get-ChildItem lösen:

    if (Get-ChildItem -Path $env:APPDATA\Mozilla\Firefox\Profiles\ -Filter '*.default'){
        Write-Host 'default Profil vorhanden'
    }
    else{
        Write-Host 'default Profil nicht vorhanden'
        Start-Process 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe' -ArgumentList '-CreateProfile wws.default'
        Start-Sleep -Seconds 5 # warten bis firefox fertig ist
        Write-Host 'Profil wurde angelegt'
    }
    
    $default = Get-ChildItem -Path $env:APPDATA\Mozilla\Firefox\Profiles\ -Filter '*.default' | Select-Object -ExpandProperty FullName
    
    Copy-Item -Path "T:\FREIGABE\Datei1" -Destination $default
    # etc

    • Als Antwort vorgeschlagen Evgenij Smirnov Mittwoch, 30. November 2016 05:52
    • Als Antwort markiert kai._peters Mittwoch, 30. November 2016 08:26
    Dienstag, 29. November 2016 16:59
  • Hallo,

    Danke, so hat das Ganze super funktioniert.

    Mit freundlichen Grüßen
    Kai Peters

    Mittwoch, 30. November 2016 08:27