For Windows 10 build 1809, see notes.

Note.And yes, that does make it a bit of a sticky wicket to try and install fonts on a remote computer; after all, the Shell object isn’t designed to work against remote computers. One possible solution? Put your font-installing code in a logon script; after all, logon scripts always run locally. A less-elegant solution would be to copy the fonts to a remote machine, then instruct the user. Mar 12, 2019  It uses Powershell to perform the installation. Target computer must allow Windows PowerShell Remoting. Script can try to enable Windows PowerShell Remoting using Microsoft Sysinternals Psexec with the paramenter -EnablePSRemoting. If PSExec is not found on computer, script asks to the user for download it and extract in system folder.

Older builds, use this:

Notes

{ Updated 3/26/2019 }

Since build 1809, the shell variable 0x14 is being overloaded and redirected to the user’s profile (if using SCCM and admin mode, the systemprofile is used). Not great. Microsoft, please fix it. Basically, this causes font issues, where the fonts appear to be installed, but are not. The workaround is to not use 0x14.


Font Key Reg Location

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFonts]


Font File Folder Location

C:WindowsFonts

If fonts don’t show up in C:WindowsFonts, delete the fonts from the user profile and the user’s registry—using the admin profile (or a different profile)

C:Users%username%AppDataLocalMicrosoftWindowsFonts

HKEY_CURRENT_USERSOFTWAREMicrosoftWindows NTCurrentVersionFonts


Rebuild Font cache in Windows 10


Fonts and SCCM

Yes, there are other areas Font data is stored in 1809, if using SCCM and System Account:

HKEY_USERS.DEFAULTSoftwareMicrosoftWindows NTCurrentVersionFonts

“C:WindowsSystem32configsystemprofileAppDataLocalMicrosoftWindowsFonts”


Scripting

For scripting, resort to something simple (no 0x14) (simple…is working for me)

copy /y C:fonts*.ttf C:WindowsFonts
regedit /s C:fontsOpenSansFont.reg

OpenSansFont.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFonts]
“Open Sans Extrabold (TrueType)”=”OpenSans-ExtraBold.ttf”
“Open Sans Extrabold Italic (TrueType)”=”OpenSans-ExtraBoldItalic.ttf”
“Open Sans Italic (TrueType)”=”OpenSans-Italic.ttf”
“Open Sans Light (TrueType)”=”OpenSans-Light.ttf”
“Open Sans Light Italic (TrueType)”=”OpenSans-LightItalic.ttf”
“Open Sans (TrueType)”=”OpenSans-Regular.ttf”
“Open Sans Semibold (TrueType)”=”OpenSans-Semibold.ttf”
“Open Sans Semibold Italic (TrueType)”=”OpenSans-SemiboldItalic.ttf”
“Open Sans Bold (TrueType)”=”OpenSans-Bold.ttf”
“Open Sans Bold Italic (TrueType)”=”OpenSans-BoldItalic.ttf”
“OpenSans (TrueType)”=”OpenSans-Bold.ttf”


Franklin Gothic Demi Reg Keys

“Franklin Gothic Demi (TrueType)”=”ITCFranklinGothicStd-Demi.otf”
“Franklin Gothic Demi Cond (TrueType)”=”ITCFranklinGothicStd-Demi.otf”
“Franklin Gothic Demi Italic (TrueType)”=”ITCFranklinGothicStd-Demi.otf”

Found Online (not tested)

Diagnostic information:Blocked at germany.shtmlYour IP address: 88.99.2.89Referrer URL (if available): (none)Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)Date: Friday, 08-May-2020 16:59:41 GMT Why did this block occur?A Court in Germany ordered that access to certain items in the Project Gutenberg collection are blocked from Germany. This block will remain in place until legal guidance changes.If your IP address lookup is incorrectUse the to verify status of your IP address. This is because the geoIP database shows your address is in the country of Germany. Download novel carissa. Project Gutenberg believes the Court has no jurisdiction over the matter, but until the issue is resolved, it will comply.For more information about the German court case, and the reason for blocking all of Germany rather than single items, visit.For more information about the legal advice Project Gutenberg has received concerning international issues, visitHow can I get unblocked?All IP addresses in Germany are blocked.

Command line in SCCM Task Sequence

%SCRIPTROOT%nircmd.exe elevate Serverd$MDTBuildLabFonterAddFonts.cmd serverd$MDTBuildLabFonterfonts


AddFonts.cmd

-->

There are multiple ways to install PowerShell in Windows.

Prerequisites

The latest release of PowerShell is supported on Windows 7 SP1, Server 2008 R2, and later versions.

Font

To enable PowerShell remoting over WSMan, the following prerequisites need to be met:

  • Install the Universal C Runtime onWindows versions predating Windows 10. It's available via direct download or Windows Update. Fullypatched systems already have this package installed.
  • Install the Windows Management Framework (WMF) 4.0 or newer on Windows 7 and Windows Server 2008R2. For more information about WMF, see WMF Overview.

Download the installer package

To install PowerShell on Windows, download the install package from our GitHub releasespage. Scroll down to the Assets section of the Release page. The Assets section may becollapsed, so you may need to click to expand it.

Installing the MSI package

