Jump to content

MartinByard

Members
  • Posts

    149
  • Joined

  • Last visited

Reputation

439 Excellent

About MartinByard

Personal Information

  • Occupation
    IT Development Specialist
  • Location
    Leeds

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. We deploy both Visual Studio Community Edition and VS Code. Visual Studio is deployed with a standard set of workflows and plugins installed that we have been asked to include, but also with the reg policies in place to enable non-admins to update and modify it as needed. Powershell Snippet of that bit: Write-Host "Creating VisualStudio Setup Reg Key" if(!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\VisualStudio\Setup")){ New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\VisualStudio -Name Setup -Force } Write-Host "Creating AllowStandardUserControl Reg Value" New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\VisualStudio\Setup -Name AllowStandardUserControl -PropertyType DWORD -Value 2 -Force VS Code is deployed with a standard set of plugins copied into the Program Files folder so that they are installed and present for all users.
  2. Can you put a shortcut to it (with the /clone switch) in the public startup folder in the start menu, that way it will apply once someone has logged in. It won't help pre-login, but would work once they are logged in and running apps.
  3. Link: Download Notepad++ v8.8.9 (Vulnerability Fix) In case people haven't seen, Notepad++ have released a new version which patches a vulnerability in its update method that is actively being exploited.
  4. We use Planet eStream, and you can get a linux version of the signage player that will run on Raspberry Pi's quickstart guide here.
  5. I knew there was something that was missing the in the Education plan, that sounds more likely than no SSO at all (although as I said, it was a while ago when I last looked into it).
  6. Just to note on the Autodesk and SSO etc. Last time I looked into it (was a while ago, so might have changed now), this was possible on the paid for Enterprise plan - but not the free Education plan.
  7. We used to do method 2, but that stopped working reliably and so have switched to method 1, and it seems to be pretty rock solid for us.
  8. We've been having problems with this when moving to 24H2. Traditionally we would pin things to create a start menu we wanted, and then copy the start2.bin file into the default user and then "it just worked" for all other new users (we do it in our SCCM task sequence). It has been very hit and miss for us on 24H2. I managed to find this https://github.com/letsdoautomation/powershell/blob/main/Export-StartLayout%2C Import-StartLayout alternatives for Windows 11/README.md, which aims to replicate the reg keys that are created when InTune is managing the start menu for you. It seems to be rock solid so far, but as with anything test it yourself before rolling it out everywhere. The apps we've added to our start menu are: "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Word.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Excel.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\OneNote.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PowerPoint.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office 365.lnk", "C:\Users\%username%\Appdata\Roaming\Microsoft\Windows\Start Menu\Programs\File Explorer.lnk", "MSTeams_8wekyb3d8bbwe!MSTeams", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Log Off.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Take a Break.lnk"
  9. At the minute we run this script in our SCCM task sequence whilst the machine is still in the WinPE phase: # *************************************************************************** # # File: RemoveApps.ps1 # # Version: 1.2 # # Author: Michael Niehaus # # Purpose: Removes some or all of the in-box apps on Windows 8, Windows 8.1, # or Windows 10 systems. The script supports both offline and # online removal. By default it will remove all apps, but you can # provide a separate RemoveApps.xml file with a list of apps that # you want to instead remove. If this file doesn't exist, the # script will recreate one in the log or temp folder, so you can # run the script once, grab the file, make whatever changes you # want, then put the file alongside the script and it will remove # only the apps you specified. # # Usage: This script can be added into any MDT or ConfigMgr task sequences. # It has a few dependencies: # 1. For offline use in Windows PE, the .NET Framework, # PowerShell, DISM Cmdlets, and Storage cmdlets must be # included in the boot image. # 2. Script execution must be enabled, e.g. "Set-ExecutionPolicy # Bypass". This can be done via a separate task sequence # step if needed, see http://blogs.technet.com/mniehaus for # more information. # # ------------- DISCLAIMER ------------------------------------------------- # This script code is provided as is with no guarantee or waranty concerning # the usability or impact on systems and may be used, distributed, and # modified in any way provided the parties agree and acknowledge the # Microsoft or Microsoft Partners have neither accountabilty or # responsibility for results produced by use of this script. # # Microsoft will not provide any support through any means. # ------------- DISCLAIMER ------------------------------------------------- # # *************************************************************************** # --------------------------------------------------------------------------- # Initialization # --------------------------------------------------------------------------- if ($env:SYSTEMDRIVE -eq "X:") { $script:Offline = $true # Find Windows $drives = get-volume | ? {-not [String]::IsNullOrWhiteSpace($_.DriveLetter) } | ? {$_.DriveType -eq 'Fixed'} | ? {$_.DriveLetter -ne 'X'} $drives | ? { Test-Path "$($_.DriveLetter):\Windows\System32"} | % { $script:OfflinePath = "$($_.DriveLetter):\" } Write-Verbose "Eligible offline drive found: $script:OfflinePath" } else { Write-Verbose "Running in the full OS." $script:Offline = $false } # --------------------------------------------------------------------------- # Get-LogDir: Return the location for logs and output files # --------------------------------------------------------------------------- function Get-LogDir { try { $ts = New-Object -ComObject Microsoft.SMS.TSEnvironment -ErrorAction Stop if ($ts.Value("LogPath") -ne "") { $logDir = $ts.Value("LogPath") } else { $logDir = $ts.Value("_SMSTSLogPath") } } catch { $logDir = $env:TEMP } return $logDir } # --------------------------------------------------------------------------- # Get-AppList: Return the list of apps to be removed # --------------------------------------------------------------------------- function Get-AppList { begin { # Look for a config file. $configFile = "$PSScriptRoot\RemoveApps11.xml" if (Test-Path -Path $configFile) { # Read the list Write-Verbose "Reading list of apps from $configFile" $list = Get-Content $configFile } else { # No list? Build one with all apps. Write-Verbose "Building list of provisioned apps" $list = @() if ($script:Offline) { Get-AppxProvisionedPackage -Path $script:OfflinePath | % { $list += $_.DisplayName } } else { Get-AppxProvisionedPackage -Online | % { $list += $_.DisplayName } } # Write the list to the log path $logDir = Get-LogDir $configFile = "$logDir\RemoveApps.xml" $list | Set-Content $configFile Write-Information "Wrote list of apps to $logDir\RemoveApps.xml, edit and place in the same folder as the script to use that list for future script executions" } Write-Information "Apps selected for removal: $list.Count" } process { $list } } # --------------------------------------------------------------------------- # Remove-App: Remove the specified app (online or offline) # --------------------------------------------------------------------------- function Remove-App { [CmdletBinding()] param ( [parameter(Mandatory=$true,ValueFromPipeline=$true)] [string] $appName ) begin { # Determine offline or online if ($script:Offline) { $script:Provisioned = Get-AppxProvisionedPackage -Path $script:OfflinePath } else { $script:Provisioned = Get-AppxProvisionedPackage -Online $script:AppxPackages = Get-AppxPackage } } process { $app = $_ # Remove the provisioned package Write-Information "Removing provisioned package $_" $current = $script:Provisioned | ? { $_.DisplayName -eq $app } if ($current) { if ($script:Offline) { $a = Remove-AppxProvisionedPackage -Path $script:OfflinePath -PackageName $current.PackageName } else { $a = Remove-AppxProvisionedPackage -Online -PackageName $current.PackageName } } else { Write-Warning "Unable to find provisioned package $_" } # If online, remove installed apps too if (-not $script:Offline) { Write-Information "Removing installed package $_" $current = $script:AppxPackages | ? {$_.Name -eq $app } if ($current) { $current | Remove-AppxPackage } else { Write-Warning "Unable to find installed app $_" } } } } # --------------------------------------------------------------------------- # Main logic # --------------------------------------------------------------------------- $logDir = Get-LogDir Start-Transcript "$logDir\RemoveApps.log" Get-AppList | Remove-App Stop-Transcript with this in an xml file in the location with the name from the script: Clipchamp.Clipchamp Microsoft.549981C3F5F10 Microsoft.BingNews Microsoft.BingWeather Microsoft.GamingApp Microsoft.GetHelp Microsoft.Getstarted Microsoft.MicrosoftOfficeHub Microsoft.MicrosoftSolitaireCollection Microsoft.People Microsoft.PowerAutomateDesktop Microsoft.SecHealthUI Microsoft.Todos Microsoft.WindowsAlarms microsoft.windowscommunicationsapps Microsoft.WindowsFeedbackHub Microsoft.WindowsMaps Microsoft.WindowsSoundRecorder Microsoft.Xbox.TCUI Microsoft.XboxGameOverlay Microsoft.XboxGamingOverlay Microsoft.XboxIdentityProvider Microsoft.XboxSpeechToTextOverlay Microsoft.YourPhone Microsoft.ZuneMusic Microsoft.ZuneVideo This seems to give us a relatively clean install.
  10. Yes, thats what we do - on a weekly schedule every sunday morning it checks for incremental updates. We did have it doing the cleanup as well, but it would intermittently remove things it shouldn't (e.g all Photoshop downloads) so we removed that and just keep an eye on the disk space its using and when it runs out run a --fresh command to remove everything and start again.
  11. Just after christmas I bought myself some new bits from CCL (http://www.cclonline.com, although I did click and collect as its relatively local to me) and am very happy with them. AMD Ryzen 5 9600x, ASUS ROG Strix B650-E mobo, 32Gb Corsair Vengance RAM, Noctua NH-D15 cooler,, Gigabyte RTX 4070 GPU, 1Tb WD SN850x NVMe SSD, Fractal Define 7 case.
  12. We do it through SCCM/MECM through a simple batch file (not got round to converting it to a powershell script yet), using the .exe. start /wait npp.8.6.4.Installer.x64.exe /S copy .\config.model.xml "C:\Program Files\Notepad++\config.model.xml" /Y The .xml file is so that we can control and force some settings, but would not necessarily be needed for others.
  13. We do it in our OSD task sequence, and we break it down so we install each app seperately (with the needed edits made when the package is created in the console) and use the setup.exe with the --silent switch.
  14. We've had our AUSST server up and running for a while now, and have got our override details input into the Admin control panel in the cloud so when we create the Adobe packages to install the apps, the overrides are already present. Then we have a scheduled task that runs the remote update manager (also added as part of the package created from the admin control panel), which runs once a week (probably a bit too often, but our feeling was better safe than sorry) late friday afternoon / early evening. $DT = Get-date -Format yyMMdd if(!(Test-Path "C:\Windows\Logs\Adobe_RUM")){ New-Item -Path "C:\Windows\Logs" -Name "Adobe_RUM" -ItemType Directory -Force } Start-Transcript -Path C:\Windows\Logs\Adobe_RUM\Adobe_RUM_$DT.log -Force $StartTime = Get-date -Format HHmm Write-Host "Started at $StartTime" Start-Process -FilePath "C:\Program Files (x86)\Common Files\Adobe\OOBE_Enterprise\RemoteUpdateManager\RemoteUpdateManager.exe" -Wait If(Test-Path 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adobe\Adobe*.lnk'){ Move-Item -Path 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adobe*.lnk' -Destination 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adobe' -Force -Verbose } $StopTime = Get-date -Format HHmm Write-Host "Started at $StopTime" Stop-Transcript The main thing to remeber (if it applies to you) is that for whatever reason macOS devices can't use it, if you give them the override then they will just sit there doing nothing.
  15. We bought some 255 models during covid and had an issue with the driver packs, I think its due to these being from the Home range and not being an Enterprise model - thus there are no driver packs available for enterprises to use. I ended up letting one build using the factory image, making sure everything was installed and the latest version (at the time) and then creating a driver pack from that machine: [color=#0101FD][font=SFMono-Regular]Export-WindowsDriver[/font][/color][color=#006881][font=SFMono-Regular] -Online[/font][/color][color=#006881][font=SFMono-Regular] -Destination[/font][/color][color=#161616][font=SFMono-Regular] C:\HP255_drivers[/font][/color]
×
×
  • Create New...