> pshdo

Carbon 1.7 Released

Carbon 1.7 is out and is backwards compatible with 1.0 through 1.6. It supports PowerShell 2. It contains mostly bug fixes and some enhancements.

Get the bits at BitBucket.

There is now a Carbon support mailing list.

Enhancements

General

  • Import-Carbon.ps1 now supports the -WhatIf switch.
  • Import-Carbon.ps1 now hides verbose log messages when removing/importing Carbon even when supplying the -Verbose switch because I think the verbose output is too verbose and not helpful at all.
  • Import-Carbon.ps1 now supports adding a prefix when importing the Carbon module (with the Prefix parameter) to avoid name collisions and follow best practices.

Certificates

Bug Fixes

General

  • No more silent errors when importing Carbon on Windows 2012 R2.

Certificates

  • Get-Certificate no longer writes a silent error when a certificate does not exist. Instead, no error is written.

File System

Security

  • Grant-Permission fails when item is hidden.
  • Grant-Permission doesn’t handle non-existent paths, causing cascading errors.
  • Test-Permission always returns $false when testing leaf-level permissions and the ApplyTo parameter is provided, i.e. it doesn’t ignore inheritance/propagation flags on leaves.

Carbon 1.6 Released

Carbon 1.6 is out and is backwards compatible with 1.0 through 1.5.1. It supports PowerShell 2. It contains a few bug fixes and many enhancements.

Get the bits at BitBucket.

Bug Fixes

File System

  • Remove-Junction doesn’t delete a junction when given a relative path to the junction.

Services

Shares

Enhancements

Hosts File

IIS

.NET

  • Created Test-DotNet for testing if v2 or v4 of the .NET framework is installed.

Path

PowerShell

  • Updated Invoke-PowerShell to test if the appropriate .NET framework is installed if the user chooses an explicit runtime to use.

Security

  • Created Test-Permission function for checking if a user/group has a set of permissions and, optionally, a set of inheritance and propagation flags on a file, directory, or registry key.
  • Test-Permission now automatically includes the Synchronize permission when checking for exact permissions, since this permission is always on and can never be removed from a file/directory.

Services

Users and Groups

Windows Features

  • Marked Assert-WindowsFeatureFunctionsSupported as an internal function. Please don’t use. It will be removed from future versions of PowerShell.
  • Updated Test-WindowsFeature to work on Windows 8/2012.
  • Created new Carbon.Identity class for representing identities. It also contains a static FindByName method which uses The Windows LookupAccountName function to find full account names, domains, and sids.
  • Updated Test-Identity to use [Carbon.Identity]::FindByName to find identities so it no longer throws exceptions when an identity can’t be found.
  • Updated Resolve-IdentityName to use [Carbon.Identity]::FindByName to find identities so it no longer throws exceptions when an identity can’t be found.

Carbon v1.5 Released

Carbon v1.5 is out and is backwards compatible with v1.0 through v1.4. This release adds a few new features and some bug fixes to improve PowerShell 3 support.

This is definitely the last release to support PowerShell 2. There were enough bug fixes that I didn’t feel good about making people upgrade to a backwards-incompatible version to get them, so I jumped through some extra hoops to test on PowerShell 2. You’re welcome. ;-)

Get the bits at BitBucket.

Enhancements

IIS

  • Set-IisWebsiteID now attempts to start a website whose ID has changed, since IIS stops a website whenever its ID changes.

Network

  • Added Get-IPAddress function for getting the IPv4/IPv6 addresses currently in use on the local computer’s network interfaces.
  • Added Test-IPAddress function for testing if an IP address is in use on one the local computer’s network interfaces.

Path

  • Added Test-UncPath function for testing if a path is a UNC or not.

PowerShell

Shares

Bug Fixes

Certificates

  • Get-Certificate throws an exception and halts script execution when loading a certificate file with a private key and the user doesn’t have permission to write to Windows' MachineKeys directory. It now writes an error instead.

PowerShell

  • Invoke-PowerShell doesn’t run under a v2.0 CLR when using parameters -Runtime 'v2.0'.

Carbon v1.4 Released

Carbon v1.4 is out and is backwards compatible with v1.0 through v1.3. This release adds a few new features and some bug fixes introduced in v1.3.

This will most likely be the last version of Carbon tested and supported on PowerShell 2. We’ll be moving the build server to PowerShell 3 sometime around August 15th, which means that’s the version of PowerShell the automated tests will use. We encourage everyone to upgrade to PowerShell 3 as soon as possible.

Get the bits at BitBucket.

Enhancements

File System

  • Created Install-Junction function for creating new and/or updating existing junctions. This is a more idempotent way of creating junctions, as opposed to New-Junction and Remove-Junction which report errors if a junction already exists or doesn’t exist, respectively.

IIS

  • Objects returned by Get-IisWebsite now have a dynamic PhysicalPath script property, so you don’t have to traverse down into the default application’s default virtual directory object to get it.
  • Install-IisApplication, Install-IisWebsite, and Install-IisVirtualDirectory now canonicalize physical paths, i.e. they convert any path with a relative part (e.g. ‘..’) to a full path. It turns out IIS doesn’t like paths with relative parts.
  • Created Get-IisApplication function to get Microsoft.Web.Administration.Application objects for all or specific applications under a website.
  • Install-IisApplication now uses the Microsoft.Web.Administration API instead of appcmd.exe.

PowerShell

Bug Fixes

IIS

.NET