The MSI file looks like PowerShell-<version>-win-<os-arch>.msi. For example:

  • PowerShell-7.0.0-win-x64.msi
  • PowerShell-7.0.0-win-x86.msi

Once downloaded, double-click the installer and follow the prompts.

The installer creates a shortcut in the Windows Start Menu.

  • By default the package is installed to $env:ProgramFilesPowerShell<version>
  • You can launch PowerShell via the Start Menu or $env:ProgramFilesPowerShell<version>pwsh.exe

Note

PowerShell 7 installs to a new directory and runs side-by-side with Windows PowerShell 5.1. ForPowerShell Core 6.x, PowerShell 7 is an in-place upgrade that removes PowerShell Core 6.x.

  • PowerShell 7 is installed to $env:ProgramFilesPowerShell7
  • The $env:ProgramFilesPowerShell7 folder is added to $env:PATH
  • The $env:ProgramFilesPowerShell6 folder is deleted

If you need to run PowerShell 6 side-by-side with PowerShell 7, reinstall PowerShell 6 using theZIP install method.

Administrative install from the command line

MSI packages can be installed from the command line allowing administrators to deploy packageswithout user interaction. The MSI package includes the following properties to control theinstallation options:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL - This property controls the option for adding theOpen PowerShell item to the context menu in Windows Explorer.
  • ENABLE_PSREMOTING - This property controls the option for enabling PowerShell remoting duringinstallation.
  • REGISTER_MANIFEST - This property controls the option for registering the Windows EventLogging manifest.

The following example shows how to silently install PowerShell with all the install options enabled.

For a full list of command-line options for Msiexec.exe, see Command line options.

Installing the MSIX package

To manually install the MSIX package on a Windows 10 client, download the MSIX package from ourGitHub releases page. Scroll down to the Assets section of the Release you want toinstall. The Assets section may be collapsed, so you may need to click to expand it.

The MSIX file looks like this - PowerShell-<version>-win-<os-arch>.msix

To install the package, you must use the Add-AppxPackage cmdlet.

Note

The MSIX package has not been released yet. When released, the package will be available in theMicrosoft Store and from the GitHub releases page.

Installing the ZIP package

PowerShell binary ZIP archives are provided to enable advanced deployment scenarios. Installing theZIP archive doesn't check the prerequisites like the MSI packages do. Download the ZIP archive fromthe releases page. Depending on how you download the file you may need to unblock thefile using the Unblock-File cmdlet. Unzip the contents to the location of your choice and runpwsh.exe from there. For remoting over WSMan to work properly, ensure that you've met theprerequisites.

Deploying on Windows 10 IoT Enterprise

Windows 10 IoT Enterprise comes with Windows PowerShell, which we can use to deploy PowerShell 7.

  1. Create PSSession to target device

  2. Copy the ZIP package to the device

  3. Connect to the device and expand the archive

  4. Set up remoting to PowerShell 7

  5. Connect to PowerShell 7 endpoint on device

Deploying on Windows 10 IoT Core

Windows 10 IoT Core adds Windows PowerShell when you include IOT_POWERSHELL feature, which we can use to deploy PowerShell 7.The steps defined above for Windows 10 IoT Enterprise can be followed for IoT Core as well.

For adding the latest powershell in the shipping image, use Import-PSCoreRelease command to include the package in the workarea and add OPENSRC_POWERSHELL feature to your image.

Note

For ARM64 architecture, Windows Powershell is not added when you include IOT_POWERSHELL. So the zip based install will not work.You will need to use Import-PSCoreRelease command to add it in the image.

Deploying on Nano Server

These instructions assume that the Nano Server is a 'headless' OS that has a version of PowerShellis already running on it. For more information, see theNano Server Image Builder documentation.

PowerShell binaries can be deployed using two different methods.

  1. Offline - Mount the Nano Server VHD and unzip the contents of the zip file to your chosenlocation within the mounted image.
  2. Online - Transfer the zip file over a PowerShell Session and unzip it in your chosen location.

In both cases, you need the Windows 10 x64 ZIP release package. Run the commands within an'Administrator' instance of PowerShell.

Offline Deployment of PowerShell

  1. Use your favorite zip utility to unzip the package to a directory within the mounted Nano Serverimage.
  2. Unmount the image and boot it.
  3. Connect to the inbox instance of Windows PowerShell.
  4. Follow the instructions to create a remoting endpoint using the'another instance technique'.

Online Deployment of PowerShell

Deploy PowerShell to Nano Server using the following steps.

  • Connect to the inbox instance of Windows PowerShell

  • Copy the file to the Nano Server instance

  • Enter the session

  • Extract the ZIP file

  • If you want WSMan-based remoting, follow the instructions to create a remoting endpoint using the'another instance technique'.

Install as a .NET Global tool

If you already have the .NET Core SDK installed, it's easy to install PowerShellas a .NET Global tool.

The dotnet tool installer adds $env:USERPROFILEdotnettools to your $env:PATH environmentvariable. However, the currently running shell doesn't have the updated $env:PATH. You can startPowerShell from a new shell by typing pwsh.

How to create a remoting endpoint

PowerShell supports the PowerShell Remoting Protocol (PSRP) over both WSMan and SSH. For moreinformation, see: