Richard Siddaway

Explore articles and content from this author

Richard Siddaway

128 articles published

1 min read

PowerShell and Active Directory recording

The recording, slides and demo script from yesterday"™s PowerShell and Active Directory session can be found here: https://skydrive.live.com/?cid=43cfa46a74cf3e96#cid=43CFA46A74CF3E96&id=43CFA46A74CF3E96%2140563

1 min read

PowerShell workflows"“now we are six

The sixth in the series of articles on PowerShell workflows that are appearing on the Scripting Guy blog has been published. The articles in the series that have been published are: http://blogs.technet.com/b/heyscriptingguy/archive/2012/12/26/powershell-workflows-the-basics.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/02/powershell-workflows-restrictions.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/09/powershell-workflows-nesting.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/16/powershell-workflows-job-engine.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/23/powershell-workflows-restarting-the-computer.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/30/powershell-workflows-using-parameters.aspx Look for the next article in one weeks time. Until then Enjoy!

2 min read

Piping between functions

A question came up about piping between advanced functions. The input to the second function might be an array. To illustrate how this works imagine a function that gets disk information ““ or better still use this one. `function get-mydisk { [ CmdletBinding ( ) ] param ( [string] $computername = “$env:COMPUTERNAME” ) BEGIN { } #begin PROCESS { Get-WmiObject -Class Win32_LogicalDisk -ComputerName $computername | foreach { New-Object -TypeName PSObject

2 min read

Starting virtual machines for WSUS

My test environment usually has a dozen or so machines at any one time. Some of these are short lived and used for a particular piece of testing ““ others are kept for years. I decided that I wanted to keep up to date on the patching of these virtual machines so installed WSUS on a Windows 2012 box. One issue is that if a VM isn"™t started for 10 days WSUS starts complaining that it hasn"™t been contacted and if you run the WSUS clean up wizard the non-reporting servers may be removed.

1 min read

Account SIDs"“hopefully my last word

Ok the embarrassing moral of this story is that you shouldn’t answer questions in a hurry at the end of the evening. 5 minutes after shutting down I realised that there is a far, far simpler way to get the info. Win32_AccountSID is a WMI linking class. It links Win32_SystemAccount and Win32_SID classes. Get-WmiObject -Class Win32_SystemAccount | select Caption, Domain, Name, SID, LocalAccount gets you all you need

1 min read

Account SIDs revisited

I realised there is an easier way to get the data `function get-SID { param ( [string] $computername = $env:COMPUTERNAME ) Get-WmiObject -Class Win32_AccountSID -ComputerName $computername | foreach { $exp = “[wmi]'” $( $_ . Element ) “'” Invoke-Expression -Command $exp | select Domain , Name , SID , LocalAccount } } `Use the wmi type accelerator with the path from the Element and you can just select the data you want.

1 min read

Passing function names

A question asked about passing a function name into another function which then called the function. It sounds worse than it is. if you need to pass the name of a command and then call it try using invoke-expression `function ffour { Get-Random } function fthree { Get-Date } function ftwo { param ( [string] $fname ) Invoke-Expression $fname } “date” ftwo fthree “random” ftwo ffour `

1 min read

Account SIDs

A question on the forum asked about finding the accounts and SIDs on the local machine. `function get-SID { param ( [string] $computername = $env:COMPUTERNAME ) Get-WmiObject -Class Win32_AccountSID -ComputerName $computername | foreach { $da = ( ( $_ . Element ) . Split ( “.” ) [ 1 ] ) . Split ( “,” ) $sid = ( $_ . Setting -split “=” ) [ 1 ] -replace ‘"’

1 min read

UK PowerShell group "“ 29 January 2013

`**When: Tuesday, Jan 29, 2013 7:30 PM (GMT) Where: virtual *~*~*~*~*~*~*~*~*~* `Active Directory is one of the commonest automation targets for administrators. This session will covert the basics of automating your AD admin – scripts and the Microsoft cmdlets. The new features in PowerShell for Windows 2012 AD will also be covered Notes**`Richard Siddaway has invited you to attend an online meeting using Live Meeting.**[Join the meeting.](https://www.livemeeting.com/cc/usergroups/join?id=RCRWH3&role=attend&pw=5p7%24%7DS_%21h)****Audio Information****Computer Audio****To use computer audio, you need speakers and microphone, or a headset.