Skip to main content

Blog

The case of the empty Start Menu (Windows 10)

··5 mins
During a project I’m currently working on, with Windows 10, Citrix Xendesktop 7.9, XenServer 7.0 and RES ONE Workspace 2015 SR2 I stumbled upon a issue with RES ONE Workspace and the pinning of items in the Start Menu. I noticed that sometimes my Start Menu was empty, while I had items pinned when I logged off!? After some investigation with an engineer from RES Software, we managed to reproduce the issue in a closed test environment. At this point RES can try to fix the issue and at the time of writing no known solution is available. We still need to verify but as far as we know the issue is also still in the new version RES ONE Workspace 2016. We still needed a filled Start Menu for the time being, because currently there is no known date for the possible fix… So I created a PoSh script that will fill the Start Menu. (for the 2nd time, after the RES composer is finished) Yes I know not very pretty solution but it gets the job done and it’s a temporary fix. So here is the script I’ve made. (Building block is also available at the end for download)

Generate an Let's Encrypt certificate what can be used on the NetScaler

··1 min
Edit 07-04-2017: Check out my new and updated version! I’m trying to create an (PowerShell) script to automate the Let’s Encrypt certificate creation. Specifically for the Citrix NetScaler. Currently still Work In Progress… It’s not yet finished. The prerequisite is that you have a configured NetScaler (http) Content Switch vServer. The script will present you with the required configuration rules (it will also be copied to your clipboard so you only have to copy it in the cli of the NetScaler) For the meantime you can find it on GitHub: GenCertForNS on GitHub More soon (I hope)…

Remove AppX (Modern) Apps

·2 mins
With the following PowerShell script you can remove AppX Apps in Windows 8(.1) and 10. Note: The apps will be removed for the Current and New users only! <# To skip a AppX app while removing change "Remove" to "NoChange", the app will not be removed. #> $arrAppxApps = @() $arrAppxApps += ,@('Remove','6.4|10.0','*3DBuilder*') # Uninstall 3D Builder $arrAppxApps += ,@('Remove','6.4|10.0','*Appconnector*') # Uninstall $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*bingfinance*') # Uninstall Money $arrAppxApps += ,@('Remove','6.2|6.3','*BingFoodAndDrink*') # $arrAppxApps += ,@('Remove','6.2|6.3','*BingHealthAndFitness*') # $arrAppxApps += ,@('Remove','6.2|6.3','*BingMaps*') # $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*bingnews*') # Uninstall News $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*bingsports*') # Uninstall Sports $arrAppxApps += ,@('Remove','6.2|6.3','*BingTravel*') # $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*bingweather*') # Uninstall Weather $arrAppxApps += ,@('Remove','6.2|6.3','*Camera*') # $arrAppxApps += ,@('Remove','6.2|6.3','*OneDrive*') # $arrAppxApps += ,@('Remove','6.4|10.0','*getstarted*') # Uninstall Get Started $arrAppxApps += ,@('Remove','6.2|6.3','*HelpAndTips*') # $arrAppxApps += ,@('Remove','6.4|10.0','*officehub*') # Uninstall Get Office $arrAppxApps += ,@('Remove','6.4|10.0','*solitairecollection*') # Uninstall Microsoft Solitaire Collection $arrAppxApps += ,@('Remove','6.2|6.3','*Media.PlayReadyClient.2*') # 2x $arrAppxApps += ,@('Remove','6.2|6.3','*Media.PlayReadyClient.2*') # $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*onenote*') # Uninstall OneNote $arrAppxApps += ,@('Remove','6.4|10.0','*people*') # Uninstall People $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*skypeapp*') # Uninstall Get Skype $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*photos*') # Uninstall Photos $arrAppxApps += ,@('Remove','6.2|6.3','*Reader*') # $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*windowsalarms*') # Uninstall Alarms and Clock $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*windowscalculator*') # Uninstall Calculator $arrAppxApps += ,@('Remove','6.4|10.0','*windowscamera*') # Uninstall Camera $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*windowscommunicationsapps*') # Uninstall Calendar and Mail $arrAppxApps += ,@('Remove','6.4|10.0','*windowsmaps*') # Uninstall Maps $arrAppxApps += ,@('Remove','6.4|10.0','*windowsphone*') # Uninstall Phone Companion $arrAppxApps += ,@('Remove','6.2|6.3','*WindowsReadingList*') # $arrAppxApps += ,@('Remove','6.4|10.0','*soundrecorder*') # Uninstall Voice Recorder $arrAppxApps += ,@('Remove','6.2|6.3','*WindowsScan*') # $arrAppxApps += ,@('Remove','6.4|10.0','*windowsstore*') # Uninstall Store $arrAppxApps += ,@('Remove','6.4|10.0','*xboxapp*') # Uninstall Xbox $arrAppxApps += ,@('Remove','6.2|6.3','*XboxLIVEGames*') # $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*zunemusic*') # Uninstall Groove Music $arrAppxApps += ,@('Remove','6.2|6.3|6.4|10.0','*zunevideo*') # Uninstall Movies & TV Write-Host -ForegroundColor White "Removing Appx Apps" Write-Verbose '' foreach ($AppxApp in $arrAppxApps) { Write-Host -NoNewline -ForegroundColor Gray " -" $AppxApp[2] Switch ($AppxApp[0]) { "NoChange" { Write-Host -ForegroundColor Yellow " (skipped) No changes made" } "Remove" { if ($AppxApp[1] -Match ($varWinVer)) { Try { Get-AppxPackage | Where-Object {$_.PackageFullName -like $AppxApp[2]} | Remove-AppxPackage -ErrorAction SilentlyContinue | Out-Null Get-AppxPackage -allusers | Where-Object {$_.PackageFullName -like $AppxApp[2]} | Remove-AppxPackage -ErrorAction SilentlyContinue | Out-Null Get-AppxProvisionedPackage -Online | Where-Object {$_.packagename -like $AppxApp[2]} | Remove-ProvisionedAppxPackage -Online -ErrorAction SilentlyContinue | Out-Null } Catch { Write-Host -ForegroundColor Red (" (error)") $FailedItem = $_.Exception.ItemName Write-Verbose ('Caught an error') Write-Verbose ('ErrorMessage: ' + $ErrorMessage) Write-Verbose ('FailedItem: ' + $FailedItem) continue } Finally { Write-Host -ForegroundColor Green (" (done)") } } Else { Write-Host -ForegroundColor Yellow " (skipped) not applicable to this OS" } } } }

