Files
pxe-server/playbook/shopfloor-setup/Shopfloor/03-StartMenu.ps1
cproudlock 9912b044a3 Shopfloor: single autologon, clear Start pins, Intune sync tool, update docs
- AutoLogonCount reduced from 2 to 1 in Run-ShopfloorSetup.ps1
- Remove default pinned Start Menu tiles and set blank layout for future users
- Add sync_intune.bat: triggers MDM sync and polls for SFLD group policies
- Update README.md and SETUP.md with current project state (boot chain, new
  scripts, samba shares, webapp pages, commit history)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 09:43:00 -04:00

77 lines
3.4 KiB
PowerShell

# 03-StartMenu.ps1 — Create Start Menu shortcuts for all users (baseline)
# Shortcuts in ProgramData\Microsoft\Windows\Start Menu\Programs\ persist for all accounts.
# --- Remove all default pinned Start Menu tiles ---
# Unpin tiles for the current user
try {
$shell = New-Object -ComObject Shell.Application
$shell.NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ForEach-Object {
$_.Verbs() | Where-Object { $_.Name -match 'Unpin from Start|Un.*pin' } | ForEach-Object { $_.DoIt() }
}
Write-Host "Unpinned all default Start Menu tiles for current user."
} catch {
Write-Warning "Could not unpin Start tiles: $_"
}
# Set blank layout for future user profiles
$blankLayout = @"
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
"@
$layoutDir = "C:\Users\Default\AppData\Local\Microsoft\Windows\Shell"
if (-not (Test-Path $layoutDir)) { New-Item -Path $layoutDir -ItemType Directory -Force | Out-Null }
$blankLayout | Out-File -FilePath "$layoutDir\LayoutModification.xml" -Encoding UTF8 -Force
Write-Host "Set blank Start Menu layout for future users."
$startMenu = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs"
$shell = New-Object -ComObject WScript.Shell
# --- Defect Tracker ---
$lnk = $shell.CreateShortcut("$startMenu\Defect Tracker.lnk")
$lnk.TargetPath = "S:\DT\Defect_Tracker\Defect_Tracker.application"
$lnk.Save()
Write-Host "Created Start Menu shortcut: Defect Tracker"
# --- Plant Applications (Edge) ---
$lnk = $shell.CreateShortcut("$startMenu\Plant Applications.lnk")
$lnk.TargetPath = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
$lnk.Arguments = "https://mes-wjefferson.apps.lr.geaerospace.net/run/?app_name=Plant%20Applications"
$lnk.Save()
Write-Host "Created Start Menu shortcut: Plant Applications"
# --- ShopDB ---
$lnk = $shell.CreateShortcut("$startMenu\ShopDB.lnk")
$lnk.TargetPath = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
$lnk.Arguments = "http://tsgwp00524.logon.ds.ge.com"
$lnk.Save()
Write-Host "Created Start Menu shortcut: ShopDB"
# --- Shopfloor Dashboard ---
$lnk = $shell.CreateShortcut("$startMenu\Shopfloor Dashboard.lnk")
$lnk.TargetPath = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
$lnk.Arguments = "https://tsgwp00525.wjs.geaerospace.net/shopdb/shopfloor-dashboard/"
$lnk.Save()
Write-Host "Created Start Menu shortcut: Shopfloor Dashboard"
# --- ShopDB (GEA) ---
$lnk = $shell.CreateShortcut("$startMenu\ShopDB (GEA).lnk")
$lnk.TargetPath = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
$lnk.Arguments = "https://tsgwp00525.wjs.geaerospace.net/shopdb/"
$lnk.Save()
Write-Host "Created Start Menu shortcut: ShopDB (GEA)"
# --- Add more shortcuts below ---
# $lnk = $shell.CreateShortcut("$startMenu\AppName.lnk")
# $lnk.TargetPath = "C:\Path\To\App.exe"
# $lnk.Save()
Write-Host "Start Menu shortcuts complete."