PowerShell for Windows Admins


October 4, 2016  12:50 PM

Filter early and WQL

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

What’s wrong with this:

Get-CimInstance -ClassName Win32_Service |
where {$_.State -eq ‘Running’ -and $_.StartName -notlike ‘LocalSystem’ -and $_.StartName -notlike ‘NT Authority*’} |
select PSComputerName, Name, DisplayName, State, StartName

Nothing except that its inefficient. if you ran this against a remote machine the filtering would happen on the local machine AFTER you’d dragged everything across the network. May not matter for a few machines but when you get to hundreds or thousands of machines it will have an impact

You need to use a filter. First try would be something like this:

Get-CimInstance -ClassName Win32_Service  -Filter “State = ‘Running’ AND StartName != ‘LocalSystem’ AND NOT StartName LIKE ‘NT Authority%'”|
select PSComputerName, Name, DisplayName, State, StartName

Unfortunately any services with a NULL StartName will also be filtered out

This will work

Get-CimInstance -ClassName Win32_Service  -Filter “State = ‘Running’ AND Startname != ‘LocalSystem’ AND StartName != ‘NT AUTHORITY\\LocalService’ AND StartName != ‘NT AUTHORITY\\NetworkService'”|
select PSComputerName, Name, DisplayName, State, StartName

Same results are obtained with Get-WmiObject

October 3, 2016  2:52 AM

Opportunities come and go

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

The deadline for the submission of proposals for the 2017 has passed. We are NOT taking any new submissions. if you’ve been in communication regarding a submission thats fine its still under consideration and I’ll be in touch.

On the positive side the call for speakers for the European PowerShell conference has opened – http://www.powertheshell.com/psconfeu/


September 29, 2016  1:21 PM

PowerShell classes

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

I’ve just had an article on PowerShell classes published on the UK TechNet bog – https://blogs.technet.microsoft.com/uktechnet/2016/09/29/powershell-classes/


September 27, 2016  1:15 PM

Few days left for PowerShell & DevOps Global Summit 2007 session proposals

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

You have a few days left to get your sessions proposals submitted for PowerShell & DevOps Global Summit 2017 –  details from

https://powershell.org/2016/08/01/powershell-and-devops-global-summit-2017-call-for-topics/

For more topic ideas see

https://powershell.org/2016/09/06/nearing-last-call-for-powershell-summit-topic-proposals-topic-ideas/

We are treating end of September as a hard deadline so don’t delay


September 26, 2016  7:53 PM

Windows Server 2016 launches

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Windows Server 2016

The launch of Windows Server 2016 has been announced at Ignite – https://blogs.technet.microsoft.com/hybridcloud/2016/09/26/announcing-the-launch-of-windows-server-2016/

Evaluations can be downloaded from the link in the above post.

Soon be time to re-build the test lab


September 23, 2016  7:49 AM

September 2016–DSC Resource updates

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

Two new modules of DSC resources are available:

OfficeOnlineServerDsc

SystemLocaleDsc

A number of updates to existing resources have been made available.

Details from https://blogs.msdn.microsoft.com/powershell/2016/09/21/dsc-resource-kit-september-release/


September 19, 2016  12:57 PM

Update-Help errors

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

One the latest build of Windows 10 – 14296 I’m getting errors when updating help. Three modules do’t seem to have help available

Update-Help : Failed to update Help for the module(s) ‘Microsoft.PowerShell.Operation.Validation’
with UI culture(s) {en-GB} : The value of the HelpInfoUri key in the module manifest must resolve to
a container or root URL on a website where the help files are stored. The HelpInfoUri
https://www.msn.com/en-gb/?ocid=NEFLS000′ does not resolve to a container.
At line:1 char:1
+ Update-Help -Force
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : InvalidHelpInfoUri,Microsoft.PowerShell.Commands.UpdateHelpCommand

Update-Help : Failed to update Help for the module(s) ‘PSScriptAnalyzer’ with UI culture(s) {en-US}
: The Help content at the specified location is not valid. Specify a location that contains valid
Help Content.
At line:1 char:1
+ Update-Help -Force
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : HelpContentXmlValidationFailure,Microsoft.PowerShell.Commands.UpdateHe
lpCommand

Update-Help : Failed to update Help for the module(s) ‘SecureBoot’ with UI culture(s) {en-GB} :
Unable to retrieve the HelpInfo XML file for UI culture en-GB. Make sure the HelpInfoUri property in
the module manifest is valid or check your network connection and then try the command again.
At line:1 char:1
+ Update-Help -Force
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.UpdateHelpCo
mmand

I’ve checked and the help isn’t available for en-US culture.


September 19, 2016  7:33 AM

Talk like a pirate day

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
General

In honor of International talk like a pirate day  – http://talklikeapirate.com/wordpress/

What’s a pirate’s favorite programming language?

R

What’s a pirate’s favorite load balancer?

ARR

= Application Request Routing –  see http://www.iis.net/learn/extensions/installing-application-request-routing-arr

Normal service may be resumed quite soon


September 18, 2016  3:39 AM

Unregistering the default repository–PS version dependent?

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

In this post – https://richardspowershellblog.wordpress.com/2016/09/17/powershell-repositories/ – I stated that you could unregister the default PowerShell repository. I also said that the statement in the documentation for Unregister-PSrepository that you couldn’t unregister PSGallery was incorrect.

A couple of readers have left comments stating that they tried it and got an error message stating that PSGallery can’t be unregistered.

I did my first test on Windows 10 latest preview build – build 14926

PS> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14926.1000
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14926.1000
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

I’ve just test on Windows Server 2016 TP5

PS C:\Windows\system32> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14300.1000
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.14300.1000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

The version of PowerShell 5.1 on Server 2016 TP5 doesn’t have the –Default parameter on Register-PSrepositiry but this works

Register-PSRepository -Name PSGallery -SourceLocation https://www.powershellgallery.com/api/v2/

It appears that the ability to unregister the default repository and then re-register it is an evolving feature in PowerShell 5.1


September 17, 2016  1:56 PM

PowerShell repositories

Richard Siddaway Richard Siddaway Profile: Richard Siddaway
Powershell

A reader on my blog asked if you can unregister the default PowerShell repository so you just use an internal repository.

First off – PSGallery is the default repository

PS> Get-PSRepository | Format-List

Name                      : PSGallery
SourceLocation            : https://www.powershellgallery.com/api/v2/
Trusted                   : False
Registered                : True
InstallationPolicy        : Untrusted
PackageManagementProvider : NuGet
PublishLocation           : https://www.powershellgallery.com/api/v2/package/
ScriptSourceLocation      : https://www.powershellgallery.com/api/v2/items/psscript/
ScriptPublishLocation     : https://www.powershellgallery.com/api/v2/package/
ProviderOptions           : {}

According to the documentation for Unregister-PSRepository you CAN’T unregister the default repository. In fact you can – the documentation appears to be incorrect

You can unregister PSGallery  with

Get-PSRepository -Name PSGallery | Unregister-PSRepository

NOTE You have to do this on a user by user basis

If you decide you need the default repository again then you can register it like this:

Register-PSRepository –Default


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: