sync: auto-sync from HOWARD-HOME at 2026-07-17 14:14:41
Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-07-17 14:14:41
This commit is contained in:
70
clients/cascades-tucson/scripts/setup-logon-script.ps1
Normal file
70
clients/cascades-tucson/scripts/setup-logon-script.ps1
Normal file
@@ -0,0 +1,70 @@
|
||||
Import-Module GroupPolicy
|
||||
$guid = '32d76052-4d92-446c-95fb-614653f84742'
|
||||
|
||||
# 1. Write the logon script to SYSVOL (netlogon share)
|
||||
$scriptContent = @'
|
||||
@echo off
|
||||
REM Deploy caregiver desktop shortcuts
|
||||
if not exist "%USERPROFILE%\Desktop\ALIS.url" (
|
||||
echo [InternetShortcut] > "%USERPROFILE%\Desktop\ALIS.url"
|
||||
echo URL=https://cascadestucson.alisonline.com/ >> "%USERPROFILE%\Desktop\ALIS.url"
|
||||
)
|
||||
if not exist "%USERPROFILE%\Desktop\PharmCare.url" (
|
||||
echo [InternetShortcut] > "%USERPROFILE%\Desktop\PharmCare.url"
|
||||
echo URL=https://pharmcare.linkrxnow.com/ >> "%USERPROFILE%\Desktop\PharmCare.url"
|
||||
)
|
||||
if not exist "%USERPROFILE%\Desktop\Helpany.url" (
|
||||
echo [InternetShortcut] > "%USERPROFILE%\Desktop\Helpany.url"
|
||||
echo URL=https://app.helpany.com/start >> "%USERPROFILE%\Desktop\Helpany.url"
|
||||
)
|
||||
'@
|
||||
$netlogon = "\\cascades.local\SYSVOL\cascades.local\scripts"
|
||||
Set-Content "$netlogon\deploy-caregiver-shortcuts.bat" $scriptContent -Force
|
||||
Write-Output "Logon script written to: $netlogon\deploy-caregiver-shortcuts.bat"
|
||||
|
||||
# 2. Remove the broken GPP Shortcuts.xml
|
||||
$xmlDir = "\\cascades.local\SYSVOL\cascades.local\Policies\{$guid}\User\Preferences\Shortcuts"
|
||||
if (Test-Path $xmlDir) {
|
||||
Remove-Item $xmlDir -Recurse -Force
|
||||
Write-Output "Removed GPP Shortcuts dir"
|
||||
}
|
||||
|
||||
# 3. Set the logon script on the kiosk GPO
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0\0' -ValueName 'Script' -Type String -Value 'deploy-caregiver-shortcuts.bat' | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0\0' -ValueName 'Parameters' -Type String -Value '' | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0\0' -ValueName 'IsPowershell' -Type DWord -Value 0 | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0' -ValueName 'GPO-ID' -Type String -Value "cn={$guid},cn=policies,cn=system,DC=cascades,DC=local" | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0' -ValueName 'SOM-ID' -Type String -Value 'OU=Caregiver Devices,OU=Staff PCs,OU=Workstations,DC=cascades,DC=local' | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0' -ValueName 'FileSysPath' -Type String -Value "\\cascades.local\SysVol\cascades.local\Policies\{$guid}\User\Scripts\Logon" | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0' -ValueName 'DisplayName' -Type String -Value 'CSC - Nurse Station Kiosk' | Out-Null
|
||||
Set-GPRegistryValue -Guid $guid -Key 'HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon\0' -ValueName 'GPOName' -Type String -Value $guid | Out-Null
|
||||
Write-Output "Logon script GPO registry entries set"
|
||||
|
||||
# 4. Also copy the bat into the GPO's own scripts folder
|
||||
$gpoScripts = "\\cascades.local\SYSVOL\cascades.local\Policies\{$guid}\User\Scripts\Logon"
|
||||
New-Item -ItemType Directory -Path $gpoScripts -Force | Out-Null
|
||||
Copy-Item "$netlogon\deploy-caregiver-shortcuts.bat" "$gpoScripts\deploy-caregiver-shortcuts.bat" -Force
|
||||
Write-Output "Script copied to GPO scripts folder"
|
||||
|
||||
# 5. Write scripts.ini
|
||||
$ini = "[Logon]`r`n0CmdLine=deploy-caregiver-shortcuts.bat`r`n0Parameters=`r`n"
|
||||
Set-Content "$gpoScripts\scripts.ini" $ini -Force
|
||||
Write-Output "scripts.ini written"
|
||||
|
||||
# 6. Update CSE GUIDs for Scripts
|
||||
$scriptsCSE = '[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]'
|
||||
$dn = "CN={$guid},CN=Policies,CN=System,DC=cascades,DC=local"
|
||||
Set-ADObject $dn -Replace @{gPCUserExtensionNames=$scriptsCSE}
|
||||
Write-Output "CSE GUIDs set for Scripts"
|
||||
|
||||
# 7. Bump version
|
||||
$gptPath = "\\cascades.local\SYSVOL\cascades.local\Policies\{$guid}\GPT.INI"
|
||||
$gptIni = Get-Content $gptPath -Raw
|
||||
$gptIni = $gptIni -replace 'gPCUserExtensionNames=.*', "gPCUserExtensionNames=$scriptsCSE"
|
||||
if ($gptIni -match 'Version=(\d+)') {
|
||||
$ver = [int]$matches[1]; $newVer = ((($ver -shr 16)+1) -shl 16) -bor ($ver -band 0xFFFF)
|
||||
$gptIni = $gptIni -replace "Version=\d+", "Version=$newVer"
|
||||
}
|
||||
Set-Content $gptPath $gptIni -Force
|
||||
Write-Output "GPT.INI updated"
|
||||
Get-Content $gptPath
|
||||
Reference in New Issue
Block a user