shortcuts mentioned in `I never knew Windows had a "hidden" collection of tools` article


Recommended Posts

Posted (edited)


Hello,

In @Usama Jawad96's I never knew Windows had a "hidden" collection of tools article, I had posted a list of a number of shortcuts I had added to my Windows 11 Start Menu for ease of access to various utilities built into Windows.

I got a few likes and questions about it, so I put a link up to a .ZIPped archive of the shortcuts here on OneDrive, but I also received some additional feedback from @thartist and @binaryzero, who asked if a scripted version was available to create these shortcuts  As this is something I had built organically by adding one or two at a time over many years starting in the Windows 95 era, I never got around to scripting them; instead just copying them to new systems as part of my customization and tweaking process.  Still, that sounded like an interesting idea.

The exact location on my computer is C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft\Tools\, however, I did not want to share something that made global changes like that to peoples' systems, so this script creates a C:\Temp\Shortcuts\ directory for its first command, and then creates the shortcuts in that location.  I figure that anyone who wishes to use them can move them to a more suitable location on their computer.  

New-Item -Path "c:\temp\shortcuts" -ItemType Directory -Force

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Add or Remove a Program.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\appwiz.cpl"
$Shortcut.IconLocation = "%windir%\System32\appwiz.cpl,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Adjust DPI Scaling.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\DpiScaling.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Backup and Restore User Credentials.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\credwiz.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Calculator.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "calculator:///"
$Shortcut.IconLocation = "%windir%\System32\calc.exe,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Color Management.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\colorcpl.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Create a Repair Disc.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\recdisc.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Create a user for this PC.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "ms-cxh:localonly"
$Shortcut.IconLocation = "%windir%\System32\Netplwiz.exe,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\DirectX Diagnostics.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\dxdiag.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Disk Indexing Options.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\rundll32.exe shell32.dll,Control_RunDLL srchadmin.dll"
$Shortcut.IconLocation = "%windir%\System32\srchadmin.dll,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Installation Express.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\iexpress.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Internet Explorer Control Panel.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\inetcpl.cpl"
$Shortcut.IconLocation = "%windir%\System32\inetcpl.cpl,26"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\KGL Check.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "ms-gamingoverlay://kglcheck/"
$Shortcut.IconLocation = "%windir%\System32\GamePanel.exe,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Local Machine Certificate Manager.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\certlm.msc"
$Shortcut.IconLocation = "%windir%\System32\certmgr.dll,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Local User and Groups Manager.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\lusrmgr.msc"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Local User and Groups Manager.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\lusrmgr.msc"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Manage All Users.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\control.exe userpasswords2"
$Shortcut.IconLocation = "%windir%\System32\Netplwiz.exe,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Manage Current User.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\control.exe userpasswords"
$Shortcut.IconLocation = "%windir%\System32\Netplwiz.exe,0"
$Shortcut.Save()

# The Microsoft Media Creation Tool is not installed by default and can be
# downloaded from Microsoft's website.  This shortcut assumes the program
# has been saved to the location specified in the shortcut's Target.Path
$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Media Creation Tool.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%ProgramFiles(x86)%\Microsoft\Media Creation Tool\MediaCreationTool.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Microsoft Support Diagnostic Tool.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\msdt.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Network Connections.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\ncpa.cpl"
$Shortcut.IconLocation = "%windir%\System32\ncpa.cpl,0"
$Shortcut.Save()

# originally this was "C:\Windows\System32\control.exe netconnections" but 
# PowerShell 7 had trouble processing that, so I substituted a shell:::
# command with a GUID, which seems to work fine
$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Network Properties.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "shell:::{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\ODBC Data Source Administrator.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\odbcad32.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\On-Screen Keyboard.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\osk.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Private Character Editor.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\eudcedit.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Problem Steps Recorder.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\psr.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Registry Editor.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\regedit.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Registry Editor32.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\regedt32.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\System Configuration Utility.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\msconfig.exe"
$Shortcut.IconLocation = "%windir%\System32\msconfig.exe,0"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\System Information.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\msinfo32.exe"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\TPM Management.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\tpm.msc"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Windows Firewall.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "%windir%\System32\wf.msc"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\Windows Update.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "ms-settings:windowsupdate?winsettingshome"
$Shortcut.IconLocation = "%windir%\System32\shell32.dll,314"
$Shortcut.Save()

$WshShell = New-Object -ComObject WScript.Shell
$ShortcutPath = "c:\temp\shortcuts\WLTUC.lnk"
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = "ms-cxh://WLTUC/"
$Shortcut.IconLocation = "%windir%\System32\Netplwiz.exe,0"
$Shortcut.Save() 

This was done quickly by me and with minimal testing under Windows 11 25H2 and PowerShell 7.  I will be the first to admit I am not that great at PowerShell, so please review carefully and test extensively.

If anyone has questions, constructive feedback, suggestions for improvement, etc., feel free to reply.

Regards,

Aryeh Goretsky

 

Edited by goretsky
updated for clarity

Hey, it's cool that you bothered to do it and mention us, i don't need it btw but I'm following along, but I wonder if instead of that C:\temp\shortcuts dir, you couldn't better use a system variable like %user%\Desktop\Shortcuts or however they're used? Would be tidier, right?

<#
.SYNOPSIS
    Creates Windows shortcut (.lnk) files for common tools/settings.

.DESCRIPTION
    Builds shortcuts in the target folder using WScript.Shell.
    Refactored to avoid repeated code by using a helper function and a shortcut definition list.

.PARAMETER ShortcutRoot
    The folder where the shortcuts will be created. Defaults to "C:\temp\shortcuts".

.EXAMPLE
    .\New-SystemShortcuts.ps1

.EXAMPLE
    .\New-SystemShortcuts.ps1 -ShortcutRoot "D:\Shortcuts"

.NOTES
    File Name       : New-SystemShortcuts.ps1
    Author          : binaryzero
    Version         : 0.2.0
    Date Created    : 2026-05-28
    Last Modified   : 2026-05-28
#>

[CmdletBinding()]
param(
    [Parameter()]
    [string]$ShortcutRoot = "C:\temp\shortcuts"
)

function New-Shortcut {
	# Function to create shortcuts
    
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$Name,

        [Parameter(Mandatory = $true)]
        [string]$TargetPath,

        [Parameter()]
        [string]$IconLocation
    )

    $shortcutPath = Join-Path -Path $ShortcutRoot -ChildPath "$Name.lnk"
    $shortcut = $WshShell.CreateShortcut($shortcutPath)
    $shortcut.TargetPath = $TargetPath

    if (-not [string]::IsNullOrWhiteSpace($IconLocation)) {
        $shortcut.IconLocation = $IconLocation
    }

    $shortcut.Save()
}

Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

# Ensure destination folder exists
New-Item -Path $ShortcutRoot -ItemType Directory -Force | Out-Null

# Reuse one COM object for all shortcut creation
$WshShell = New-Object -ComObject WScript.Shell

# Define shortcuts to create
$shortcuts = @(
    @{ Name = "Add or Remove a Program"; TargetPath = "%windir%\System32\appwiz.cpl"; IconLocation = "%windir%\System32\appwiz.cpl,0" }
    @{ Name = "Adjust DPI Scaling"; TargetPath = "%windir%\System32\DpiScaling.exe" }
    @{ Name = "Backup and Restore User Credentials"; TargetPath = "%windir%\System32\credwiz.exe" }
    @{ Name = "Calculator"; TargetPath = "calculator:///"; IconLocation = "%windir%\System32\calc.exe,0" }
    @{ Name = "Color Management"; TargetPath = "%windir%\System32\colorcpl.exe" }
    @{ Name = "Create a Repair Disc"; TargetPath = "%windir%\System32\recdisc.exe" }
    @{ Name = "Create a user for this PC"; TargetPath = "ms-cxh:localonly"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }
    @{ Name = "DirectX Diagnostics"; TargetPath = "%windir%\System32\dxdiag.exe" }
    @{ Name = "Disk Indexing Options"; TargetPath = "%windir%\System32\rundll32.exe shell32.dll,Control_RunDLL srchadmin.dll"; IconLocation = "%windir%\System32\srchadmin.dll,0" }
    @{ Name = "Installation Express"; TargetPath = "%windir%\System32\iexpress.exe" }
    @{ Name = "Internet Explorer Control Panel"; TargetPath = "%windir%\System32\inetcpl.cpl"; IconLocation = "%windir%\System32\inetcpl.cpl,26" }
    @{ Name = "KGL Check"; TargetPath = "ms-gamingoverlay://kglcheck/"; IconLocation = "%windir%\System32\GamePanel.exe,0" }
    @{ Name = "Local Machine Certificate Manager"; TargetPath = "%windir%\System32\certlm.msc"; IconLocation = "%windir%\System32\certmgr.dll,0" }
    @{ Name = "Local User and Groups Manager"; TargetPath = "%windir%\System32\lusrmgr.msc" }
    @{ Name = "Manage All Users"; TargetPath = "%windir%\System32\control.exe userpasswords2"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }
    @{ Name = "Manage Current User"; TargetPath = "%windir%\System32\control.exe userpasswords"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }

    # Assumes MediaCreationTool.exe exists at this path
    @{ Name = "Media Creation Tool"; TargetPath = "%ProgramFiles(x86)%\Microsoft\Media Creation Tool\MediaCreationTool.exe" }

    @{ Name = "Microsoft Support Diagnostic Tool"; TargetPath = "%windir%\System32\msdt.exe" }
    @{ Name = "Network Connections"; TargetPath = "%windir%\System32\ncpa.cpl"; IconLocation = "%windir%\System32\ncpa.cpl,0" }

    # PowerShell 7 can have trouble with: control.exe netconnections
    @{ Name = "Network Properties"; TargetPath = "shell:::{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}" }

    @{ Name = "ODBC Data Source Administrator"; TargetPath = "%windir%\System32\odbcad32.exe" }
    @{ Name = "On-Screen Keyboard"; TargetPath = "%windir%\System32\osk.exe" }
    @{ Name = "Private Character Editor"; TargetPath = "%windir%\System32\eudcedit.exe" }
    @{ Name = "Problem Steps Recorder"; TargetPath = "%windir%\System32\psr.exe" }
    @{ Name = "Registry Editor"; TargetPath = "%windir%\regedit.exe" }
    @{ Name = "Registry Editor32"; TargetPath = "%windir%\System32\regedt32.exe" }
    @{ Name = "System Configuration Utility"; TargetPath = "%windir%\System32\msconfig.exe"; IconLocation = "%windir%\System32\msconfig.exe,0" }
    @{ Name = "System Information"; TargetPath = "%windir%\System32\msinfo32.exe" }
    @{ Name = "TPM Management"; TargetPath = "%windir%\System32\tpm.msc" }
    @{ Name = "Windows Firewall"; TargetPath = "%windir%\System32\wf.msc" }
    @{ Name = "Windows Update"; TargetPath = "ms-settings:windowsupdate?winsettingshome"; IconLocation = "%windir%\System32\shell32.dll,314" }
    @{ Name = "WLTUC"; TargetPath = "ms-cxh://WLTUC/"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }
)

# Create shortcuts based on the defined list
foreach ($s in $shortcuts) {
    New-Shortcut -Name $s.Name -TargetPath $s.TargetPath -IconLocation $s.IconLocation
}

# Completion message
Write-Host "Created $($shortcuts.Count) shortcuts in '$ShortcutRoot'."

# End of script

Tbh, I'd take it a step further and use a json to provide the shortcut name and file path. ymmv.

On 27/05/2026 at 02:48, thartist said:

Hey, it's cool that you bothered to do it and mention us, i don't need it btw but I'm following along, but I wonder if instead of that C:\temp\shortcuts dir, you couldn't better use a system variable like %user%\Desktop\Shortcuts or however they're used? Would be tidier, right?

Hello,

I did not want to forcibly create the shortcuts in a place where a person who was just curious about them would have them added to their system without their explicit approval and a chance to try them out, see if they were useful and either delete them or move them to their own Start Menu.  That is why I chose that specific directory instead of somewhere inside the user's Start Menu at  %APPDATA%\Microsoft\Windows\Start Menu\ or system's Start Menu at %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu.  I figured that if a person wanted to keep them after exploring them or perhaps making changes (delete, add, change an icon, whatever), they could then move them to a location that best met their needs.

One of the things I do not like about a lot of software these days is that oftentimes the installers do not give the user (or at least the person installing it) choices about where software is installed to, whether the software changes any file associations, whether the program runs on startup or not, has shortcuts created for it on the Start Menu and/or Desktop and so forth. 

While I certainly wasn't attempt to create an installer here, just a very quick script to create the shortcuts, I did not want to do anything that made changes to the user's system.  Sticking the files in a directory located at C:\Temp\Shortcuts\ seemed the best way to accomplish this.

Regards,

Aryeh Goretsky
 

On 27/05/2026 at 22:49, binaryzero said:
<#
.SYNOPSIS
    Creates Windows shortcut (.lnk) files for common tools/settings.

.DESCRIPTION
    Builds shortcuts in the target folder using WScript.Shell.
    Refactored to avoid repeated code by using a helper function and a shortcut definition list.

.PARAMETER ShortcutRoot
    The folder where the shortcuts will be created. Defaults to "C:\temp\shortcuts".

.EXAMPLE
    .\New-SystemShortcuts.ps1

.EXAMPLE
    .\New-SystemShortcuts.ps1 -ShortcutRoot "D:\Shortcuts"

.NOTES
    File Name       : New-SystemShortcuts.ps1
    Author          : binaryzero
    Version         : 0.2.0
    Date Created    : 2026-05-28
    Last Modified   : 2026-05-28
#>

[CmdletBinding()]
param(
    [Parameter()]
    [string]$ShortcutRoot = "C:\temp\shortcuts"
)

function New-Shortcut {
	# Function to create shortcuts
    
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$Name,

        [Parameter(Mandatory = $true)]
        [string]$TargetPath,

        [Parameter()]
        [string]$IconLocation
    )

    $shortcutPath = Join-Path -Path $ShortcutRoot -ChildPath "$Name.lnk"
    $shortcut = $WshShell.CreateShortcut($shortcutPath)
    $shortcut.TargetPath = $TargetPath

    if (-not [string]::IsNullOrWhiteSpace($IconLocation)) {
        $shortcut.IconLocation = $IconLocation
    }

    $shortcut.Save()
}

Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

# Ensure destination folder exists
New-Item -Path $ShortcutRoot -ItemType Directory -Force | Out-Null

# Reuse one COM object for all shortcut creation
$WshShell = New-Object -ComObject WScript.Shell

# Define shortcuts to create
$shortcuts = @(
    @{ Name = "Add or Remove a Program"; TargetPath = "%windir%\System32\appwiz.cpl"; IconLocation = "%windir%\System32\appwiz.cpl,0" }
    @{ Name = "Adjust DPI Scaling"; TargetPath = "%windir%\System32\DpiScaling.exe" }
    @{ Name = "Backup and Restore User Credentials"; TargetPath = "%windir%\System32\credwiz.exe" }
    @{ Name = "Calculator"; TargetPath = "calculator:///"; IconLocation = "%windir%\System32\calc.exe,0" }
    @{ Name = "Color Management"; TargetPath = "%windir%\System32\colorcpl.exe" }
    @{ Name = "Create a Repair Disc"; TargetPath = "%windir%\System32\recdisc.exe" }
    @{ Name = "Create a user for this PC"; TargetPath = "ms-cxh:localonly"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }
    @{ Name = "DirectX Diagnostics"; TargetPath = "%windir%\System32\dxdiag.exe" }
    @{ Name = "Disk Indexing Options"; TargetPath = "%windir%\System32\rundll32.exe shell32.dll,Control_RunDLL srchadmin.dll"; IconLocation = "%windir%\System32\srchadmin.dll,0" }
    @{ Name = "Installation Express"; TargetPath = "%windir%\System32\iexpress.exe" }
    @{ Name = "Internet Explorer Control Panel"; TargetPath = "%windir%\System32\inetcpl.cpl"; IconLocation = "%windir%\System32\inetcpl.cpl,26" }
    @{ Name = "KGL Check"; TargetPath = "ms-gamingoverlay://kglcheck/"; IconLocation = "%windir%\System32\GamePanel.exe,0" }
    @{ Name = "Local Machine Certificate Manager"; TargetPath = "%windir%\System32\certlm.msc"; IconLocation = "%windir%\System32\certmgr.dll,0" }
    @{ Name = "Local User and Groups Manager"; TargetPath = "%windir%\System32\lusrmgr.msc" }
    @{ Name = "Manage All Users"; TargetPath = "%windir%\System32\control.exe userpasswords2"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }
    @{ Name = "Manage Current User"; TargetPath = "%windir%\System32\control.exe userpasswords"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }

    # Assumes MediaCreationTool.exe exists at this path
    @{ Name = "Media Creation Tool"; TargetPath = "%ProgramFiles(x86)%\Microsoft\Media Creation Tool\MediaCreationTool.exe" }

    @{ Name = "Microsoft Support Diagnostic Tool"; TargetPath = "%windir%\System32\msdt.exe" }
    @{ Name = "Network Connections"; TargetPath = "%windir%\System32\ncpa.cpl"; IconLocation = "%windir%\System32\ncpa.cpl,0" }

    # PowerShell 7 can have trouble with: control.exe netconnections
    @{ Name = "Network Properties"; TargetPath = "shell:::{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}" }

    @{ Name = "ODBC Data Source Administrator"; TargetPath = "%windir%\System32\odbcad32.exe" }
    @{ Name = "On-Screen Keyboard"; TargetPath = "%windir%\System32\osk.exe" }
    @{ Name = "Private Character Editor"; TargetPath = "%windir%\System32\eudcedit.exe" }
    @{ Name = "Problem Steps Recorder"; TargetPath = "%windir%\System32\psr.exe" }
    @{ Name = "Registry Editor"; TargetPath = "%windir%\regedit.exe" }
    @{ Name = "Registry Editor32"; TargetPath = "%windir%\System32\regedt32.exe" }
    @{ Name = "System Configuration Utility"; TargetPath = "%windir%\System32\msconfig.exe"; IconLocation = "%windir%\System32\msconfig.exe,0" }
    @{ Name = "System Information"; TargetPath = "%windir%\System32\msinfo32.exe" }
    @{ Name = "TPM Management"; TargetPath = "%windir%\System32\tpm.msc" }
    @{ Name = "Windows Firewall"; TargetPath = "%windir%\System32\wf.msc" }
    @{ Name = "Windows Update"; TargetPath = "ms-settings:windowsupdate?winsettingshome"; IconLocation = "%windir%\System32\shell32.dll,314" }
    @{ Name = "WLTUC"; TargetPath = "ms-cxh://WLTUC/"; IconLocation = "%windir%\System32\Netplwiz.exe,0" }
)

# Create shortcuts based on the defined list
foreach ($s in $shortcuts) {
    New-Shortcut -Name $s.Name -TargetPath $s.TargetPath -IconLocation $s.IconLocation
}

# Completion message
Write-Host "Created $($shortcuts.Count) shortcuts in '$ShortcutRoot'."

