> For the complete documentation index, see [llms.txt](https://documentation.2pintsoftware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.2pintsoftware.com/deployr/whats-new-and-upgrades/release-notes.md).

# Release notes

{% updates format="full" %}
{% update date="2026-11-03" %}

## DeployR 1.4.2645.2938

### Before you upgrade

* **Renamed task sequence variables.** `DEPLOYRCONTENT` is now `_DEPLOYRCONTENT`, `DEPLOYRSTATE` is now `_DEPLOYRSTATE`, and `_DEPLOYRLOGS` is now `_DEPLOYRLOGPATH`. Update any scripts that use the old names. The `_UIPORT`, `_UISOCKET`, and `_UITSLIST` variables are no longer used, because the client and progress UI now communicate using SignalR. See [Task Sequence variables](/deployr/reference/task-sequence-variables.md).
* **Task sequences can be limited to specific environments.** Task sequences tagged `Windows PE`, `Windows 10`, `Windows 11`, or `Windows Server 2025` only appear in the task sequence list when the device is running one of those environments. The built-in templates now have these tags. Task sequences without these tags are always listed. See [Task Sequence Templates](/deployr/task-sequences/task-sequence-templates.md#operating-system-tags).
* **Windows authentication** only accepts accounts from the DeployR server's own domain.

### New task sequence steps

* [Apply FFU](/deployr/reference/step-definitions/apply-ffu.md) (Enterprise): streams a Full Flash Update image straight onto the disk, replacing the **Format disk** and **Apply operating system** steps.
* [Detect disk sector size](/deployr/reference/step-definitions/detect-disk-sector-size.md) (Enterprise): sets `DISKnSECTORSIZE` so the task sequence can choose between 512-byte and 4K FFU images.
* [Capture user state with USMT](/deployr/reference/step-definitions/capture-user-state-with-usmt.md) and [Restore user state with USMT](/deployr/reference/step-definitions/restore-user-state-with-usmt.md): migrate user data with a hardlink state store. USMT is included with DeployR as built-in content items.
* [Clean drive](/deployr/reference/step-definitions/clean-drive.md): removes the old operating system from the disk without reformatting it, keeping the `_2P` folder.
* [Install online language pack](/deployr/reference/step-definitions/install-online-language-pack.md): installs a language pack from Windows Update, optionally making it the system preferred UI language.
* [Show message box](/deployr/reference/step-definitions/show-message-box.md): shows a message box in the progress UI and saves the button that was clicked in a variable.
* [Wait for URL](/deployr/reference/step-definitions/wait-for-url.md): pauses the task sequence until a URL responds.

### New task sequence templates

* [Windows refresh](/deployr/task-sequences/task-sequence-templates/windows-refresh.md): reinstalls Windows on an existing device, keeping user data with USMT.
* [Windows bare metal with FFU](/deployr/task-sequences/task-sequence-templates/windows-bare-metal-with-ffu.md) (Enterprise): bare metal deployment from FFU images, with separate steps for 512-byte and 4K disks.
* The **Set Windows settings** step was added to the Windows bare metal, build and capture, and refresh templates.

### Changes to existing steps

* **Reboot**: new **Wait for peering in Windows PE before rebooting** option, so that other devices downloading from this one are not interrupted.
* **Inject drivers from cloud**: driver packs are checked against the catalog's SHA256 hash. The new **Skip hash check** option allows using a driver pack whose hash does not match.
* **Offline domain join**: the OU must be blank or start with `OU=`.
* **Run command line**: the **Success codes** setting is now applied. Previously, only `0` and `3010` were treated as success.
* **Set Windows settings**: `resealshutdown` was added to the finish action list (reseal with `sysprep /oobe`, then shut down), and the time zone and locale lists were completed.
* The audit mode unattend template sets the computer name.
* Partitioning works on devices with more than one disk that has a system partition.
* Driver folders are injected into Windows PE in alphabetical order.

### Task sequence client and progress UI

* **New download engine.** Content is downloaded with the latest 2Pint download engine, with new task sequence variables for proxy credentials, retries, timeouts, and BranchCache peering behavior. When StifleR is running in Windows PE, its MOM servers and bandwidth policy are used for downloads. See [Download and peering variables](/deployr/reference/task-sequence-variables/download-and-peering-variables.md).
* **Download verification.** Downloads are checked against the SHA256 hash recorded on the server. A download that does not match is retried, and is never added to the BranchCache cache.
* **Custom web prompt.** Set `CustomWebUrl` to show your own web page before the task sequence starts; the values it posts back become task sequence variables. See [Custom web prompt](/deployr/customization/custom-web-prompt.md).
* **Captive portals.** When a network needs a sign-in page (for example guest Wi-Fi), the sign-in page is shown. Set `SkipInternetCheck` to turn off the check.
* **Debugger.** The task sequence debugger now has a task sequence view for setting breakpoints and a variables view for editing variables. The debugger is available with DeployR Enterprise.
* **Tools and debugger can be locked down.** Set `EnableTools` or `EnableDebugger` to `false` to hide them, or set the new **Debugger and tools unlock passcode** server setting to require a passcode before they can be used.
* **Progress UI.** New details toggle with elapsed time information. Disabled and skipped steps report zero duration, and progress no longer goes above 100% on steps that reboot and retry.
* **Default domain.** Set the `Domain` variable to fill in the domain for Windows authentication.
* **Hyper-V.** Key-value pair (KVP) data from the Hyper-V host, such as the VM name, is available as task sequence variables in Windows PE too.
* **Auto logon.** Set `RetainAutoLogon` to `true` to keep your own auto logon settings when the task sequence ends.
* Windows PE network initialization is more reliable under load, and wired adapters are reset when DHCP renewals keep failing. Wi-Fi connections are re-established in the full OS.
* Capturing an image cleans up the StifleR client first.
* Client authentication certificates are filtered more strictly, so certificates without the client authentication EKU are not selected.
* See [Task Sequence variables](/deployr/reference/task-sequence-variables.md) for all new variables, including `DEPLOYRSERVERTYPE`, `DEPLOYRWEBSERVICETIMEOUT`, `_DEPLOYRDEBUGLOGGING`, and the read-only `_STIFLER*` variables.

### PowerShell

* New `DeployR.Utility` commands: `ConvertTo-DeployRFFU` ([Creating FFU images](/deployr/content-management/creating-ffu-images.md)), `Invoke-DeployRStreamFFU`, `Get-DeployRDiskSectorSize`, `Get-DeployRCloudOS` and `Import-DeployRCloudOS` ([Get-DeployRCloudOS](/deployr/automation-and-powershell/scripting-for-deployr-server/automating-content-item-creation/1.4-get-deployrcloudos.md)), `Show-DeployRMessageBox`, `Set-DeployRProgressWindow`, and `Invoke-DeployRApiRestMethod`.
* `Request-DeployRCustomContent` has a new `-Hash` parameter to verify the download, and `Get-DeployROemDriverPack` has a new `-ListAll` switch.
* Commands retry transient network failures up to 15 times (previously 3).
* See [DeployR.Utility module reference](/deployr/automation-and-powershell/deployr-utility-module-reference.md) for details.

### Boot images and media

* **Self-updating USB media** (Enterprise): new `SelfUpdating` media type for `New-DeployRMedia`. With the StifleR client, content is cached on the USB drive as it is downloaded, so later deployments read it from the drive. See [Self-updating media](/deployr/deployment-methods/performing-media-based-deployments.md#self-updating-media).
* Windows PE boot images are regenerated automatically when needed.
* Boot image generation stops with an error if a selected content item's files cannot be found and there is no fallback, instead of creating an incomplete boot image.
* A `BootImageUpdated.ps1` script in the content location's `Scripts` folder runs each time a Windows PE boot image is generated, for example to copy the image to another server. A sample, `BootImageUpdated.Sample.ps1`, is included.
* Linux boot image generation also creates a UEFI-bootable ISO, and the Linux boot image is now based on Fedora 44.

### Content

* **Cloud OS import**: import Windows images from the cloud OS catalog as content items with `Import-DeployRCloudOS`.
* **Proxmox and QEMU**: the cloud driver pack catalog includes the virtio drivers for Proxmox and QEMU virtual machines.
* The Entra ID bulk enrollment token content item can be edited and no longer has the `DeployR` tag. `GeneratePPKG.ps1` no longer depends on the AADInternals module.
* Dell driver packs are verified against the correct SHA256 hash.

### Server and DeployR Community

* Templates that need DeployR Enterprise (tagged `Enterprise` or `Linux`) are hidden in DeployR Community.
* Upgrading DeployR Community keeps settings you changed, and all installer logs (including the Configuration Editor logs) are written next to the main installer log in `%TEMP%`.
* Anonymous read access works in DeployR Community.
* The content `TEMP` folder is cleaned up when the service starts.
* Uploaded log files are automatically cleaned up after 30 days.

### Linux

* AD-joined Linux devices use the correct names for user home folders.

### Component updates

* .NET 10.0.14 and PowerShell 7.6.9
* StifleR 3.1 (build .1019) and 2PXE (build .631)
* Avalonia 12 and DotNetBrowser 4.3.5 for the client user interface
  {% endupdate %}
  {% endupdates %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://documentation.2pintsoftware.com/deployr/whats-new-and-upgrades/release-notes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
