Neustartaufforderung am Ende der Installation

Hallo,
was ist der beste Weg um den Usern eine „Starte deinen Rechner neu“ Meldung mit Counddown zu präsentieren?

Ich habe mal im CustomEnd folgendes getestet:
Show-InstallationRestartPrompt -Countdownseconds 14400 -CountdownNoHideSeconds 900

Das wird dann aber nicht ausgeführt:
[CustomEnd] :: Skipping restart, because the deploy mode is set to [NonInteractive] and [NoSilentRestart] is enabled.

Wenn ich nun -NoSilentRestart $false verwende dann gehe ich mal davon aus, dass der User den Dialog dennoch nicht sehen wird solang das Script im NonInteractive Mode ausgeführt wird.

Was für Möglichkeiten habe ich sonst, am Ende einer Installation einen Neustart Countdown anzuzeigen?
(as Script mit Exitcode 3010 beenden hilft nicht, dann wird zwar eine „Start mal neu“ Aufforderung gebracht aber eben kein Counddown).

Danke.
Gruß Manuel

PS: Intune als Deployment System

Habs nochmal durchgespielt, mit -NoSilentRestart komme ich auch nicht weiter:

[CustomEnd] :: Triggering restart silently, because the deploy mode is set to [NonInteractive] and [NoSilentRestart] is disabled. Timeout is set to [900] seconds.

Das ganze ggf. im Userpart ausführen?

Hi @maku ,
wir setzen die Aufrufe bei der Deploy-Application.ps1 aktiv auf „noninteractive“, damit Befehle wie Read-Host keine Benutzereingaben erwarten. So verhindern wir, dass das Skript hängen bleibt, ohne abzustürzen oder ein Log zu schreiben. Details findest du hier: 857 add noninteractive flag to powershell calls to prevent stuck processes by neo42JBR · Pull Request #893 · neo42-GmbH/PSAppDeployToolKitExtensions · GitHub.

Die Dialoge der PSADT Basis Befehle (ohne -Nxt im Namen) können in der System Session 0 nicht ohne Weiteres Dialoge für den Benutzer anzeigen.
Das bedeutet, wie schon vermutet benötigst du einen Userpart um nachdem du dort Noninteractive auf Interactive zurück gestellt hast einen der PSADT integrierten UI Befehle so zu verwenden, dass er auch etwas anzeigt.

Ein schönes Wochenende schonmal,
Marius

Hallo alle,
die Lösung liegt tatsächlich im Userpart. Beim ConfigMgr konnte man das so umbiegen dass Elemente aus dem SYSTEM Kontext auch dem USER angezeigt wurden - das geht so bei Intune nicht mehr (aus gutem Grund).

Daher am Paket den User Part aktivieren:
image

Und im Script entsprechend den gewünschten Userpart befüllen:

function CustomInstallUserPartBegin {
  <#
    .SYNOPSIS
      Executes at the beginning of InstallUserPart if the script is started with the value 'InstallUserPart' for parameter 'DeploymentType'
      On error set $script:userPartSuccess = $false
  #>
  [string]$script:installPhase = 'CustomInstallUserPartBegin'

  #region CustomInstallUserPartBegin content

    ### CUSTOM CODE
        Write-Log -Message '>>> Show Restart Prompt' -Source $deployAppScriptFriendlyName
    Show-InstallationRestartPrompt -Countdownseconds 14400 -CountdownNoHideSeconds 900

  #endregion CustomInstallUserPartBegin content
}

Ich mach dann gern noch eine Write-Log ausgabe mit rein und so funktioniert das fein. :slight_smile:

Gruß Manuel

2 „Gefällt mir“

Hallo,
nun ist hier doch eine kleine Unschönheit aufgetaucht…

Das Install LOG landet im Ordner C:\ProgramData\neo42PkgsLogs\AppName\1.0
Außerdem wird dort ein Unterordner %username% des angemeldeten Users erzeugt, da liegt dann das LOG aus dem UserPart.

Soweit, so gut.

Aber er erstellt mir unter c:\ direkt noch ein Log:

C:%username%\AppName_1.0_PSAppDeployToolkit_InstallUserPart.log

Inhalt:

[Asynchronous] :: [App Deploy Toolkit Main] called with switch [-ShowInstallationRestartPrompt].
[Asynchronous] :: Displaying restart prompt with a [14400] second countdown.
[Asynchronous] :: Forcefully restarting the computer...

Warum liegt das dort? Warum nicht im C:\ProgramData\neo42PkgsLogs ?
Wie kann ich das verhindern?

Tipps? Ideen?

Danke.
Gruß Manuel

Hallo maku,

kannst du uns bitte einmal das Paket, wo dir dies aufgefallen ist an neosupport@neo42.de schicken?

Grüße,
Sven Steckel

1 „Gefällt mir“

Der Vollständigkeit halber falls es andere aus der Community auch betrifft:
Die Log Datei kommt dadruch, dass das „Show-InstallationRestartPrompt“ vom PSADT asyncron zum eigentlichen Script läuft - die AppdeployToolkitMain.ps1 wird extra aufgerufen und dann fehlen in dieser Inszanz die neo42 Variablen aus der xml.
Als Workaround könnte man die $Applogfolder Variable manuell setzen, allerdings unsupported (hic sunt dracones).

Für meinen Usecase habe ich das nun mit den Intune nativen Features (Restart Grace Period) gelöst. Funktioniert auch sehr schick.

Gruß Manuel