PowerShell for Windows Admins


May 5, 2015  12:44 PM

WMF 5.0 April 2015 preview – – creating guid

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

Creating a GUID has always been possible with PowerShell – you just had to drop into .NET

£> [System.Guid]::NewGuid()

Guid
—-
46c130ca-39ff-463c-b7fb-ed728a1c134f

With the latest WMF 5.0 preview life gets easier:

£> Get-Command New-Guid -Syntax

New-Guid [<CommonParameters>]

£> New-Guid

Guid
—-
112866a5-1662-4265-b851-f9086607bcb2

The New-Guid cmdlet happily creates a GUID for you – and you don’t have to remember the >NET syntax.

If you want the GUID in a variable as a string

£> $guid = New-Guid | select -ExpandProperty Guid
£> $guid
5c832d40-0ea4-4b42-b0bd-b228da008c9d

May 1, 2015  4:30 AM

WMF 5.0 April 2015 preview – – Format-Hex

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

Have you ever needed to generate a hex representation of a string or binary data?

Say you have a string – ‘PowerShell Rocks’

And you want to go the hex representation which is

50 6f 77 65 72 53 68 65 6c 6c 20 52 6f 63 6b 73

You would have to do something like this

$hexary = @()
$chars = ‘PowerShell Rocks’ -split ”

foreach ($char in $chars) {
if ($char -ne ”) {
$hexary += [convert]::ToString(([byte][char]$char),16)
}
}

$hexary -join ‘ ‘

Split the string into an array of strings each of a single character. If the string is not empty convert it to a [char] then a [byte] and finally a string formatted as hex.

The April 2015 WMF 5.0 preview simplifies that process

£> ‘PowerShell Rocks’ | Format-Hex
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   50 6F 77 65 72 53 68 65 6C 6C 20 52 6F 63 6B 73  PowerShell Rocks

You can also view binary files such as Word documents in .doc format


April 30, 2015  12:00 PM

WMF 5.0 – Clipboard cmdlets

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

The April 2015 WMF 5.0 preview brings new functionality in the shape of cmdlets for working directly with the clipboard.

You use Set-Clipboard to put data onto the clipboard

£> get-command Set-Clipboard -Syntax

Set-Clipboard [-Append] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-Clipboard [-Value] <string[]> [-Append] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-Clipboard -Path <string[]> [-Append] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-Clipboard -LiteralPath <string[]> [-Append] [-WhatIf] [-Confirm] [<CommonParameters>]

You can add text or files to the clipboard. Notice that you can use –Append to add to the clipboard content rather than overwriting any existing data.

For instance:
Set-Clipboard -Value “test”

The contents of the clipboard are retrieved using Get-Clipboard

£> Get-Clipboard -Raw
test

As well as raw data you can pull data in a number of formats.

£> Get-Command Get-Clipboard -Syntax

Get-Clipboard [-Format <ClipboardFormat>] [-TextFormatType <TextDataFormat>] [-Raw] [<CommonParameters>]

Format can be one of: Text, FileDropList, Image, Audio

TextFormat type can be one of:  Text, UnicodeText, Rtf, Html, CommaSeparatedValue

These all produce the same result:

£> Get-Clipboard -Raw
test

£> Get-Clipboard -TextFormatType Text
£> Get-Clipboard -Raw
test
£> Get-Clipboard -Format Text
£> Get-Clipboard -Raw
test

Notice how use the TextFormatType Text or Format Text cause get-Clipboard to be called again with the –Raw parameter

One obvious and useful tasking for the clipboard cmdlets is copying commands between PowerShell sessions:

On the source machine

£> Get-History -Id 43

Id CommandLine
— ———–
43 Find-Package -Name PSReadline -Source PSGallery | fl *

Set-Clipboard -Value (Get-History -Id 43 | select -ExpandProperty Commandline)

On the target machine:

Invoke-Expression -Command (Get-Clipboard -Raw)

This is one set of cmdlets that will generate many more uses as you experiment with them


April 30, 2015  5:51 AM

WMF 5.0–New-TemporaryFile

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

Creating a temporary file in PowerShell 4.0 and earlier has been possible using a number of techniques such as:

£> $file = [System.IO.Path]::GetTempFileName()
£> $file
C:\Users\Richard\AppData\Local\Temp\tmpEFAD.tmp

With the April 2015 WMF 5.0 preview this becomes much easier

£> $file2 = New-TemporaryFile
£> $file2
    Directory: C:\Users\Richard\AppData\Local\Temp
Mode                LastWriteTime         Length Name
—-                ————-         —— —-
-a—-        4/30/2015  12:42 PM              0 tmp1FE1.tmp

Now you can create files simply and easily without having to remember the .NET syntax.

Notice that the temporary files are automatically created in your TEMP folder.

£> $env:TEMP
C:\Users\Richard\AppData\Local\Temp


April 29, 2015  11:19 AM

WMF 5.0 April 2015 Preview is available

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

The PowerShell team have released the April 2015 WMF 5.0 preview.  Details from http://blogs.msdn.com/b/powershell/archive/2015/04/29/windows-management-framework-5-0-preview-april-2015-is-now-available.aspx


April 28, 2015  1:05 PM

Blocksize missing?

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
CIM, Disk architecture

I recently had a question asking why the Bloacksize property on Win32_LogicalDisk is empty but is populated on Win32_Volume.

The thing is to remember the underlying thing that these 2 CIM classes represent.

A logical disk is a subdivision of an extended partition. An extended partition can hold one or more logical disks.

When you create a volume on a disk you use either a primary partition or a logical disk from an extended partition. Until you format the volume you can’t have a block size as that is determined by the parameters you use to perform the format.

The documentation for Win32_LogicalDisk states that block size is not populated for logical disks https://msdn.microsoft.com/en-us/library/aa394173(v=vs.85).aspx.


April 28, 2015  3:16 AM

OMI/CIM/WMI dictionary

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
CIM, Powershell, WMI

Don Jones provides a very good summary of the similarities and differences between WMI, CIM and OMI http://powershell.org/wp/2015/04/24/management-information-the-omicimwmimidmtf-dictionary/

Recommended reading if you’re using these technologies


April 22, 2015  2:12 PM

PowerShell Summit NA 2015

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

We’re into the last afternoon as I write this. We’ve had some amazing sessions with excellent presentations on DSC, security aspects of using PowerShell, using and manipulating data with PowerShell, PowerShellGet, Nano server, working with ACLs in PowerShell and PowerShell help.

This has been out third Summit and North America and probably the best. We’ve had a great audience and are planning hard for next year


April 21, 2015  1:09 PM

PowerShell Summit NA 2015–announcements

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

The PowerShell Team announced some things on Monday

OneGet is now PowerShell Package Maanger

Next WMF 5.0 preview will become available on 30 April

Pester – the testing module – will be included in Windows

Open Source projects on Github:

DSC Resource Kit

PowerShell Script Analayzer

Virtual Studio PowerShell Plug-in


April 21, 2015  11:25 AM

PowerShell Summit NA 2015–recordings

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

The recordings from PowerShell Summit NA 2015 are starting to become available on the powershell.org you tube channel.

This gives you an opportunity to watch the sessions you missed.

If you didn’t attend the Summit it gives you the opportunity to see what the Summit is like and why you should be there


Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: