Carbon 2.1.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.
New Functions
Get-HttpUrlAcl
: uses Windows API to return HTTP URL ACLs; replaces thenetsh http show urlacl
command.Grant-HttpUrlPermission
: uses Windows API to grant listen/delegate permissions on HTTP URLs; replaces thenetsh http add urlacl
command.Revoke-HttpUrlPermission
: uses Windows API to revoke all a user or group’s permissions on HTTP URLs; replaces thenetsh http delete urlacl
command.Install-Directory
: creates a directory (and any missing parents), if it doesn’t exist already. Finally!Uninstall-Directory
: removes a directory, if it exists. Finally!Uninstall-Group
: uses theDirectoryServices.AccountManagement
.NET API to remove a group, if it exists.Test-GroupMember
: uses theDirectoryServices.AccountManagemetn
.NET API to test if a principal is a member of a group.
New DSC Resource
Carbon_Group
: resource for configuring local groups.
Bug Fixes
- Fixed:
Install-FileShare
always re-configures existing shares; it doesn’t properly detect permissions that need to be removed. - Fixed:
Set-IniEntry
fails to preserve unicode characters with diacritics in INI entry names and values. - Fixed:
Remove-IniEntry
fails to preserve unicode characters with diacritics in INI entry names and values. - Fixed:
Set-HostsEntry
leaves trailing tabs and whitespace after all but the last line. - Fixed:
Get-PowerShellModuleInstallPath
returns wrong path for PowerShell 4. - Fixed:
Protect-String
fails when Carbon is installed in a module path that contains spaces (fixes issue #174). - Fixed:
New-RsaKeyPair
generates a key pair that isn’t supported for encrypting/decrypting DSC credentials or supported by the CMS message cmdlets. - Fixed:
Get-ScheduledTask
returns invalid task commands when those commands contain quotes (works around an issue whereschtasks.exe
CSV output can’t be parsed correctly byConvertFrom-Csv
). - Fixed:
Add-GroupMember
andRemove-GroupMember
fail when addingEveryone
orNT Service\*
accounts to a group (fixes issue #177). - Fixed:
Get-SheduledTask
writes an error if a scheduled task’s XML definition is for an executable and doesn’t contain an arguments element.
Other Improvements
- Obsolete function parameters will no longer show in Intellisense (added the
DontShow
parameter property). Test-AdminPrivilege
: changed its verbose message to a debug message.Set-HostsEntry
:- only updates hosts file if it needs to change
- added an improved verbose message when setting a hosts entry
- improved error handling when hosts file can’t be opened for reading
Install-Certificate
can now install a certificate on a remote computer.Initialize-Lcm
now usesInstall-Certificate
to install the decryption certificate on the remote computer.Uninstall-Certificate
can now uninstall a certificate on a remote computer.- The following functions now write warning if you pass them a plain-text password. You should pass a
SecureString
instead.Install-Certificate
Initialize-Lcm
New-RsaKeyPair
:- Refactored to use
certreq.exe
instead ofmakecert.exe
andpvk2pfx.exe
. - Can now run non-interactively: added a
-Password
parameter used to protect the private key (it used to prompt you). - Fixed: generates a key pair that isn’t supported for encrypting/decrypting DSC credentials or supported by the CMS message cmdlets.
- Made the
-ValidFrom
and-Authority
parameters obsolete.
- Refactored to use
- Added some verbose messages to
Install-Group
andAdd-MemberToGroup
when they create/modify their objects. Install-Group
only saves changes to a group if changes were made.