> pshdo

Carbon 2.5.4 Released

Carbon 2.5.4 is out. You can download Carbon as a .ZIP archive, NuGet package, Chocolatey package, or from the PowerShell Gallery. It may take a week or two for the package to show up at chocolatey.org.

What happened to 2.5.1, 2.5.2, and 2.5.3? Well, we switched to new build and deployment automation that had bugs in the deployment part, so we ended up publishing 2.5.1 four times. Version 2.5.4 was published consistently to all platforms.

Bug Fixes

  • Fixed: Carbon takes 10 to 20 seconds to load. In trying to detect if the Win32_OptionalFeature class is available on the current operating system, it was actually loading all the Win32_OptionalFeature instances. Oops. Now, it just checks for the existence of the Win32_OptionalFeature class. Load times should now be about two to three seconds. (Fixes issue #35.)
  • Import-Carbon.ps1 now hides verbose messages typically shown by Import-Module and Remove-Module cmdlets.
  • Fixed: Assert-FirewallConfigurable fails on Windows 10.

Carbon 2.5.0 Released

Carbon 2.5.0 is out. You can download Carbon as a .ZIP archive, NuGet package, Chocolatey package, or from the PowerShell Gallery. It may take a week or two for the package to show up at chocolatey.org.

Enhancements

  • Added DelayedAutoStart boolean property to objects returned by Get-ServiceConfiguration. This flag is true when a service is set to start automatically, delayed. False otherwise. Added extended
  • The Install-Service function and the Carbon_Service DSC resource can now set a service’s startup type to Automatic (Delayed). Pass Automatic to the StartupType parameter and use the new Delayed switch. The Delayed switch is ignored unless StartupType is Automatic. Fixes issue #216.
  • The Uninstall-Certificate function can now delete a certificate by just its thumbprint. The certificate will be uninstalled from all stores. You can pipe the thumbprint or a certificate object to Uninstall-Certificate.
  • Added an EnsureRunning switch to Install-Service function to ensure that any service is started after configuring. (By default, Install-Service leaves a service stopped if it was stopped when Install-Service begins.)
  • Added IsSymbolicLink extended type property to directory and file objects (i.e. System.IO.DirectoryInfo and System.IO.FileInfo objects).
  • Added TargetPath extended type property to file (i.e. System.IO.FileInfo) objects. If a file is a symbolic link, this property will return the file the link points to.
  • The TargetPath extended type property on directory (i.e. `System.IO.DirectoryInfo) objects now returns target paths when a directory is a symbolic link.
  • Initiazlie-Lcm can’t be used on Windows Server 2016 and later to put the DSC local configuration manager into pull mode. Initialize-Lcm now writes an error when you try.

Bug Fixes

  • Install-Service and the Carbon_Service DSC resource write errors when a service is running and its startup type is changed to Disabled.
  • The Carbon_ScheduledTask DSC resource writes incorrect information to verbose log when the current and desired credential for the scheduled task are different.
  • The Carbon_ScheduledTask DSC resource doesn’t correctly detect when a task’s identity has changed (it wasn’t converting usernames to their canonical representation before comparing the existing identity with the desired identity).
  • Fixed: Importing Carbon in 32-bit PowerShell fails on a 64-bit operating system. DSC isn’t available so the Initialize-Lcm function can’t be exported. Thanks to Anders Andersson for contribuging the fix.
  • Fixed: Install-Service and Carbon_Service DSC resource fail to change the identity a service runs as if switching from a custom account to the default NetworkService account.
  • Fixed: Get-PowerShellModuleInstallPath returns nothing when run under 32-bit (x86) PowerShell on 64-bit Windows.Fixed: Get-PowerShellModuleInstallPath returns nothing when run under 32-bit (x86) PowerShell on 64-bit Windows.

Carbon 2.4.1 Released

Carbon 2.4.1 is out. You can download Carbon as a .ZIP archive, NuGet package, Chocolatey package, or from the PowerShell Gallery. It may take a week or two for the package to show up at chocolatey.org.

Bug Fixes

  • Fixed: Carbon_Permission fails when revoking permissions and the Permissions property doesn'’t have a value.
  • Fixed: Protect-String doesn’t convert secure strings properly so they get encrypted with extra bytes in them.
  • Fixed: `Revoke-Permission' fails when an identity has multiple access control entries on an item. Thanks to bozho_ for reporting issue #221 and contributing the fix.
  • Fixed: Compress-Item‘ writes an error when using the WhatIf switch.
  • Fixed: Install-IisWebsite help examples contain invalid/broken code (thanks to John Mitchell for reporting).
  • Fixed: Install-Service fails when password contains double quote character, i.e. " (fixes issue #219).
  • Fixed: Read-File and Write-File fail to retry writing to a locked file when $Global:Error is full. Fixes issue #217.
  • Fixed: Get-FirewallRule sets the EdgeTraversalPolicy to DeferUser on rules whose policy is “defer to application”.
  • Fixed: Get-FirewallRule fails on non-english-speaking computers. (It was parsing the output of netsh advfirewall. Now it uses the Windows Firewall with Advanced Security API.) [Fixes issue #208.
  • Fixed: Get-FirewallRule incorrectly parsed interface types. It assumed interface type was one of multiple values. In reality, it can be set to one or more different values. The underlying enumeration and its values have been updated to be a set of flags (i.e. a bit field).
  • Fixed: Carbon_FirewallRule fails when Profile property has more than one value.
  • Fixed: Get-ScheduledTask doesn’t handle when a scheduled task doesn’t exist on Windows 2008.

Carbon 2.4.0 Released

Carbon 2.4.0 is out. You can download Carbon as a .ZIP archive, NuGet package, Chocolatey package, or from the PowerShell Gallery. It may take a week or two for the package to show up at chocolatey.org.

Enhancements

  • Protect-String can now encrypt a SecureString. The String parameter’s type was changed to [object]. When you pass in a SecureString, it is converted to an array of bytes, encrypted, and the array of bytes are cleared from memory.
  • Renamed Protect-Acl to Disable-AclInheritance to make it clearer what the function does. Created a Protect-Acl alias in place to preserve backwards-compatability.
  • Disable-AclInheritance only disables inheritance if it is currently enabled.
  • Created Enable-AclInheritance to re-enable access rule inheritance on file system and registry ACLs. This function is paired with Disable-AclInheritance.

Bug Fixes

  • Fixed: Get-ProgramInstallInfo fails when a program’s Version registry key value can’t be converted into a Version object.
  • Fixed: Test-Service failed to detect if a device driver service is installed.
  • Fixed: Install-Service fails if a service depends on a device driver. (Note: in our testing, we can’t get a device driver set as a dependency. If you know what the secret sauce is to get this to work with sc.exe (or another means), please let us know.)
  • Fixed: Disable-AclInheritance (ne Protect-Acl) fails when piped a registry key.
  • Fixed: Get-PathProvider fails when passed a fully-qualified registry key PowerShell path, e.g. Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software.