# End of script

Tbh, I'd take it a step further and use a json to provide the shortcut name and file path. ymmv.

Hello,

That is a much more elegant solution than my own clumsy implementation.  Thank you for sharing it!

Regards,

Aryeh Goretsky
 

  • Like 2

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • A different thing with Russia. When you say is it better, depends on things. It is better that we don't have the E.U making rules and laws that have nothing to do with them. Is the trading part better? No, that is really mucked up, but then we knew that was going to happen and we would have make agreements, like we do with other parts of the world. Freedom of movement is certainly better, but could be improved, we still need more control over our borders. do you live in the U.K?
    • So what am I quoting from them? I never listened to what Farage or his cronies said. I wanted the U.K to leave the E.u years before the referendum and it had nothing to do with Farage and his cronies. So what country do you live in? Did we work much better together? We were always at logger heads with the E.U because we disagreed with them so much. Maggie was always on at them. I would have thought the E.U was glad to get rid of us as we stopped the integration or made it a two tier. Now without us they can integrate more. I would not have voted out if it was just a trading block and we can still work together on somethings.
    • MPC-BE 1.9.0 by Razvan Serea Media Player Classic - BE is a free and open source audio and video player for Windows. Media Player Classic - BE is based on the original "Media Player Classic" project (Gabest) and "Media Player Classic Home Cinema" project (Casimir666), contains additional features and bug fixes. The BE mod (Black Edition Mod) is a skinned version of Media Player Classic Home Cinema, much better looking than the plain old MPC. MPC-BE 1.9.0 changelog: Splitters Fixed crashes in some situations. AudioSplitter Added support for the RF64 format. Fixed reading of channel layout for some WavPack files. Added support for ID3 tags for Wave64 files. Unknown Wave64 chunks are now ignored. AviSplitter Added support for 'y408' video. Improved support for 'HEVC' video. FLVSplitter Added support for VVC video. MP4Splitter Improved handling of corrupted files. MatroskaSplitter Expanded support for V_UNCOMPRESSED video codecs. Fixed support for frame rotation (ProjectionPoseRoll). Improved support for "V_MS/VFW/FOURCC / HEVC". MpcDvdVideoDecoder Fixed conversion to YUY2. Fixed display of menus for some DVD-Videos. RoQVideoDecoder Output in NV12 and YV12 formats is allowed. Full range is used. MPC Video Decoder RGB32 format will be output as a top-down bitmap by default. Added support for the "IID_MediaSideDataDOVIMetadataV2" interface. Removed support for the deprecated "IID_MediaSideDataDOVIMetadata" interface. Fixed retrieving the name of the video adapter when using NVDEC. Fixed crashes in some situations. MPC Video Converter Added support for AYUV video format. MpcAudioRenderer Improved input format validation. Optimized retrieval of supported formats for exclusive mode. Added the "Keep audio device active when paused" setting. Fixed crashes and freezes in various situations. Subtitles Added the ability to open the properties of an external subtitle renderer in the "Subtitles" settings panel. Fixed external subtitle connections for VSFilter. Fixed a crash when rendering PGS/SUP subtitles when using AVX2. YouTube Improved support for yt-dlp. The built-in YouTube parser is no longer used. Player The HTTP read strategy has been changed. If the playlist contains one entry, more key combinations can be used to control the player (jump through chapters, adjust volume). Improved support for reading ASX playlists. The translation of the MediaInfo report for Chinese, Korean and Japanese has been removed. Added blocking of 32-bit filter "PICVideo Lossless JPEG Decompressor" (pvljpg20.dll), because it crashes. Added blocking of the system filter "AVI Decompressor", which will eliminate the crash of VFW codecs. Fixed a rare crash when using the "/slave" key. Fixed a crash when getting a list of fonts for OSD. Added the ability to load an external audio file using hotkeys. Fixed opening a network path starting with \?\UNC. The "Determine duration when adding" playlist setting now works for YouTube video URLs. The "Online media services" settings panel has been redesigned. Added a "Merge files using FFmpeg" option to the file saving dialog. This option is activated when playing multiple streams obtained using yt-dlp. Added loading of local .dpl playlists ("DAUMPLAYLIST"). Fixed a hang when the user closes the player during the URL opening process. Various interface fixes. Installer Updated MPC Video Renderer 0.10.5. Updated MPC Script Source 0.2.17. Added MPC Image Source 0.3.6. Translations Updated Japanese translation (by tsubasanouta). Updated Chinese (Traditional) and Dutch translation (by beter). Updated Romanian translation (by Andrei Miloiu). Updated Hungarian translation (by mickey). Updated Turkish translation (by cmhrky). Updated German translation (by Klaus1189). Updated Chinese (Simplified) translation (by wushantao). Updated Italian translation (by mapi68). Updated Korean translation (by Hackjjang). Updated Chinese (Traditional) (by udfbe). Updated libraries dav1d 1.5.3-6-g04b69f9; ffmpeg n8.2-dev-1857-g4653e68aab; libpng git-v1.6.55-9-g7d52a8087; Little-CMS git-lcms2.18-26-gf739cda; MediaInfo git-v26.05-38-g702c9b7fd; ZenLib git-v0.4.41-91-g073f297; zlib 1.3.2. Download: MPC-BE 64-bit | Portable MPC-BE 64-bit | ~20.0 MB (Open Source) Download: MPC-BE 32-bit | Portable MPC-BE 32-bit Link: Media Player Classic - BE Home Page Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Apple reportedly looks to blacklisted Chinese memory chips as RAM prices climb by Karthik Mudaliar Image via Apple Apple is reportedly trying to get a clearance from the Trump administration to buy memory from ChangXin Memory Technologies (CXMT) to get some relief from soaring DRAM prices. As per a report by the Financial Times, Apple approached the Commerce Department more than a month ago and also spoke to other officials and allies in Washington. For starters, CXMT is a company that's already been placed on the Pentagon's list of Chinese military companies. The Chinese company is the country's top DRAM maker. For Apple, the timing is certainly awkward but not surprising. Tim Cook had recently warned that Apple would have to raise prices because AI companies are buying up large amounts of memory for data centers, and just like that, Apple raised MacBook and iPad prices. Micron also recently revealed that customers have committed billions of dollars to secure memory supply years in advance, which shows us how aggressive securing infrastructure has become. This gives suppliers such as Samsung, SK Hynix, and Micron more leverage, while pushing hardware makers to look for alternatives. CXMT is one of those alternatives, but not the simplest one. Apple has spent many years trying to diversify parts of its supply chain away from China, especially for final assembly, while still depending heavily on Chinese manufacturing and suppliers. Even domestic brands from China are moving towards CXMT and YMTC instead of relying on Samsung, Micron, and SK Hynix. For Apple, though, it would invite more scrutiny than local Chinese companies. For now, this is more like a lobbying effort rather than a confirmed supply deal. There's no official statement from either of the parties. What is clearer, though, is the pressure behind such a request. AI demand has certainly made hardware a bottleneck, and companies are trying everything they can to bring things back to normal, even if that means making politically sensitive choices. Source: Financial Times
    • I did test it a month or so back, but ... the results I expect to be on the first page are not there.
  • Recent Achievements

    • Week One Done
      flexorcist earned a badge
      Week One Done
    • One Month Later
      Woland13 earned a badge
      One Month Later
    • Week One Done
      Woland13 earned a badge
      Week One Done
    • One Year In
      bernmeister earned a badge
      One Year In
    • Week One Done
      Scoobystu earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      487
    2. 2
      +Edouard
      221
    3. 3
      PsYcHoKiLLa
      147
    4. 4
      Steven P.
      74
    5. 5
      FloatingFatMan
      70
  • Tell a friend

    Love Neowin? Tell a friend!