OptimizeEndpoint

·1 min
I’ve been using my “Windows optimize script” for a while now. Most issues are resolved and it’s been tested thoroughly. So I thought why not give it back to the community, so here it is: OptimizeEndpoint. It can be used to optimize Windows 7, 8, 8.1 and 10. (It can also be used for Windows Server versions, but this is not tested) I used the script made by Ingmar Verheij, and made some changes. It contains most of the Citrix XenDesktop Best Practices. Please don’t run the script without reviewing the options, it can damage you master image if you’re not careful! At the top of the image there are some parameters that can be set. Read the comments. Run it on your own risk. If you have issues or questions let me know.

Provisioning Target Device Unattended Deployment

··1 min
When deployoing the Citrix PVS Target Device software with for example SCCM or RES ONE Automation, this fails. As it turns out “CFsDep2.sys” is missing from the System32\Drivers directory. This is because during the (unattended) installation of the Target Device software the installation of “CFsDep2” fails. When you install the software by hand, everything is works as it should. This can be solved to run the following command after the installation of the Target Device Software.

CtxVdDrain Script

·1 min
I released also my CtxVdDrain Script, this script will put any selected XenDesktop Machine catalog in maintenance mode and turn it of where possible. It won’t kick users out of their desktops, it will wait and try again. You can download it here

CtxVdContinuousShutdown Script

·1 min
For a customer we needed a solution to recycle “old” PVS Virtual Desktops. And because Citrix XenDesktop doesn’t use the oldest desktops first (without using power options), we had to come up with a solution. And so my Shutdown Script was born. The script basically checks which Virtual Machines are the oldest, puts them in maintenance mode so no user can use it anymore. After this is done the vm’s are given a shutdown command. When their down , maintenance mode will be turned off. You can get it here.

CtxVdStatus Script

·1 min
Today I decided to put my CtxVdStatus script on GitHub. With this script you can get an overview of your Citrix XenDesktop environment. It helped me to troubleshoot some issues. You can download/view it here

Citrix Provisioning Services Versions 7.x (current) Available Updates

·1 min
Here you will find a list of the latest Citrix Provisioning Services Updates. I will do my best to update the list as soon as there are new updates available. Citrix Provisioning Services 7.6 (Server) Provisioning Services 7.6 Cumulative Update 1 for Server and Console x86 http://support.citrix.com/article/CTX142613 Replaces: None (yet) Provisioning Services 7.6 Cumulative Update 1 for Server and Console x64 http://support.citrix.com/article/CTX142614 Replaces: None (yet) Citrix Provisioning Services 7.6 (Target) Provisioning Services 7.6 Cumulative Update 1 for Target Device x86 http://support.citrix.com/article/CTX142615 Replaces: None (yet) Provisioning Services 7.6 Cumulative Update 1 for Target Device x64 http://support.citrix.com/article/CTX142616 Replaces: None (yet) Citrix Provisioning Services 7.1 (Server) Hotfix PVS710ServerConsoleWX86004 for PVS Server and Console 7.1 x86 http://support.citrix.com/article/CTX142336 Replaces: All Other Versions Hotfix PVS710ServerConsoleWX64004 for PVS Server and Console 7.1 x64 http://support.citrix.com/article/CTX142406 Replaces: All Other Versions Citrix Provisioning Services 7.1 (Target) Hotfix PVS710TargetDeviceWX86004 for PVS Target Device 7.1 x86 http://support.citrix.com/article/CTX142333 Replaces: All Other Versions Hotfix PVS710TargetDeviceWX64004 for PVS Target Device 7.1 x64 http://support.citrix.com/article/CTX142397 Replaces: All Other Versions

Profile

·1 min
Hex Mask Dec. Description 0001 1 Profile is mandatory. 0002 2 Update the locally cached profile. 0004 4 New local profile. 0008 8 New central profile. 0010 16 Update the central profile. 0020 32 Delete the cached profile. 0040 64 Upgrade the profile. 0080 128 Using Guest user profile. 0100 256 Using Administrator profile. 0200 512 Default net profile is available and ready. 0400 1024 Slow network link identified. 0800 2048 Temporary profile loaded.