Use toast messages to show status while deploying
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
a77e189730
commit
e89b41ab58
@ -77,6 +77,12 @@ If ($MissingProperties.Length -gt 0) {
|
||||
|
||||
# Set hostname and description
|
||||
If ($Env:ComputerName -ne $ovfPropertyValues['guestinfo.hostname']) {
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = 'Configuring hostname and description...'
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
$RenameComputerSplat = @{
|
||||
NewName = $ovfPropertyValues['guestinfo.hostname']
|
||||
Force = $True
|
||||
@ -98,6 +104,12 @@ If ($Env:ComputerName -ne $ovfPropertyValues['guestinfo.hostname']) {
|
||||
|
||||
# Configure network interface
|
||||
If ((Get-WmiObject -Class 'Win32_NetworkAdapterConfiguration').IPAddress -NotContains $ovfPropertyValues['guestinfo.ipaddress']) {
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = 'Configuring network...'
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
$NewNetIPAddressSplat = @{
|
||||
InterfaceAlias = (Get-NetAdapter).Name
|
||||
AddressFamily = 'IPv4'
|
||||
@ -152,6 +164,12 @@ If ((Get-WmiObject -Class 'Win32_NetworkAdapterConfiguration').IPAddress -NotCon
|
||||
|
||||
# Promote to Domain Controller
|
||||
If ((4,5) -NotContains (Get-WmiObject -Class 'Win32_ComputerSystem').DomainRole) {
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = 'Configuring local administrator password...'
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
# Change password of built-in Administrator
|
||||
$BuiltinAdministrator = (Get-LocalUser | Where-Object {$_.SID -match '-500'})
|
||||
$ConvertToSecureStringSplat = @{
|
||||
@ -170,6 +188,12 @@ If ((4,5) -NotContains (Get-WmiObject -Class 'Win32_ComputerSystem').DomainRole)
|
||||
}
|
||||
Set-LocalUser @SetLocalUserSplat
|
||||
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = 'Promoting to Domain Controller...'
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
$ResolveDNSNameSplat = @{
|
||||
Name = "_ldap._tcp.dc._msdcs.$($ovfPropertyValues['addsconfig.domainname'])"
|
||||
ErrorAction = 'SilentlyContinue'
|
||||
@ -228,6 +252,12 @@ If ((4,5) -NotContains (Get-WmiObject -Class 'Win32_ComputerSystem').DomainRole)
|
||||
}
|
||||
|
||||
# Wait for Active Directory to become available
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = 'Waiting for Active Directory services...'
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
$Timestamp, $TimeoutMinutes = (Get-Date), 15
|
||||
Do {
|
||||
If ($Timestamp.AddMinutes($TimeoutMinutes) -lt (Get-Date)) {
|
||||
@ -258,6 +288,12 @@ $GetItemSplat = @{
|
||||
}
|
||||
Get-Item @GetItemSplat | ForEach-Object {
|
||||
Try {
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = "Running script: '$($_.FullName)'"
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
$WriteEventLogSplat = @{
|
||||
LogName = 'Application'
|
||||
Source = 'OVF-Properties'
|
||||
@ -280,6 +316,12 @@ Get-Item @GetItemSplat | ForEach-Object {
|
||||
}
|
||||
}
|
||||
|
||||
$NewToastSplat = @{
|
||||
Title = 'OVF Properties'
|
||||
Text = "Sequence finished; ready for use!"
|
||||
}
|
||||
New-ToastNotification @NewToastSplat
|
||||
|
||||
$WriteEventLogSplat = @{
|
||||
LogName = 'Application'
|
||||
Source = 'OVF-Properties'
|
||||
@ -289,3 +331,26 @@ $WriteEventLogSplat = @{
|
||||
}
|
||||
Write-EventLog @WriteEventLogSplat
|
||||
& schtasks.exe /Change /TN 'OVF-Properties' /DISABLE
|
||||
|
||||
Function New-ToastNotification () {
|
||||
Param(
|
||||
[Parameter]
|
||||
[string]$Stream = 'OVF Properties',
|
||||
[Parameter(Mandatory)]
|
||||
[string]$Title,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$Text
|
||||
)
|
||||
|
||||
$Template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
|
||||
|
||||
$XML = [xml]$Template.GetXml()
|
||||
$XML.SelectSingleNode("toast/visual/binding/text[@id='1']").InnerText = $Title
|
||||
$XML.SelectSingleNode("toast/visual/binding/text[@id='2']").InnerText = $Text
|
||||
|
||||
$SerializedXml = New-Object Windows.Data.Xml.Dom.XmlDocument
|
||||
$SerializedXml.LoadXml($XML.OuterXml)
|
||||
|
||||
$Notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($Stream)
|
||||
$Notifier.Show([Windows.UI.Notifications.ToastNotification]::new($SerializedXml))
|
||||
}
|
Loading…
Reference in New Issue
Block a user