diff --git a/Autounattend/Custom-Scripts.txt b/Autounattend/Custom-Scripts.txt deleted file mode 100644 index 6f675cf..0000000 --- a/Autounattend/Custom-Scripts.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Add These Commands Under "Custom Scripts, Scripts to Run When First User Logs On" - -# 1. CMD -curl -L https://gitea.tcse.us/tricounty/tcse-deploy/archive/main.zip --output C:\Scripts.zip - -# 2. PS1 -Expand-Archive -Path 'C:\Scripts.zip' -DestinationPath 'C:\Scripts' -timeout /t 30 - -# 3. PS1 -Move-Item -Path 'C:\Scripts\tcse-deploy\*' -Destination 'C:\Scripts' -timeout /t 15 -Remove-Item -Path 'C:\Scripts\tcse-deploy\' -Remove-Item -Path 'C:\Scripts.zip' - -# 4. CMD -C:\Scripts\TCSE-Computer-Deploy.bat \ No newline at end of file diff --git a/Autounattend/Desktop/autounattend.xml b/Autounattend/Desktop/autounattend.xml deleted file mode 100644 index d29a375..0000000 --- a/Autounattend/Desktop/autounattend.xml +++ /dev/null @@ -1,739 +0,0 @@ - - - - - - - - en-US - - 0409:00000409 - en-US - en-US - en-US - - - - - - 0 - 3 - - - - - - VK7JG-NPHTM-C97JM-9MPGT-3V66T - - true - - false - - - 1 - cmd.exe /c ">>"X:\diskpart.txt" (echo SELECT DISK=0&echo CLEAN&echo CONVERT GPT&echo CREATE PARTITION EFI SIZE=600&echo FORMAT QUICK FS=FAT32 LABEL="System"&echo CREATE PARTITION MSR SIZE=16)" - - - 2 - cmd.exe /c ">>"X:\diskpart.txt" (echo CREATE PARTITION PRIMARY&echo SHRINK MINIMUM=1500&echo FORMAT QUICK FS=NTFS LABEL="Windows"&echo CREATE PARTITION PRIMARY&echo FORMAT QUICK FS=NTFS LABEL="Recovery")" - - - 3 - cmd.exe /c ">>"X:\diskpart.txt" (echo SET ID="de94bba4-06d1-4d40-a16a-bfd50179d6ac"&echo GPT ATTRIBUTES=0x8000000000000001)" - - - 4 - cmd.exe /c "diskpart.exe /s "X:\diskpart.txt" >>"X:\diskpart.log" || ( type "X:\diskpart.log" & echo diskpart encountered an error. & pause & exit /b 1 )" - - - 5 - reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassTPMCheck /t REG_DWORD /d 1 /f - - - 6 - reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassSecureBootCheck /t REG_DWORD /d 1 /f - - - 7 - reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassRAMCheck /t REG_DWORD /d 1 /f - - - - - - - - TEMPNAME - Central Standard Time - - - - - 1 - powershell.exe -NoProfile -Command "$xml = [xml]::new(); $xml.Load('C:\Windows\Panther\unattend.xml'); $sb = [scriptblock]::Create( $xml.unattend.Extensions.ExtractScript ); Invoke-Command -ScriptBlock $sb -ArgumentList $xml;" - - - 2 - powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\Specialize.ps1' -Raw | Invoke-Expression;" - - - 3 - reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT" - - - 4 - powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\DefaultUser.ps1' -Raw | Invoke-Expression;" - - - 5 - reg.exe unload "HKU\DefaultUser" - - - - - - - - - 0409:00000409 - en-US - en-US - en-US - - - - - - Tech - Administrators - - SandlotSlickBoat#25 - true</PlainText> - </Password> - </LocalAccount> - </LocalAccounts> - </UserAccounts> - <AutoLogon> - <Username>Tech</Username> - <Enabled>true</Enabled> - <LogonCount>1</LogonCount> - <Password> - <Value>SandlotSlickBoat#25</Value> - <PlainText>true</PlainText> - </Password> - </AutoLogon> - <OOBE> - <ProtectYourPC>3</ProtectYourPC> - <HideEULAPage>true</HideEULAPage> - <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> - <HideOnlineAccountScreens>false</HideOnlineAccountScreens> - </OOBE> - <FirstLogonCommands> - <SynchronousCommand wcm:action="add"> - <Order>1</Order> - <CommandLine>powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\FirstLogon.ps1' -Raw | Invoke-Expression;"</CommandLine> - </SynchronousCommand> - </FirstLogonCommands> - </component> - </settings> - <Extensions xmlns="https://schneegans.de/windows/unattend-generator/"> - <ExtractScript> -param( - [xml] $Document -); - -foreach( $file in $Document.unattend.Extensions.File ) { - $path = [System.Environment]::ExpandEnvironmentVariables( - $file.GetAttribute( 'path' ) - ); - mkdir -Path( $path | Split-Path -Parent ) -ErrorAction 'SilentlyContinue'; - $content = $file.InnerText.Trim(); - if( $file.GetAttribute( 'transformation' ) -ieq 'Base64' ) { - [System.IO.File]::WriteAllBytes( $path, [System.Convert]::FromBase64String( $content ) ); - } else { - $encoding = switch( [System.IO.Path]::GetExtension( $path ) ) { - { $_ -in '.ps1', '.xml' } { [System.Text.Encoding]::UTF8; } - { $_ -in '.reg', '.vbs', '.js' } { [System.Text.UnicodeEncoding]::new( $false, $true ); } - default { [System.Text.Encoding]::Default; } - }; - [System.IO.File]::WriteAllBytes( $path, ( $encoding.GetPreamble() + $encoding.GetBytes( $content ) ) ); - } -} - </ExtractScript> - <File path="C:\Windows\Setup\Scripts\GetComputerName.ps1" transformation="Text"> -return Read-Host -Prompt 'Enter computer name'; - </File> - <File path="C:\Windows\Setup\Scripts\SetComputerName.ps1" transformation="Text"> -$ErrorActionPreference = 'Stop'; -Set-StrictMode -Version 'Latest'; -&amp; { - $newName = ( Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\ComputerName.txt' -Raw ).Trim(); - if( [string]::IsNullOrWhitespace( $newName ) ) { - throw "No computer name was provided."; - } - - $keys = @( - @{ - LiteralPath = 'Registry::HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName'; - Name = 'ComputerName'; - }; - @{ - LiteralPath = 'Registry::HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; - Name = 'Hostname'; - }; - @{ - LiteralPath = 'Registry::HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; - Name = 'NV Hostname'; - }; - ); - - while( $true ) { - foreach( $key in $keys ) { - Set-ItemProperty @key -Type 'String' -Value $newName; - } - Start-Sleep -Milliseconds 50; - } -} *&gt;&amp;1 &gt;&gt; 'C:\Windows\Setup\Scripts\SetComputerName.log'; - </File> - <File path="C:\Windows\Setup\Scripts\RemovePackages.ps1" transformation="Text"> -$selectors = @( - 'Microsoft.Microsoft3DViewer'; - 'Microsoft.BingSearch'; - 'Microsoft.WindowsCalculator'; - 'Microsoft.WindowsCamera'; - 'Clipchamp.Clipchamp'; - 'Microsoft.WindowsAlarms'; - 'Microsoft.549981C3F5F10'; - 'Microsoft.Windows.DevHome'; - 'MicrosoftCorporationII.MicrosoftFamily'; - 'Microsoft.WindowsFeedbackHub'; - 'Microsoft.GetHelp'; - 'Microsoft.Getstarted'; - 'microsoft.windowscommunicationsapps'; - 'Microsoft.WindowsMaps'; - 'Microsoft.MixedReality.Portal'; - 'Microsoft.BingNews'; - 'Microsoft.MicrosoftOfficeHub'; - 'Microsoft.Office.OneNote'; - 'Microsoft.OutlookForWindows'; - 'Microsoft.MSPaint'; - 'Microsoft.People'; - 'Microsoft.Windows.Photos'; - 'Microsoft.PowerAutomateDesktop'; - 'MicrosoftCorporationII.QuickAssist'; - 'Microsoft.SkypeApp'; - 'Microsoft.MicrosoftSolitaireCollection'; - 'Microsoft.MicrosoftStickyNotes'; - 'MicrosoftTeams'; - 'MSTeams'; - 'Microsoft.Todos'; - 'Microsoft.WindowsSoundRecorder'; - 'Microsoft.Wallet'; - 'Microsoft.BingWeather'; - 'Microsoft.Xbox.TCUI'; - 'Microsoft.XboxApp'; - 'Microsoft.XboxGameOverlay'; - 'Microsoft.XboxGamingOverlay'; - 'Microsoft.XboxIdentityProvider'; - 'Microsoft.XboxSpeechToTextOverlay'; - 'Microsoft.GamingApp'; - 'Microsoft.YourPhone'; - 'Microsoft.ZuneMusic'; - 'Microsoft.ZuneVideo'; -); -$getCommand = { - Get-AppxProvisionedPackage -Online; -}; -$filterCommand = { - $_.DisplayName -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Remove-AppxProvisionedPackage -AllUsers -Online -ErrorAction 'Continue'; - } -}; -$type = 'Package'; -$logfile = 'C:\Windows\Setup\Scripts\RemovePackages.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\RemoveCapabilities.ps1" transformation="Text"> -$selectors = @( - 'Print.Fax.Scan'; - 'Language.Handwriting'; - 'Browser.InternetExplorer'; - 'MathRecognizer'; - 'OneCoreUAP.OneSync'; - 'OpenSSH.Client'; - 'Microsoft.Windows.PowerShell.ISE'; - 'App.Support.QuickAssist'; - 'Language.Speech'; - 'Language.TextToSpeech'; - 'App.StepsRecorder'; - 'Hello.Face.18967'; - 'Hello.Face.Migration.18967'; - 'Hello.Face.20134'; - 'Media.WindowsMediaPlayer'; - 'Microsoft.Windows.WordPad'; -); -$getCommand = { - Get-WindowsCapability -Online | Where-Object -Property 'State' -NotIn -Value @( - 'NotPresent'; - 'Removed'; - ); -}; -$filterCommand = { - ($_.Name -split '~')[0] -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Remove-WindowsCapability -Online -ErrorAction 'Continue'; - } -}; -$type = 'Capability'; -$logfile = 'C:\Windows\Setup\Scripts\RemoveCapabilities.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\RemoveFeatures.ps1" transformation="Text"> -$selectors = @( - 'MediaPlayback'; - 'MicrosoftWindowsPowerShellV2Root'; - 'Microsoft-RemoteDesktopConnection'; - 'Recall'; -); -$getCommand = { - Get-WindowsOptionalFeature -Online | Where-Object -Property 'State' -NotIn -Value @( - 'Disabled'; - 'DisabledWithPayloadRemoved'; - ); -}; -$filterCommand = { - $_.FeatureName -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Disable-WindowsOptionalFeature -Online -Remove -NoRestart -ErrorAction 'Continue'; - } -}; -$type = 'Feature'; -$logfile = 'C:\Windows\Setup\Scripts\RemoveFeatures.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\TaskbarLayoutModification.xml" transformation="Text"> -&lt;LayoutModificationTemplate xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" Version="1"&gt; - &lt;CustomTaskbarLayoutCollection PinListPlacement="Replace"&gt; - &lt;defaultlayout:TaskbarLayout&gt; - &lt;taskbar:TaskbarPinList&gt; - &lt;taskbar:DesktopApp DesktopApplicationLinkPath="#leaveempty" /&gt; - &lt;/taskbar:TaskbarPinList&gt; - &lt;/defaultlayout:TaskbarLayout&gt; - &lt;/CustomTaskbarLayoutCollection&gt; -&lt;/LayoutModificationTemplate&gt; - </File> - <File path="C:\Windows\Setup\Scripts\SetStartPins.ps1" transformation="Text"> -$json = '{"pinnedList":[]}'; -if( [System.Environment]::OSVersion.Version.Build -lt 20000 ) { - return; -} -$key = 'Registry::HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start'; -New-Item -Path $key -ItemType 'Directory' -ErrorAction 'SilentlyContinue'; -Set-ItemProperty -LiteralPath $key -Name 'ConfigureStartPins' -Value $json -Type 'String'; - </File> - <File path="C:\Windows\Setup\Scripts\SetColorTheme.ps1" transformation="Text"> -$lightThemeSystem = 1; -$lightThemeApps = 1; -$accentColorOnStart = 0; -$enableTransparency = 0; -$htmlAccentColor = '#0078D4'; -&amp; { - $params = @{ - LiteralPath = 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize'; - Force = $true; - Type = 'DWord'; - }; - Set-ItemProperty @params -Name 'SystemUsesLightTheme' -Value $lightThemeSystem; - Set-ItemProperty @params -Name 'AppsUseLightTheme' -Value $lightThemeApps; - Set-ItemProperty @params -Name 'ColorPrevalence' -Value $accentColorOnStart; - Set-ItemProperty @params -Name 'EnableTransparency' -Value $enableTransparency; -}; -&amp; { - Add-Type -AssemblyName 'System.Drawing'; - $accentColor = [System.Drawing.ColorTranslator]::FromHtml( $htmlAccentColor ); - - function ConvertTo-DWord { - param( - [System.Drawing.Color] - $Color - ); - - [byte[]] $bytes = @( - $Color.R; - $Color.G; - $Color.B; - $Color.A; - ); - return [System.BitConverter]::ToUInt32( $bytes, 0); - } - - $startColor = [System.Drawing.Color]::FromArgb( 0xD2, $accentColor ); - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent' -Name 'StartColorMenu' -Value( ConvertTo-DWord -Color $accentColor ) -Type 'DWord' -Force; - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent' -Name 'AccentColorMenu' -Value( ConvertTo-DWord -Color $accentColor ) -Type 'DWord' -Force; - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\DWM' -Name 'AccentColor' -Value( ConvertTo-DWord -Color $accentColor ) -Type 'DWord' -Force; - $params = @{ - LiteralPath = 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent'; - Name = 'AccentPalette'; - }; - $palette = Get-ItemPropertyValue @params; - $index = 20; - $palette[ $index++ ] = $accentColor.R; - $palette[ $index++ ] = $accentColor.G; - $palette[ $index++ ] = $accentColor.B; - $palette[ $index++ ] = $accentColor.A; - Set-ItemProperty @params -Value $palette -Type 'Binary' -Force; -}; - </File> - <File path="C:\Windows\Setup\Scripts\SetWallpaper.ps1" transformation="Text"> -Add-Type -TypeDefinition ' - using System.Drawing; - using System.Runtime.InteropServices; - - public static class WallpaperSetter { - [DllImport("user32.dll")] - private static extern bool SetSysColors( - int cElements, - int[] lpaElements, - int[] lpaRgbValues - ); - - [DllImport("user32.dll")] - private static extern bool SystemParametersInfo( - uint uiAction, - uint uiParam, - string pvParam, - uint fWinIni - ); - - public static void SetDesktopBackground(Color color) { - SystemParametersInfo(20, 0, "", 0); - SetSysColors(1, new int[] { 1 }, new int[] { ColorTranslator.ToWin32(color) }); - } - - public static void SetDesktopImage(string file) { - SystemParametersInfo(20, 0, file, 0); - } - } -' -ReferencedAssemblies 'System.Drawing'; - -function Set-WallpaperColor { - param( - [string] - $HtmlColor - ); - - $color = [System.Drawing.ColorTranslator]::FromHtml( $HtmlColor ); - [WallpaperSetter]::SetDesktopBackground( $color ); - Set-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers' -Name 'BackgroundType' -Type 'DWord' -Value 1 -Force; - Set-ItemProperty -Path 'Registry::HKCU\Control Panel\Desktop' -Name 'WallPaper' -Type 'String' -Value '' -Force; - Set-ItemProperty -Path 'Registry::HKCU\Control Panel\Colors' -Name 'Background' -Type 'String' -Value "$($color.R) $($color.G) $($color.B)" -Force; -} - -function Set-WallpaperImage { - param( - [string] - $LiteralPath - ); - - [WallpaperSetter]::SetDesktopImage( $LiteralPath ); - Set-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers' -Name 'BackgroundType' -Type 'DWord' -Value 0 -Force; - Set-ItemProperty -Path 'Registry::HKCU\Control Panel\Desktop' -Name 'WallPaper' -Type 'String' -Value $LiteralPath -Force; -} -Set-WallpaperColor -HtmlColor '#0978D3'; - </File> - <File path="C:\Windows\Setup\Scripts\unattend-01.cmd" transformation="Text"> -curl -L https://gitea.tcse.us/tricounty/tcse-deploy/archive/main.zip --output C:\Scripts.zip - </File> - <File path="C:\Windows\Setup\Scripts\unattend-02.ps1" transformation="Text"> -Expand-Archive -Path 'C:\Scripts.zip' -DestinationPath 'C:\Scripts' -timeout /t 30 - </File> - <File path="C:\Windows\Setup\Scripts\unattend-03.ps1" transformation="Text"> -Move-Item -Path 'C:\Scripts\tcse-deploy\*' -Destination 'C:\Scripts' -timeout /t 15 -Remove-Item -Path 'C:\Scripts\tcse-deploy\' -Remove-Item -Path 'C:\Scripts.zip' - </File> - <File path="C:\Windows\Setup\Scripts\unattend-04.cmd" transformation="Text"> -C:\Scripts\TCSE-Computer-Deploy.bat - </File> - <File path="C:\Windows\Setup\Scripts\Specialize.ps1" transformation="Text"> -$scripts = @( - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\GetComputerName.ps1' -Raw | Invoke-Expression &gt; 'C:\Windows\Setup\Scripts\ComputerName.txt'; - Start-Process -FilePath ( Get-Process -Id $PID ).Path -ArgumentList '-NoProfile', '-Command', 'Get-Content -LiteralPath "C:\Windows\Setup\Scripts\SetComputerName.ps1" -Raw | Invoke-Expression;' -WindowStyle 'Hidden'; - Start-Sleep -Seconds 10; - }; - { - reg.exe add "HKLM\SYSTEM\Setup\MoSetup" /v AllowUpgradesWithUnsupportedTPMOrCPU /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v BypassNRO /t REG_DWORD /d 1 /f; - }; - { - Remove-Item -LiteralPath 'Registry::HKLM\Software\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\DevHomeUpdate' -Force -ErrorAction 'SilentlyContinue'; - }; - { - Remove-Item -LiteralPath 'C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk', 'C:\Windows\System32\OneDriveSetup.exe', 'C:\Windows\SysWOW64\OneDriveSetup.exe' -ErrorAction 'Continue'; - }; - { - Remove-Item -LiteralPath 'Registry::HKLM\Software\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\OutlookUpdate' -Force -ErrorAction 'SilentlyContinue'; - }; - { - reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Communications" /v ConfigureChatAutoInstall /t REG_DWORD /d 0 /f; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemovePackages.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemoveCapabilities.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemoveFeatures.ps1' -Raw | Invoke-Expression; - }; - { - net.exe accounts /maxpwage:UNLIMITED; - }; - { - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\Explorer" /v "StartLayoutFile" /t REG_SZ /d "C:\Windows\Setup\Scripts\TaskbarLayoutModification.xml" /f; - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\Explorer" /v "LockedStartLayout" /t REG_DWORD /d 1 /f; - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableCloudOptimizedContent" /t REG_DWORD /d 1 /f; - }; - { - Set-ExecutionPolicy -Scope 'LocalMachine' -ExecutionPolicy 'RemoteSigned' -Force; - }; - { - reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Dsh" /v AllowNewsAndInterests /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\BitLocker" /v "PreventDeviceEncryption" /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v HideFirstRunExperience /t REG_DWORD /d 1 /f; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\SetStartPins.ps1' -Raw | Invoke-Expression; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to customize your Windows installation. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\Specialize.log"; - </File> - <File path="C:\Windows\Setup\Scripts\UserOnce.ps1" transformation="Text"> -$scripts = @( - { - Get-AppxPackage -Name 'Microsoft.Windows.Ai.Copilot.Provider' | Remove-AppxPackage; - }; - { - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Search' -Name 'SearchboxTaskbarMode' -Type 'DWord' -Value 1; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\SetColorTheme.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\SetWallpaper.ps1' -Raw | Invoke-Expression; - }; - { - Get-Process -Name 'explorer' -ErrorAction 'SilentlyContinue' | Where-Object -FilterScript { - $_.SessionId -eq ( Get-Process -Id $PID ).SessionId; - } | Stop-Process -Force; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to configure this user account. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "$env:TEMP\UserOnce.log"; - </File> - <File path="C:\Windows\Setup\Scripts\DefaultUser.ps1" transformation="Text"> -$scripts = @( - { - reg.exe add "HKU\DefaultUser\Software\Policies\Microsoft\Windows\WindowsCopilot" /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f; - }; - { - Remove-ItemProperty -LiteralPath 'Registry::HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Run' -Name 'OneDriveSetup' -Force -ErrorAction 'Continue'; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowTaskViewButton /t REG_DWORD /d 0 /f; - }; - { - $names = @( - 'ContentDeliveryAllowed'; - 'FeatureManagementEnabled'; - 'OEMPreInstalledAppsEnabled'; - 'PreInstalledAppsEnabled'; - 'PreInstalledAppsEverEnabled'; - 'SilentInstalledAppsEnabled'; - 'SoftLandingEnabled'; - 'SubscribedContentEnabled'; - 'SubscribedContent-310093Enabled'; - 'SubscribedContent-338387Enabled'; - 'SubscribedContent-338388Enabled'; - 'SubscribedContent-338389Enabled'; - 'SubscribedContent-338393Enabled'; - 'SubscribedContent-353698Enabled'; - 'SystemPaneSuggestionsEnabled'; - ); - - foreach( $name in $names ) { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v $name /t REG_DWORD /d 0 /f; - } - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAl /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Policies\Microsoft\Windows\Explorer" /v DisableSearchBoxSuggestions /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\DWM" /v ColorPrevalence /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v "UnattendedSetup" /t REG_SZ /d "powershell.exe -NoProfile -Command \""Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\UserOnce.ps1' -Raw | Invoke-Expression;\""" /f; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to modify the default user&#x2019;&#x2019;s registry hive. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\DefaultUser.log"; - </File> - <File path="C:\Windows\Setup\Scripts\FirstLogon.ps1" transformation="Text"> -$scripts = @( - { - Set-ItemProperty -LiteralPath 'Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'AutoLogonCount' -Type 'DWord' -Force -Value 0; - }; - { - cmd.exe /c "rmdir C:\Windows.old"; - }; - { - C:\Windows\Setup\Scripts\unattend-01.cmd; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\unattend-02.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\unattend-03.ps1' -Raw | Invoke-Expression; - }; - { - C:\Windows\Setup\Scripts\unattend-04.cmd; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to finalize your Windows installation. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\FirstLogon.log"; - </File> - </Extensions> -</unattend> \ No newline at end of file diff --git a/Autounattend/Laptop/autounattend.xml b/Autounattend/Laptop/autounattend.xml deleted file mode 100644 index b153aa4..0000000 --- a/Autounattend/Laptop/autounattend.xml +++ /dev/null @@ -1,772 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> - <!--https://schneegans.de/windows/unattend-generator/?LanguageMode=Unattended&UILanguage=en-US&Locale=en-US&Keyboard=00000409&GeoLocation=244&ProcessorArchitecture=amd64&BypassRequirementsCheck=true&BypassNetworkCheck=true&ComputerNameMode=Script&ComputerNameScript=return+Read-Host+-Prompt+%27Enter+computer+name%27%3B&CompactOsMode=Default&TimeZoneMode=Explicit&TimeZone=Central+Standard+Time&PartitionMode=Unattended&PartitionLayout=GPT&EspSize=600&RecoveryMode=Partition&RecoverySize=1500&WindowsEditionMode=Generic&WindowsEdition=pro&UserAccountMode=Unattended&AccountName0=Tech&AccountPassword0=SandlotSlickBoat%2325&AccountGroup0=Administrators&AccountName1=&AccountName2=&AccountName3=&AccountName4=&AutoLogonMode=Own&PasswordExpirationMode=Unlimited&LockoutMode=Default&HideFiles=Hidden&ShowFileExtensions=true&TaskbarSearch=Icon&TaskbarIconsMode=Empty&DisableWidgets=true&LeftTaskbar=true&HideTaskViewButton=true&DisableBingResults=true&StartTilesMode=Default&StartPinsMode=Empty&AllowPowerShellScripts=true&DisableAppSuggestions=true&PreventDeviceEncryption=true&HideEdgeFre=true&WifiMode=Unattended&WifiName=Tricounty&WifiAuthentication=WPA2PSK&WifiPassword=TCSEwifi19%21&ExpressSettings=DisableAll&KeysMode=Skip&ColorMode=Custom&SystemColorTheme=Light&AppsColorTheme=Light&AccentColor=%230078d4&WallpaperMode=Solid&WallpaperColor=%230978d3&Remove3DViewer=true&RemoveBingSearch=true&RemoveCalculator=true&RemoveCamera=true&RemoveClipchamp=true&RemoveClock=true&RemoveCopilot=true&RemoveCortana=true&RemoveDevHome=true&RemoveFamily=true&RemoveFeedbackHub=true&RemoveGetHelp=true&RemoveHandwriting=true&RemoveInternetExplorer=true&RemoveMailCalendar=true&RemoveMaps=true&RemoveMathInputPanel=true&RemoveMediaFeatures=true&RemoveMixedReality=true&RemoveZuneVideo=true&RemoveNews=true&RemoveOffice365=true&RemoveOneDrive=true&RemoveOneNote=true&RemoveOneSync=true&RemoveOpenSSHClient=true&RemoveOutlook=true&RemovePaint3D=true&RemovePeople=true&RemovePhotos=true&RemovePowerAutomate=true&RemovePowerShell2=true&RemovePowerShellISE=true&RemoveQuickAssist=true&RemoveRecall=true&RemoveRdpClient=true&RemoveSkype=true&RemoveSolitaire=true&RemoveSpeech=true&RemoveStepsRecorder=true&RemoveStickyNotes=true&RemoveTeams=true&RemoveGetStarted=true&RemoveToDo=true&RemoveVoiceRecorder=true&RemoveWallet=true&RemoveWeather=true&RemoveFaxAndScan=true&RemoveWindowsHello=true&RemoveWindowsMediaPlayer=true&RemoveZuneMusic=true&RemoveWordPad=true&RemoveXboxApps=true&RemoveYourPhone=true&FirstLogonScript0=curl+-L+https%3A%2F%2Fgitea.tcse.us%2Ftricounty%2Ftcse-deploy%2Farchive%2Fmain.zip+%2D%2Doutput+C%3A%5CScripts.zip&FirstLogonScriptType0=Cmd&FirstLogonScript1=Expand-Archive+-Path+%27C%3A%5CScripts.zip%27+-DestinationPath+%27C%3A%5CScripts%27%0D%0Atimeout+%2Ft+30&FirstLogonScriptType1=Ps1&FirstLogonScript2=Move-Item+-Path+%27C%3A%5CScripts%5Ctcse-deploy%5C*%27+-Destination+%27C%3A%5CScripts%27%0D%0Atimeout+%2Ft+15%0D%0ARemove-Item+-Path+%27C%3A%5CScripts%5Ctcse-deploy%5C%27%0D%0ARemove-Item+-Path+%27C%3A%5CScripts.zip%27&FirstLogonScriptType2=Ps1&FirstLogonScript3=C%3A%5CScripts%5CTCSE-Computer-Deploy.bat&FirstLogonScriptType3=Cmd&WdacMode=Skip--> - <settings pass="offlineServicing"></settings> - <settings pass="windowsPE"> - <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> - <SetupUILanguage> - <UILanguage>en-US</UILanguage> - </SetupUILanguage> - <InputLocale>0409:00000409</InputLocale> - <SystemLocale>en-US</SystemLocale> - <UILanguage>en-US</UILanguage> - <UserLocale>en-US</UserLocale> - </component> - <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> - <ImageInstall> - <OSImage> - <InstallTo> - <DiskID>0</DiskID> - <PartitionID>3</PartitionID> - </InstallTo> - </OSImage> - </ImageInstall> - <UserData> - <ProductKey> - <Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key> - </ProductKey> - <AcceptEula>true</AcceptEula> - </UserData> - <UseConfigurationSet>false</UseConfigurationSet> - <RunSynchronous> - <RunSynchronousCommand wcm:action="add"> - <Order>1</Order> - <Path>cmd.exe /c "&gt;&gt;"X:\diskpart.txt" (echo SELECT DISK=0&amp;echo CLEAN&amp;echo CONVERT GPT&amp;echo CREATE PARTITION EFI SIZE=600&amp;echo FORMAT QUICK FS=FAT32 LABEL="System"&amp;echo CREATE PARTITION MSR SIZE=16)"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>2</Order> - <Path>cmd.exe /c "&gt;&gt;"X:\diskpart.txt" (echo CREATE PARTITION PRIMARY&amp;echo SHRINK MINIMUM=1500&amp;echo FORMAT QUICK FS=NTFS LABEL="Windows"&amp;echo CREATE PARTITION PRIMARY&amp;echo FORMAT QUICK FS=NTFS LABEL="Recovery")"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>3</Order> - <Path>cmd.exe /c "&gt;&gt;"X:\diskpart.txt" (echo SET ID="de94bba4-06d1-4d40-a16a-bfd50179d6ac"&amp;echo GPT ATTRIBUTES=0x8000000000000001)"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>4</Order> - <Path>cmd.exe /c "diskpart.exe /s "X:\diskpart.txt" &gt;&gt;"X:\diskpart.log" || ( type "X:\diskpart.log" &amp; echo diskpart encountered an error. &amp; pause &amp; exit /b 1 )"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>5</Order> - <Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassTPMCheck /t REG_DWORD /d 1 /f</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>6</Order> - <Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassSecureBootCheck /t REG_DWORD /d 1 /f</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>7</Order> - <Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassRAMCheck /t REG_DWORD /d 1 /f</Path> - </RunSynchronousCommand> - </RunSynchronous> - </component> - </settings> - <settings pass="generalize"></settings> - <settings pass="specialize"> - <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> - <ComputerName>TEMPNAME</ComputerName> - <TimeZone>Central Standard Time</TimeZone> - </component> - <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> - <RunSynchronous> - <RunSynchronousCommand wcm:action="add"> - <Order>1</Order> - <Path>powershell.exe -NoProfile -Command "$xml = [xml]::new(); $xml.Load('C:\Windows\Panther\unattend.xml'); $sb = [scriptblock]::Create( $xml.unattend.Extensions.ExtractScript ); Invoke-Command -ScriptBlock $sb -ArgumentList $xml;"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>2</Order> - <Path>powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\Specialize.ps1' -Raw | Invoke-Expression;"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>3</Order> - <Path>reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>4</Order> - <Path>powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\DefaultUser.ps1' -Raw | Invoke-Expression;"</Path> - </RunSynchronousCommand> - <RunSynchronousCommand wcm:action="add"> - <Order>5</Order> - <Path>reg.exe unload "HKU\DefaultUser"</Path> - </RunSynchronousCommand> - </RunSynchronous> - </component> - </settings> - <settings pass="auditSystem"></settings> - <settings pass="auditUser"></settings> - <settings pass="oobeSystem"> - <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> - <InputLocale>0409:00000409</InputLocale> - <SystemLocale>en-US</SystemLocale> - <UILanguage>en-US</UILanguage> - <UserLocale>en-US</UserLocale> - </component> - <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> - <UserAccounts> - <LocalAccounts> - <LocalAccount wcm:action="add"> - <Name>Tech</Name> - <Group>Administrators</Group> - <Password> - <Value>SandlotSlickBoat#25</Value> - <PlainText>true</PlainText> - </Password> - </LocalAccount> - </LocalAccounts> - </UserAccounts> - <AutoLogon> - <Username>Tech</Username> - <Enabled>true</Enabled> - <LogonCount>1</LogonCount> - <Password> - <Value>SandlotSlickBoat#25</Value> - <PlainText>true</PlainText> - </Password> - </AutoLogon> - <OOBE> - <ProtectYourPC>3</ProtectYourPC> - <HideEULAPage>true</HideEULAPage> - <HideOnlineAccountScreens>false</HideOnlineAccountScreens> - </OOBE> - <FirstLogonCommands> - <SynchronousCommand wcm:action="add"> - <Order>1</Order> - <CommandLine>powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\FirstLogon.ps1' -Raw | Invoke-Expression;"</CommandLine> - </SynchronousCommand> - </FirstLogonCommands> - </component> - </settings> - <Extensions xmlns="https://schneegans.de/windows/unattend-generator/"> - <ExtractScript> -param( - [xml] $Document -); - -foreach( $file in $Document.unattend.Extensions.File ) { - $path = [System.Environment]::ExpandEnvironmentVariables( - $file.GetAttribute( 'path' ) - ); - mkdir -Path( $path | Split-Path -Parent ) -ErrorAction 'SilentlyContinue'; - $content = $file.InnerText.Trim(); - if( $file.GetAttribute( 'transformation' ) -ieq 'Base64' ) { - [System.IO.File]::WriteAllBytes( $path, [System.Convert]::FromBase64String( $content ) ); - } else { - $encoding = switch( [System.IO.Path]::GetExtension( $path ) ) { - { $_ -in '.ps1', '.xml' } { [System.Text.Encoding]::UTF8; } - { $_ -in '.reg', '.vbs', '.js' } { [System.Text.UnicodeEncoding]::new( $false, $true ); } - default { [System.Text.Encoding]::Default; } - }; - [System.IO.File]::WriteAllBytes( $path, ( $encoding.GetPreamble() + $encoding.GetBytes( $content ) ) ); - } -} - </ExtractScript> - <File path="C:\Windows\Setup\Scripts\GetComputerName.ps1" transformation="Text"> -return Read-Host -Prompt 'Enter computer name'; - </File> - <File path="C:\Windows\Setup\Scripts\SetComputerName.ps1" transformation="Text"> -$ErrorActionPreference = 'Stop'; -Set-StrictMode -Version 'Latest'; -&amp; { - $newName = ( Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\ComputerName.txt' -Raw ).Trim(); - if( [string]::IsNullOrWhitespace( $newName ) ) { - throw "No computer name was provided."; - } - - $keys = @( - @{ - LiteralPath = 'Registry::HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName'; - Name = 'ComputerName'; - }; - @{ - LiteralPath = 'Registry::HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; - Name = 'Hostname'; - }; - @{ - LiteralPath = 'Registry::HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; - Name = 'NV Hostname'; - }; - ); - - while( $true ) { - foreach( $key in $keys ) { - Set-ItemProperty @key -Type 'String' -Value $newName; - } - Start-Sleep -Milliseconds 50; - } -} *&gt;&amp;1 &gt;&gt; 'C:\Windows\Setup\Scripts\SetComputerName.log'; - </File> - <File path="C:\Windows\Setup\Scripts\RemovePackages.ps1" transformation="Text"> -$selectors = @( - 'Microsoft.Microsoft3DViewer'; - 'Microsoft.BingSearch'; - 'Microsoft.WindowsCalculator'; - 'Microsoft.WindowsCamera'; - 'Clipchamp.Clipchamp'; - 'Microsoft.WindowsAlarms'; - 'Microsoft.549981C3F5F10'; - 'Microsoft.Windows.DevHome'; - 'MicrosoftCorporationII.MicrosoftFamily'; - 'Microsoft.WindowsFeedbackHub'; - 'Microsoft.GetHelp'; - 'Microsoft.Getstarted'; - 'microsoft.windowscommunicationsapps'; - 'Microsoft.WindowsMaps'; - 'Microsoft.MixedReality.Portal'; - 'Microsoft.BingNews'; - 'Microsoft.MicrosoftOfficeHub'; - 'Microsoft.Office.OneNote'; - 'Microsoft.OutlookForWindows'; - 'Microsoft.MSPaint'; - 'Microsoft.People'; - 'Microsoft.Windows.Photos'; - 'Microsoft.PowerAutomateDesktop'; - 'MicrosoftCorporationII.QuickAssist'; - 'Microsoft.SkypeApp'; - 'Microsoft.MicrosoftSolitaireCollection'; - 'Microsoft.MicrosoftStickyNotes'; - 'MicrosoftTeams'; - 'MSTeams'; - 'Microsoft.Todos'; - 'Microsoft.WindowsSoundRecorder'; - 'Microsoft.Wallet'; - 'Microsoft.BingWeather'; - 'Microsoft.Xbox.TCUI'; - 'Microsoft.XboxApp'; - 'Microsoft.XboxGameOverlay'; - 'Microsoft.XboxGamingOverlay'; - 'Microsoft.XboxIdentityProvider'; - 'Microsoft.XboxSpeechToTextOverlay'; - 'Microsoft.GamingApp'; - 'Microsoft.YourPhone'; - 'Microsoft.ZuneMusic'; - 'Microsoft.ZuneVideo'; -); -$getCommand = { - Get-AppxProvisionedPackage -Online; -}; -$filterCommand = { - $_.DisplayName -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Remove-AppxProvisionedPackage -AllUsers -Online -ErrorAction 'Continue'; - } -}; -$type = 'Package'; -$logfile = 'C:\Windows\Setup\Scripts\RemovePackages.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\RemoveCapabilities.ps1" transformation="Text"> -$selectors = @( - 'Print.Fax.Scan'; - 'Language.Handwriting'; - 'Browser.InternetExplorer'; - 'MathRecognizer'; - 'OneCoreUAP.OneSync'; - 'OpenSSH.Client'; - 'Microsoft.Windows.PowerShell.ISE'; - 'App.Support.QuickAssist'; - 'Language.Speech'; - 'Language.TextToSpeech'; - 'App.StepsRecorder'; - 'Hello.Face.18967'; - 'Hello.Face.Migration.18967'; - 'Hello.Face.20134'; - 'Media.WindowsMediaPlayer'; - 'Microsoft.Windows.WordPad'; -); -$getCommand = { - Get-WindowsCapability -Online | Where-Object -Property 'State' -NotIn -Value @( - 'NotPresent'; - 'Removed'; - ); -}; -$filterCommand = { - ($_.Name -split '~')[0] -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Remove-WindowsCapability -Online -ErrorAction 'Continue'; - } -}; -$type = 'Capability'; -$logfile = 'C:\Windows\Setup\Scripts\RemoveCapabilities.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\RemoveFeatures.ps1" transformation="Text"> -$selectors = @( - 'MediaPlayback'; - 'MicrosoftWindowsPowerShellV2Root'; - 'Microsoft-RemoteDesktopConnection'; - 'Recall'; -); -$getCommand = { - Get-WindowsOptionalFeature -Online | Where-Object -Property 'State' -NotIn -Value @( - 'Disabled'; - 'DisabledWithPayloadRemoved'; - ); -}; -$filterCommand = { - $_.FeatureName -eq $selector; -}; -$removeCommand = { - [CmdletBinding()] - param( - [Parameter( Mandatory, ValueFromPipeline )] - $InputObject - ); - process { - $InputObject | Disable-WindowsOptionalFeature -Online -Remove -NoRestart -ErrorAction 'Continue'; - } -}; -$type = 'Feature'; -$logfile = 'C:\Windows\Setup\Scripts\RemoveFeatures.log'; -&amp; { - $installed = &amp; $getCommand; - foreach( $selector in $selectors ) { - $result = [ordered] @{ - Selector = $selector; - }; - $found = $installed | Where-Object -FilterScript $filterCommand; - if( $found ) { - $result.Output = $found | &amp; $removeCommand; - if( $? ) { - $result.Message = "$type removed."; - } else { - $result.Message = "$type not removed."; - $result.Error = $Error[0]; - } - } else { - $result.Message = "$type not installed."; - } - $result | ConvertTo-Json -Depth 3 -Compress; - } -} *&gt;&amp;1 &gt;&gt; $logfile; - </File> - <File path="C:\Windows\Setup\Scripts\Wifi.xml" transformation="Text"> -&lt;WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"&gt; - &lt;name&gt;Tricounty&lt;/name&gt; - &lt;SSIDConfig&gt; - &lt;SSID&gt; - &lt;hex&gt;547269636F756E7479&lt;/hex&gt; - &lt;name&gt;Tricounty&lt;/name&gt; - &lt;/SSID&gt; - &lt;/SSIDConfig&gt; - &lt;connectionType&gt;ESS&lt;/connectionType&gt; - &lt;connectionMode&gt;auto&lt;/connectionMode&gt; - &lt;MSM&gt; - &lt;security&gt; - &lt;authEncryption&gt; - &lt;authentication&gt;WPA2PSK&lt;/authentication&gt; - &lt;encryption&gt;AES&lt;/encryption&gt; - &lt;useOneX&gt;false&lt;/useOneX&gt; - &lt;/authEncryption&gt; - &lt;sharedKey&gt; - &lt;keyType&gt;passPhrase&lt;/keyType&gt; - &lt;protected&gt;false&lt;/protected&gt; - &lt;keyMaterial&gt;TCSEwifi19!&lt;/keyMaterial&gt; - &lt;/sharedKey&gt; - &lt;/security&gt; - &lt;/MSM&gt; -&lt;/WLANProfile&gt; - </File> - <File path="C:\Windows\Setup\Scripts\TaskbarLayoutModification.xml" transformation="Text"> -&lt;LayoutModificationTemplate xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" Version="1"&gt; - &lt;CustomTaskbarLayoutCollection PinListPlacement="Replace"&gt; - &lt;defaultlayout:TaskbarLayout&gt; - &lt;taskbar:TaskbarPinList&gt; - &lt;taskbar:DesktopApp DesktopApplicationLinkPath="#leaveempty" /&gt; - &lt;/taskbar:TaskbarPinList&gt; - &lt;/defaultlayout:TaskbarLayout&gt; - &lt;/CustomTaskbarLayoutCollection&gt; -&lt;/LayoutModificationTemplate&gt; - </File> - <File path="C:\Windows\Setup\Scripts\SetStartPins.ps1" transformation="Text"> -$json = '{"pinnedList":[]}'; -if( [System.Environment]::OSVersion.Version.Build -lt 20000 ) { - return; -} -$key = 'Registry::HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start'; -New-Item -Path $key -ItemType 'Directory' -ErrorAction 'SilentlyContinue'; -Set-ItemProperty -LiteralPath $key -Name 'ConfigureStartPins' -Value $json -Type 'String'; - </File> - <File path="C:\Windows\Setup\Scripts\SetColorTheme.ps1" transformation="Text"> -$lightThemeSystem = 1; -$lightThemeApps = 1; -$accentColorOnStart = 0; -$enableTransparency = 0; -$htmlAccentColor = '#0078D4'; -&amp; { - $params = @{ - LiteralPath = 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize'; - Force = $true; - Type = 'DWord'; - }; - Set-ItemProperty @params -Name 'SystemUsesLightTheme' -Value $lightThemeSystem; - Set-ItemProperty @params -Name 'AppsUseLightTheme' -Value $lightThemeApps; - Set-ItemProperty @params -Name 'ColorPrevalence' -Value $accentColorOnStart; - Set-ItemProperty @params -Name 'EnableTransparency' -Value $enableTransparency; -}; -&amp; { - Add-Type -AssemblyName 'System.Drawing'; - $accentColor = [System.Drawing.ColorTranslator]::FromHtml( $htmlAccentColor ); - - function ConvertTo-DWord { - param( - [System.Drawing.Color] - $Color - ); - - [byte[]] $bytes = @( - $Color.R; - $Color.G; - $Color.B; - $Color.A; - ); - return [System.BitConverter]::ToUInt32( $bytes, 0); - } - - $startColor = [System.Drawing.Color]::FromArgb( 0xD2, $accentColor ); - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent' -Name 'StartColorMenu' -Value( ConvertTo-DWord -Color $accentColor ) -Type 'DWord' -Force; - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent' -Name 'AccentColorMenu' -Value( ConvertTo-DWord -Color $accentColor ) -Type 'DWord' -Force; - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\DWM' -Name 'AccentColor' -Value( ConvertTo-DWord -Color $accentColor ) -Type 'DWord' -Force; - $params = @{ - LiteralPath = 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Accent'; - Name = 'AccentPalette'; - }; - $palette = Get-ItemPropertyValue @params; - $index = 20; - $palette[ $index++ ] = $accentColor.R; - $palette[ $index++ ] = $accentColor.G; - $palette[ $index++ ] = $accentColor.B; - $palette[ $index++ ] = $accentColor.A; - Set-ItemProperty @params -Value $palette -Type 'Binary' -Force; -}; - </File> - <File path="C:\Windows\Setup\Scripts\SetWallpaper.ps1" transformation="Text"> -Add-Type -TypeDefinition ' - using System.Drawing; - using System.Runtime.InteropServices; - - public static class WallpaperSetter { - [DllImport("user32.dll")] - private static extern bool SetSysColors( - int cElements, - int[] lpaElements, - int[] lpaRgbValues - ); - - [DllImport("user32.dll")] - private static extern bool SystemParametersInfo( - uint uiAction, - uint uiParam, - string pvParam, - uint fWinIni - ); - - public static void SetDesktopBackground(Color color) { - SystemParametersInfo(20, 0, "", 0); - SetSysColors(1, new int[] { 1 }, new int[] { ColorTranslator.ToWin32(color) }); - } - - public static void SetDesktopImage(string file) { - SystemParametersInfo(20, 0, file, 0); - } - } -' -ReferencedAssemblies 'System.Drawing'; - -function Set-WallpaperColor { - param( - [string] - $HtmlColor - ); - - $color = [System.Drawing.ColorTranslator]::FromHtml( $HtmlColor ); - [WallpaperSetter]::SetDesktopBackground( $color ); - Set-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers' -Name 'BackgroundType' -Type 'DWord' -Value 1 -Force; - Set-ItemProperty -Path 'Registry::HKCU\Control Panel\Desktop' -Name 'WallPaper' -Type 'String' -Value '' -Force; - Set-ItemProperty -Path 'Registry::HKCU\Control Panel\Colors' -Name 'Background' -Type 'String' -Value "$($color.R) $($color.G) $($color.B)" -Force; -} - -function Set-WallpaperImage { - param( - [string] - $LiteralPath - ); - - [WallpaperSetter]::SetDesktopImage( $LiteralPath ); - Set-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers' -Name 'BackgroundType' -Type 'DWord' -Value 0 -Force; - Set-ItemProperty -Path 'Registry::HKCU\Control Panel\Desktop' -Name 'WallPaper' -Type 'String' -Value $LiteralPath -Force; -} -Set-WallpaperColor -HtmlColor '#0978D3'; - </File> - <File path="C:\Windows\Setup\Scripts\unattend-01.cmd" transformation="Text"> -curl -L https://gitea.tcse.us/tricounty/tcse-deploy/archive/main.zip --output C:\Scripts.zip - </File> - <File path="C:\Windows\Setup\Scripts\unattend-02.ps1" transformation="Text"> -Expand-Archive -Path 'C:\Scripts.zip' -DestinationPath 'C:\Scripts' -timeout /t 30 - </File> - <File path="C:\Windows\Setup\Scripts\unattend-03.ps1" transformation="Text"> -Move-Item -Path 'C:\Scripts\tcse-deploy\*' -Destination 'C:\Scripts' -timeout /t 15 -Remove-Item -Path 'C:\Scripts\tcse-deploy\' -Remove-Item -Path 'C:\Scripts.zip' - </File> - <File path="C:\Windows\Setup\Scripts\unattend-04.cmd" transformation="Text"> -C:\Scripts\TCSE-Computer-Deploy.bat - </File> - <File path="C:\Windows\Setup\Scripts\Specialize.ps1" transformation="Text"> -$scripts = @( - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\GetComputerName.ps1' -Raw | Invoke-Expression &gt; 'C:\Windows\Setup\Scripts\ComputerName.txt'; - Start-Process -FilePath ( Get-Process -Id $PID ).Path -ArgumentList '-NoProfile', '-Command', 'Get-Content -LiteralPath "C:\Windows\Setup\Scripts\SetComputerName.ps1" -Raw | Invoke-Expression;' -WindowStyle 'Hidden'; - Start-Sleep -Seconds 10; - }; - { - reg.exe add "HKLM\SYSTEM\Setup\MoSetup" /v AllowUpgradesWithUnsupportedTPMOrCPU /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v BypassNRO /t REG_DWORD /d 1 /f; - }; - { - Remove-Item -LiteralPath 'Registry::HKLM\Software\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\DevHomeUpdate' -Force -ErrorAction 'SilentlyContinue'; - }; - { - Remove-Item -LiteralPath 'C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk', 'C:\Windows\System32\OneDriveSetup.exe', 'C:\Windows\SysWOW64\OneDriveSetup.exe' -ErrorAction 'Continue'; - }; - { - Remove-Item -LiteralPath 'Registry::HKLM\Software\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\OutlookUpdate' -Force -ErrorAction 'SilentlyContinue'; - }; - { - reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Communications" /v ConfigureChatAutoInstall /t REG_DWORD /d 0 /f; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemovePackages.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemoveCapabilities.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\RemoveFeatures.ps1' -Raw | Invoke-Expression; - }; - { - netsh.exe wlan add profile filename="C:\Windows\Setup\Scripts\Wifi.xml" user=all; - Remove-Item -LiteralPath 'C:\Windows\Setup\Scripts\Wifi.xml'; - }; - { - netsh.exe wlan connect name="Tricounty" ssid="Tricounty"; - }; - { - net.exe accounts /maxpwage:UNLIMITED; - }; - { - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\Explorer" /v "StartLayoutFile" /t REG_SZ /d "C:\Windows\Setup\Scripts\TaskbarLayoutModification.xml" /f; - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\Explorer" /v "LockedStartLayout" /t REG_DWORD /d 1 /f; - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableCloudOptimizedContent" /t REG_DWORD /d 1 /f; - }; - { - Set-ExecutionPolicy -Scope 'LocalMachine' -ExecutionPolicy 'RemoteSigned' -Force; - }; - { - reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Dsh" /v AllowNewsAndInterests /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\BitLocker" /v "PreventDeviceEncryption" /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v HideFirstRunExperience /t REG_DWORD /d 1 /f; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\SetStartPins.ps1' -Raw | Invoke-Expression; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to customize your Windows installation. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\Specialize.log"; - </File> - <File path="C:\Windows\Setup\Scripts\UserOnce.ps1" transformation="Text"> -$scripts = @( - { - Get-AppxPackage -Name 'Microsoft.Windows.Ai.Copilot.Provider' | Remove-AppxPackage; - }; - { - Set-ItemProperty -LiteralPath 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Search' -Name 'SearchboxTaskbarMode' -Type 'DWord' -Value 1; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\SetColorTheme.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\SetWallpaper.ps1' -Raw | Invoke-Expression; - }; - { - Get-Process -Name 'explorer' -ErrorAction 'SilentlyContinue' | Where-Object -FilterScript { - $_.SessionId -eq ( Get-Process -Id $PID ).SessionId; - } | Stop-Process -Force; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to configure this user account. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "$env:TEMP\UserOnce.log"; - </File> - <File path="C:\Windows\Setup\Scripts\DefaultUser.ps1" transformation="Text"> -$scripts = @( - { - reg.exe add "HKU\DefaultUser\Software\Policies\Microsoft\Windows\WindowsCopilot" /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f; - }; - { - Remove-ItemProperty -LiteralPath 'Registry::HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Run' -Name 'OneDriveSetup' -Force -ErrorAction 'Continue'; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowTaskViewButton /t REG_DWORD /d 0 /f; - }; - { - $names = @( - 'ContentDeliveryAllowed'; - 'FeatureManagementEnabled'; - 'OEMPreInstalledAppsEnabled'; - 'PreInstalledAppsEnabled'; - 'PreInstalledAppsEverEnabled'; - 'SilentInstalledAppsEnabled'; - 'SoftLandingEnabled'; - 'SubscribedContentEnabled'; - 'SubscribedContent-310093Enabled'; - 'SubscribedContent-338387Enabled'; - 'SubscribedContent-338388Enabled'; - 'SubscribedContent-338389Enabled'; - 'SubscribedContent-338393Enabled'; - 'SubscribedContent-353698Enabled'; - 'SystemPaneSuggestionsEnabled'; - ); - - foreach( $name in $names ) { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v $name /t REG_DWORD /d 0 /f; - } - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAl /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Policies\Microsoft\Windows\Explorer" /v DisableSearchBoxSuggestions /t REG_DWORD /d 1 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\DWM" /v ColorPrevalence /t REG_DWORD /d 0 /f; - }; - { - reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v "UnattendedSetup" /t REG_SZ /d "powershell.exe -NoProfile -Command \""Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\UserOnce.ps1' -Raw | Invoke-Expression;\""" /f; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to modify the default user&#x2019;&#x2019;s registry hive. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\DefaultUser.log"; - </File> - <File path="C:\Windows\Setup\Scripts\FirstLogon.ps1" transformation="Text"> -$scripts = @( - { - Set-ItemProperty -LiteralPath 'Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name 'AutoLogonCount' -Type 'DWord' -Force -Value 0; - }; - { - cmd.exe /c "rmdir C:\Windows.old"; - }; - { - C:\Windows\Setup\Scripts\unattend-01.cmd; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\unattend-02.ps1' -Raw | Invoke-Expression; - }; - { - Get-Content -LiteralPath 'C:\Windows\Setup\Scripts\unattend-03.ps1' -Raw | Invoke-Expression; - }; - { - C:\Windows\Setup\Scripts\unattend-04.cmd; - }; -); - -&amp; { - [float] $complete = 0; - [float] $increment = 100 / $scripts.Count; - foreach( $script in $scripts ) { - Write-Progress -Activity 'Running scripts to finalize your Windows installation. Do not close this window.' -PercentComplete $complete; - &amp; $script; - $complete += $increment; - } -} *&gt;&amp;1 &gt;&gt; "C:\Windows\Setup\Scripts\FirstLogon.log"; - </File> - </Extensions> -</unattend> \ No newline at end of file diff --git a/Patches/Windows/Update-TCSE-Deploy.bat b/Patches/Windows/Update-TCSE-Deploy.bat index b6eb6e4..b561083 100644 --- a/Patches/Windows/Update-TCSE-Deploy.bat +++ b/Patches/Windows/Update-TCSE-Deploy.bat @@ -1,18 +1,3 @@ -# Download TCSE Deploy Archive -curl -L https://gitea.tcse.us/tricounty/tcse-deploy/archive/main.zip --output C:\Scripts.zip +:: Download TCSE Deploy Archive +curl -L https://gitea.tcse.us/tricounty/tcse-deploy/raw/branch/main/TCSE-Login.bat --output C:\Scripts\TCSE-Login.bat -# Extract Archive to C:\Scripts & Remove Zip -powershell Expand-Archive -Path 'C:\Scripts.zip' -DestinationPath 'C:\Scripts' -timeout /t 30 - -# Cleanup Archive -Move-Item -Path 'C:\Scripts\tcse-deploy\*' -Destination 'C:\Scripts' -timeout /t 15 - -# Remove Leftovers -powershell Remove-Item -Path 'C:\Scripts.zip' -powershell Remove-Item -Path 'C:\Scripts\tcse-deploy' -powershell Remove-Item -Path 'C:\Scripts\Software\Office2016' -powershell Remove-Item -Path 'C:\Scripts\Software\RemoteAgent64-TCSE.exe' -powershell Remove-Item -Path 'C:\Scripts\Software\gcpwstandaloneenterprise64.exe' -powershell Remove-Item -Path 'C:\Scripts\Autounattend' diff --git a/TCSE-Computer-Deploy.bat b/TCSE-Computer-Deploy.bat index 57ad256..8e442b8 100644 --- a/TCSE-Computer-Deploy.bat +++ b/TCSE-Computer-Deploy.bat @@ -84,6 +84,13 @@ echo Copying Login Scripts to All Users... powershell Copy-Item 'C:\Scripts\TCSE-Login.vbs' 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup' echo Successfully Copied Login Scripts... +:: Remove Leftovers +powershell Remove-Item -Path 'C:\Scripts\tcse-deploy' +powershell Remove-Item -Path 'C:\Scripts.zip' +powershell Remove-Item -Path 'C:\Scripts\Software\Office2016' +powershell Remove-Item -Path 'C:\Scripts\Software\RemoteAgent64-TCSE.exe' +powershell Remove-Item -Path 'C:\Scripts\Software\gcpwstandaloneenterprise64.exe' + :: Perform Windows Updates powershell -ExecutionPolicy Bypass -File "C:\Scripts\Patches\Windows\Initial-Windows-Updates.ps1" @@ -93,12 +100,6 @@ Powercfg /x -standby-timeout-ac 60 :: Set PowerOptions so the monitor will go off after 15 minutes powercfg -change -monitor-timeout-ac 15 -:: Remove Leftovers -powershell Remove-Item -Path 'C:\Scripts\Software\Office2016' -powershell Remove-Item -Path 'C:\Scripts\Software\RemoteAgent64-TCSE.exe' -powershell Remove-Item -Path 'C:\Scripts\Software\gcpwstandaloneenterprise64.exe' -powershell Remove-Item -Path 'C:\Scripts\Autounattend' - :: Restart System echo Restarting system in 2.5 minutes... timeout /t 150