<# PSADT 4.1.8 Compatible Commands #> ## PRE-INSTALLATION ############################################################# ############################################################# #Close applications before proceeding Show-ADTInstallationWelcome -CloseProcesses 'mBlock','msedge' -BlockExecution -CloseProcessesCountdown 1800 -NotTopMost Show-ADTInstallationWelcome -CloseProcesses 'mBlock','msedge' -BlockExecution -AllowDeferCloseProcesses -DeferTimes 5 -DeferDays 2 -ForceCloseProcessesCountdown 1800 -PersistPrompt -NotTopMost ## INSTALLATION ############################################################# ############################################################# #Download content $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri "https://toronenintuneblob.blob.core.windows.net/intuneapp/file.zip" -OutFile "$($env:PUBLIC)\Desktop\file.zip" #Expand-Archive Expand-Archive -LiteralPath "$($env:PUBLIC)\Desktop\file.zip" -DestinationPath "$($env:PUBLIC)\Desktop\Expanded" Expand-Archive -Path "$($adtSession.DirFiles)\FyiFile.zip" -DestinationPath "C:\Path" #Unzip installation source files to a temp folder with 7-Zip standalone Start-ADTProcess -FilePath "$($adtSession.DirSupportFiles)\7za.exe" -ArgumentList "x `"$($adtSession.DirFiles)\source.zip`" -o`"$envProgramFiles\SWTEMP`" -y" #Install Microsoft 365 apps and Teams If (((Get-WmiObject Win32_ComputerSystem).Model -eq "VMware Virtual Platform") -or ((Get-WmiObject Win32_ComputerSystem).Model -eq "Virtual Machine") -or ((Get-WmiObject Win32_ComputerSystem).Model -eq "VirtualBox")){ #Optimize Teams for VDI Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Microsoft\Teams" -Name "IsWVDEnvironment" -Value "1" -Type "DWord" #Install Microsoft 365 desktop apps for multi-session host Start-ADTProcess -FilePath "$($adtSession.DirFiles)\setup.exe" -ArgumentList "/configure `"$($adtSession.DirFiles)\Install-multisession.xml`"" -WindowStyle Hidden -WaitForMsiExec #Install Visual C++ Redistributables Start-ADTProcess -FilePath 'vc_redist.x64.exe' -ArgumentList '/quiet /norestart' -WindowStyle Hidden -IgnoreExitCodes "1638" #Install WebRTC Service Start-ADTMsiProcess -Action 'Install' -FilePath 'MsRdcWebRTCSvc_HostSetup_1.45.2310.13001_x64.msi' -AdditionalArgumentList '/QN' #Install Microsoft Edge WebView2 Start-ADTProcess -FilePath 'MicrosoftEdgeWebview2Setup.exe' -ArgumentList '/silent /install' -WindowStyle Hidden } Else{ #Install Microsoft 365 desktop apps for single-session host Start-ADTProcess -FilePath "$($adtSession.DirFiles)\setup.exe" -ArgumentList "/configure `"$($adtSession.DirFiles)\Install-singlesession.xml`"" -WindowStyle Hidden -WaitForMsiExec } #Install Microsoft Teams Start-ADTProcess -FilePath "teamsbootstrapper.exe" -ArgumentList "-p" #Run MSI installer Start-ADTMsiProcess -Action "Install" -FilePath "setup.msi" Start-ADTMsiProcess -Action "Install" -FilePath "setup.msi" -AdditionalArgumentList "AUTO_UPDATE=2","NOTINSTALLUPDATE=0" Start-ADTMsiProcess -Action "Install" -FilePath "setup.msi" -AdditionalArgumentList "AUTO_UPDATE=2","NOTINSTALLUPDATE=0" -ArgumentList '/qn' Start-ADTMsiProcess -Action "Install" -FilePath "setup.msi" -Transforms "transforms.mst" -AdditionalArgumentList "AUTO_UPDATE=2","NOTINSTALLUPDATE=0" -ArgumentList '/qn' #Run MSP patch Start-ADTMspProcess -FilePath 'AcroRdr2017Upd1701130143_MUI.msp' -AdditionalArgumentList 'ALLUSERS=1' #Run EXE #Run InstallShield process and record .ISS answer file. The answer file will be created in C:\Windows folder Start-ADTProcess -FilePath "Setup.exe" -ArgumentList "/r" -IgnoreExitCodes '*' -WindowStyle Hidden Start-Process -FilePath "$($adtSession.DirFiles)\SETUP.EXE" -ArgumentList "/r" -Wait -WindowStyle Hidden -EA 0 #Run InstallShield process with .ISS answer file Start-ADTProcess -FilePath "Setup.exe" -ArgumentList "/s /f1`"$($adtSession.DirFiles)\setup.iss`" /f2`"C:\Windows\InstallSetup.log`"" -IgnoreExitCodes '1000,1001,*' -WindowStyle Hidden Start-Process -FilePath "C:\Program Files (x86)\InstallShield Installation Information\{EC0EFF2F-1EDE-407C-A025-C4474E42B067}\SETUP.EXE" -ArgumentList "/s /f1`"$($adtSession.DirFiles)\setup.iss`"" -Wait -WindowStyle Hidden -EA 0 Start-Process -FilePath "$($adtSession.DirFiles)\SETUP.EXE" -ArgumentList "/s /f1`"$($adtSession.DirFiles)\setup.iss`"" -Wait -WindowStyle Hidden -EA 0 #Run EXE installer Start-Process -FilePath "$($adtSession.DirFiles)\CADMATIC_Draw_2024T1R2_FIN.exe" -ArgumentList "/userdata `"$($adtSession.DirFiles)\UserData.dat`" /activationkey 10395-69014-52815-95927 /DEFAULT /SILENT" -Wait -WindowStyle Hidden -EA 0 Start-ADTProcess -FilePath "Setup.exe" -ArgumentList "/r" -IgnoreExitCodes '*' -WindowStyle Hidden #Run Appx installers #User account Add-AppxPackage -Path "$($adtSession.DirFiles)\MicrosoftCorporationII.Windows365_1.3.241.0_x64__8wekyb3d8bbwe.Msix" -DependencyPath "$($adtSession.DirFiles)\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bbwe.Appx","$($adtSession.DirFiles)\Microsoft.VCLibs.140.00.UWPDesktop_14.0.33519.0_x64__8wekyb3d8bbwe.Appx" #Device provisioning (install dependencies first) Add-AppxProvisionedPackage -Online -PackagePath "$($adtSession.DirFiles)\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bbwe.Appx" -SkipLicense Add-AppxProvisionedPackage -Online -PackagePath "$($adtSession.DirFiles)\Microsoft.VCLibs.140.00.UWPDesktop_14.0.33519.0_x64__8wekyb3d8bbwe.Appx" -SkipLicense Add-AppxProvisionedPackage -Online -PackagePath "$($adtSession.DirFiles)\MicrosoftCorporationII.Windows365_1.3.241.0_x64__8wekyb3d8bbwe.Msix" -SkipLicense #Device provisioning, check if package already exists (install dependencies first) $AppxName = "MicrosoftCorporationII.Windows365" $TestAppx = Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -eq $AppxName} if(!($TestAppx)){ Add-AppxProvisionedPackage -Online -PackagePath "$($adtSession.DirFiles)\MicrosoftCorporationII.Windows365_1.3.241.0_x64__8wekyb3d8bbwe.Msix" -SkipLicense } #Run PowerShell script Start-ADTProcess -FilePath "powershell.exe" -ArgumentList "-Command & { & `"$($adtSession.DirFiles)\ConfigureSEMM.ps1`"; Exit `$LastExitCode }" #Execute process as logged in user Start-ADTProcessAsUser -FilePath "$PSHOME\powershell.exe" -ArgumentList "-Command & { & `"C:\Test\Script.ps1`"; Exit `$LastExitCode }" Start-ADTProcessAsUser -FilePath "$envProgramFiles\Microsoft OneDrive\OneDrive.exe" -ArgumentList "/background" Start-ADTProcessAsUser -FilePath "$envProgramFiles\DesktopInfo\DesktopInfo64.exe" #Wait until process has closed #Process name in this example is "setup" do{ Start-Sleep -Seconds 3 } until (!(Get-Process setup -EA 0)) #Modify files and folders #Create folder New-ADTFolder -Path "C:\Windows\STWindowsRestart" #Create a folder if it does not exist if(!(Test-Path "C:\Windows\MasterCam2024Setup")){ New-ADTFolder -Path "C:\Windows\MasterCam2024Setup" } #Remove folder Remove-ADTFolder -Path 'C:\Windows\STWindowsRestart' #Copy files Copy-ADTFile -Path "$($adtSession.DirFiles)\*" -Destination "C:\Windows\STWindowsRestart" -Recurse #Remove file Remove-ADTFile -Path 'C:\eula.1028.txt' #Add new lines to text file Add-Content -Path "C:\ProgramData\CADMATIC\Draw 24\CadsSetup.ini" -Value "CadsnetHost=uksrv2" -Force Add-Content -Path "C:\ProgramData\CADMATIC\Draw 24\CadsSetup.ini" -Value "[Automaattipäivitys]" -Force Add-Content -Path "C:\ProgramData\CADMATIC\Draw 24\CadsSetup.ini" -Value "Estetty=1333" -Force #add content to hosts file $File = "C:\Windows\System32\drivers\etc\hosts" $Hostfile = Get-Content $File $Hostfile += "10.0.12.87 sopronet.fyi.fi campus.fyi.fi study.fyi.fi" Set-Content -Path $File -Value $Hostfile -Force #Certificates <# Certificate stores: Root "Trusted Root Certification Authorities" Trust "Enterprise Trust" CA "Intermediate Certification Authorities" TrustedPublisher "Trusted Publishers" Disallowed "Untrusted Certificates" AuthRoot "Third-Party Root Certification Authorities" TrustedPeople "Trusted People" ClientAuthIssuer "Client Authentication Issuers" FlightRoot "Preview Build Roots" TestSignRoot "Test Roots" OemEsim "OEM eSIM Certification Authorities" PasspointTrustedRoots "Passpoint Trusted Roots" SmartCardRoot "Smart Card Trusted Roots" TrustedAppRoot "Trusted Packaged App Installation Authorities" TrustedDevices "Trusted Devices" #> Start-ADTProcess -FilePath "certutil.exe" -ArgumentList "-f -addstore -enterprise TrustedPublisher `"$($adtSession.DirFiles)\0a8b99555bf112ee6166825f03cbc3ed.cer`"" Start-ADTProcess -FilePath "certutil.exe" -ArgumentList "-f -addstore -enterprise Root `"$($adtSession.DirFiles)\13d193a1.0.crt`"" #Install Trusted People Certificate function Import-PfxCertificate { param([String]$certPath,[String]$certRootStore = "localmachine",[String]$certStore = "My",$pfxPass = $null) $pfx = new-object System.Security.Cryptography.X509Certificates.X509Certificate2 if ($pfxPass -eq $null){ $pfxPass = "JokuSalasana" } $pfx.import($certPath,$pfxPass,"Exportable,PersistKeySet") $store = new-object System.Security.Cryptography.X509Certificates.X509Store($certStore,$certRootStore) $store.open("MaxAllowed") $store.add($pfx) $store.close() } Import-PfxCertificate "$($adtSession.DirFiles)\MSIX.pfx" "LocalMachine" "TrustedPeople" #Remove Certificates Start-ADTProcess -FilePath "certutil.exe" -ArgumentList "-f -delstore -enterprise Root `"edcdb4651c35feba0c0912b14c449112dbb9e8bc`"" #Modify DLL modules Register-ADTDll -FilePath "$($adtSession.DirFiles)\example\codec.dll" Unregister-ADTDll -FilePath "$envProgramFilesX86\Vendor\App\Temeletry.dll" #Install INF drivers Get-ChildItem "$($adtSession.DirFiles)" -Recurse -Filter "*inf" | ForEach-Object { PNPUtil.exe /add-driver $_.FullName /install } #Modify file or folder ACL #Modify ACL on a file #first load the ACL $acl_to_modify = "$envProgramData\Example\File.txt" $acl = Get-Acl "$acl_to_modify" #add another entry to the ACL list (in this case, add all users to have full control) $ar = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Users", "FullControl", "None", "None", "Allow") $acl.SetAccessRule($ar) #re-write the acl on the target file Set-Acl "$acl_to_modify" $acl #Modify ACL on a folder $folder_to_change = "$envSystemDrive\Example_Folder" $acl = Get-Acl "$folder_to_change" $ar = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Users", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") $acl.SetAccessRule($ar) Set-Acl "$folder_to_change" $acl #Set registry permissions Start-ADTProcess -FilePath "$($adtSession.DirSupportFiles)\SetACL.exe" -ArgumentList '-on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Communications" -ot reg -actn setowner -ownr "n:SYSTEM"' -WindowStyle 'Hidden' Start-ADTProcess -FilePath "$($adtSession.DirSupportFiles)\SetACL.exe" -ArgumentList '-on "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Communications" -ot reg -actn ace -ace "n:SYSTEM;p:full"' -WindowStyle 'Hidden' #Modify registry keys for local machine Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name 'ShowHomeButton' -Type 'Dword' -Value '1' #Remove registry keys or values for local machine Remove-ADTRegistryKey -Key "HKLM:\SOFTWARE\Policies\Google\Chrome" -Recurse Remove-ADTRegistryKey -Key "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name 'ShowHomeButton' #Modify registry keys for all users #Set registry keys for all users [scriptblock]$HKCURegistrySettingsInstall = { Set-ADTRegistryKey -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Value 1 -Type DWord -SID $UserProfile.SID Set-ADTRegistryKey -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Value 0 -Type DWord -SID $UserProfile.SID } Invoke-ADTAllUsersRegistryAction -ScriptBlock $HKCURegistrySettingsInstall #Remove registry keys for all users [scriptblock]$HKCURegistrySettingsUninstall = { Remove-ADTRegistryKey -Key 'HKCU\SOFTWARE\Policies\Google\Chrome' -Name 'ShowHomeButton' -SID $UserProfile.SID Remove-ADTRegistryKey -Key 'HKCU\SOFTWARE\Policies\Google\Chrome' -Recurse -SID $UserProfile.SID } Invoke-ADTAllUsersRegistryAction -ScriptBlock $HKCURegistrySettingsUninstall #Clear Teams cache for logged on user $loggedonUser = Get-ADTLoggedOnUser | Select-Object -ExpandProperty UserName $TeamsPath = [System.IO.Path]::Combine('C:\Users\', $loggedonUser,'Appdata', 'Roaming', 'Microsoft', 'Teams') Remove-ADTFile -Path "$TeamsPath\Cache\*" #Set lock screen wallpaper Copy-ADTFile -Path "$($adtSession.DirFiles)\Strategiakuva_Lukitusnaytto_4K.jpg" -Destination "C:\Windows\Strategiakuva_Lukitusnaytto_4K.jpg" Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImagePath" -Value "C:\Windows\Strategiakuva_Lukitusnaytto_4K.jpg" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImageStatus" -Value 1 -Type DWORD Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImageUrl" -Value "C:\Windows\Strategiakuva_Lukitusnaytto_4K.jpg" -Type String RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters 1, True #Enable Windows features $HyperVActive = Get-WindowsOptionalFeature -Online -FeatureName *Hyper-V-All* if($HyperVActive.State -ne "Enabled"){ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart } #Inject drivers to WinRE $MountDir = "$env:SystemDrive\WinRE" if (!(Test-Path -Path $MountDir)) { New-Item -Path $MountDir -ItemType Directory } ReAgentC.exe /mountre /path $MountDir dism /Image:$MountDir /Add-Driver /Driver:$($adtSession.DirFiles) /recurse dism /Image:$MountDir /Cleanup-Image /StartComponentCleanup ReAgentc.exe /unmountre /path $MountDir /commit Remove-Item -Path $MountDir #Set firewall rules #Allow through Firewall - allow private, domain but block public if (Get-NetFirewallRule -DisplayName "Allow $($adtSession.AppName)"){ Remove-NetFirewallRule -DisplayName "Allow $($adtSession.AppName)" } if (Get-NetFirewallRule -DisplayName "Block $($adtSession.AppName)"){ Remove-NetFirewallRule -DisplayName "Block $($adtSession.AppName)" } New-NetFirewallRule -DisplayName "Allow $($adtSession.AppName)" -Direction Inbound -Program "$envProgramFiles\Makeblock\mBlock\mBlock.exe" -LocalPort Any -Protocol TCP -Action Allow -Enabled True -Profile Domain,Private New-NetFirewallRule -DisplayName "Allow $($adtSession.AppName)" -Direction Inbound -Program "$envProgramFiles\Makeblock\mBlock\mBlock.exe" -LocalPort Any -Protocol UDP -Action Allow -Enabled True -Profile Domain,Private New-NetFirewallRule -DisplayName "Block $($adtSession.AppName)" -Direction Inbound -Program "$envProgramFiles\Makeblock\mBlock\mBlock.exe" -LocalPort Any -Protocol TCP -Action Block -Enabled True -Profile Public New-NetFirewallRule -DisplayName "Block $($adtSession.AppName)" -Direction Inbound -Program "$envProgramFiles\Makeblock\mBlock\mBlock.exe" -LocalPort Any -Protocol UDP -Action Block -Enabled True -Profile Public #Create and remove public desktop shortcuts if(!(Test-Path "C:\Users\Public\Desktop\PowerShell.lnk" -PathType Leaf)){ $WScriptObj = New-Object -ComObject ("WScript.Shell") $shortcut = $WscriptObj.CreateShortcut("C:\Users\Public\Desktop\PowerShell.lnk") $shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" $shortcut.IconLocation= "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" $shortcut.Save() } #Remove public desktop shortcut Remove-ADTFile -Path "$envCommonDesktop\mBlock.lnk" #Add M-Files vault # M-Files Vault 1 If (Test-Path "$env:ProgramFiles\M-Files\*\Bin\x64\MFStatus.exe"){ $Versio = Resolve-Path "$env:ProgramFiles\M-Files\*\Bin\x64\MFStatus.exe" | Select-Object -ExpandProperty Path $AsennettuVersio = $Versio.split('\')[3] Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'AuthType' -Value 1 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'AutoLogin' -Value 0 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'Endpoint' -Value "2266" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'HTTPProxy' -Value "" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'ID' -Value 1 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'InfoTip' -Value "Browse to this folder to view the contents of this document vault." -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'NetworkAddress' -Value "MFiles01" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'ProtocolSequence' -Value "ncacn_ip_tcp" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'Secured' -Value 0 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'ServerVaultGUID' -Value "{EC4EE1AA-FAF9-4A5E-9882-0110E4224531}" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'ServerVaultName' -Value "Company" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$AsennettuVersio\Client\MFClient\Vaults\Company" -Name 'SPN' -Value "" -Type String #Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\$AsennettuVersio\Client\MFClient" -Name 'ApproveEachApplicationSeparately' -Value "0" -Type Dword } Else{ Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'AuthType' -Value 1 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'AutoLogin' -Value 0 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'Endpoint' -Value "2266" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'HTTPProxy' -Value "" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'ID' -Value 1 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'InfoTip' -Value "Browse to this folder to view the contents of this document vault." -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'NetworkAddress' -Value "MFiles01" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'ProtocolSequence' -Value "ncacn_ip_tcp" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'Secured' -Value 0 -Type Dword Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'ServerVaultGUID' -Value "{EC4EE1AA-FAF9-4A5E-9882-0110E4224531}" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'ServerVaultName' -Value "Company" -Type String Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\M-Files\$($adtSession.AppVersion)\Client\MFClient\Vaults\Company" -Name 'SPN' -Value "" -Type String #Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\Motive\$($adtSession.AppVersion)\Client\MFClient" -Name 'ApproveEachApplicationSeparately' -Value "0" -Type Dword } ## POST-INSTALLATION ############################################################# ############################################################# #Set registry value after successful installation Set-ADTRegistryKey -Key "HKLM:\SOFTWARE\$($adtSession.AppScriptAuthor)\$($adtSession.AppVendor)\$($adtSession.AppName)\$($adtSession.AppVersion)" -Name 'Installed' -Type 'String' -Value '1' #Force restart after installation Show-ADTInstallationRestartPrompt -Countdownseconds 120 -CountdownNoHideSeconds 60 ## PRE-UNINSTALLATION ############################################################# ############################################################# #Close applications before proceeding Show-ADTInstallationWelcome -CloseProcesses 'mBlock','msedge' -BlockExecution -CloseProcessesCountdown 1800 -NotTopMost ## UNINSTALLATION ############################################################# ############################################################# #Remove MSI application Uninstall-ADTApplication -Name 'mBlock' #Run Appx uninstaller #User account 1 Remove-AppxPackage package1_1.0.0.0_neutral__8wekyb3d8bbwe #PackageName #User account 2 $AppPackageName1 = "MicrosoftCorporationII.Windows365" $PackageName = Get-AppxPackage | Where-Object {$_.Name -eq $AppPackageName1} $AppxFullName = $PackageName.PackageFullName | Remove-AppxPackage #System wide $AppPackageName = "MicrosoftCorporationII.Windows365" $PackageName = Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -eq $AppPackageName} $PackageName.PackageName Remove-AppxProvisionedPackage -PackageName $PackageName.PackageName -AllUsers -Online #Remove Trusted Publisher Certificate Start-ADTProcess -FilePath "certutil.exe" -ArgumentList "-f -delstore -enterprise TrustedPublisher `"0a8b99555bf112ee6166825f03cbc3ed`"" #Remove Firewall rule if (Get-NetFirewallRule -DisplayName "Allow $($adtSession.AppName)"){ Remove-NetFirewallRule -DisplayName "Allow $($adtSession.AppName)" } if (Get-NetFirewallRule -DisplayName "Block $($adtSession.AppName)"){ Remove-NetFirewallRule -DisplayName "Block $($adtSession.AppName)" } #Delete desktop shortcut Remove-ADTFile -Path "$envCommonDesktop\mBlock.lnk" -EA 0 ## POST-UNINSTALLATION ############################################################# ############################################################# #Remove registry value after successful uninstallation Remove-ADTRegistryKey -Key "HKLM:\SOFTWARE\$($adtSession.AppScriptAuthor)\$($adtSession.AppVendor)\$($adtSession.AppName)" -Recurse