############################################################### # @description: # # Used when image get cloned to new system # # For Checking activation status, Setting SystemName, # # running updates for Chocolatry apps and Windows Updates # # # # @project: IMGSystTools # # @author: Bram Prieshof # ############################################################### if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) { $CommandLine = $MyInvocation.MyCommand.Path + "`" " + $MyInvocation.UnboundArguments Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList " Set-ExecutionPolicy -Scope Process Unrestricted -Force; $CommandLine" Exit } } #Disable Windows updates service Set-Service -Name "wuauserv" -Status Stopped -StartupType Disabled Write-Output "Checking activation status..." $ta = Get-CimInstance -ClassName SoftwareLicensingProduct -Filter "PartialProductKey IS NOT NULL" | Where-Object -Property Name -Like "Windows*" if ($ta.LicenseStatus -eq 1) {Write-Output "Activation [OK]"} else {Write-Output "Activation [Error, Opening settings]";Start-Process "ms-settings:activation"; pause } Write-Output "Getting System name" $sysid = Read-Host -Prompt 'Please enter system ID (example: DT001)' Rename-Computer -NewName $sysid Write-Output "System name [OK]" #Chocolaty software updates $confirmSupdates = Read-Host "Run Software updates? (y/n)" if ( $confirmSupdates -eq 'y'){ Write-Output "Checking Chocolatey package updates" choco upgrade -y all Write-Output " Chocolatey updates [OK]" } $confirmWupdates = Read-Host "Run Windows updates? (y/n)" if ( $confirmWupdates -eq 'y'){ #Enable Windows updates service Set-Service -Name "wuauserv" -Status Stopped -StartupType Manual Write-Output "Checking Windows updates" Import-Module PSWindowsUpdate Get-WUInstall -MicrosoftUpdate -AcceptAll -IgnoreReboot -IgnoreRebootRequired -Install Write-Output " Windows updates [OK]" } #Removing Created Shortcuts Remove-Item C:\Users\Public\Desktop\*.lnk #Remove "Run on login script" if exists if (Test-Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\FirstBoot.lnk" -PathType leaf) {Remove-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\FirstBoot.lnk"} #Finalizing and reboot Write-Output "" Write-Output "" Write-Output "The System deployed successfully, but it needs to be rebooted" $confirmation = Read-Host "Do you want to do that now? y/N:" if ($confirmation -eq 'y') { Restart-Computer -Force }