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).
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.
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.
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:
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.
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:
[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?
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.