Monthly Archives: June 2011

PowerShell web cast by Don Jones

Combining Output from Multiple Sources

Webcast: Combining Output from Multiple Sources REGISTER NOW

July 6, 2011, 12pm CST

Presented by: Don Jones

Learn how easy-to-make custom objects not only let you combine output from multiple sources, but also allow you to create calculated properties and columns, customize output formatting, and easily send your output to CSV files, XML files, HTML, or pretty much anything you like.

Don Jones is the founder of ScriptingAnswers.com and the lead scripting guru at SAPIEN Technologies. He’s the author or more than twenty books on information technology, including Managing Windows with VBScript and WMI, Advanced VBScript for Windows Administrators, and Windows PowerShell: TFM. Don has written and spoken extensively about scripting and automation for years, including columns in REDMOND Magazine, MCPMag.com, Microsoft TechNet Magazine, and more, as well as a series of scripting-related Webinars for Microsoft TechNet. Don is a multiple recipient of Microsoft’s MVP Award, and one of the industry’s strongest advocates for Windows administrative automation.

Registration URL:

http://www.idera.com/Events/RegisterWC.aspx?EventID=192&s=EM_PSExpert _PSWC

Scripting Guy discusses PAM modules

My codeplex project publishing PowerShell Admin Modules (PAM) is discussed in this post

http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/29/don-t-write-wmi-scripts-use-a-powershell-module.aspx

In particular the Get-OSInfo function from the PAMSysInfo module is heavily featured

UK PowerShell Group–June 2011 PowerShell and Office – slides and scripts

As promised on the Live Meeting the slides and scripts are now available at

https://skydrive.live.com/?wa=wsignin1.0&cid=43cfa46a74cf3e96#!/?cid=43cfa46a74cf3e96&sc=documents&uc=1&id=43CFA46A74CF3E96%212924!cid=43CFA46A74CF3E96&id=43CFA46A74CF3E96%212924

UK PowerShell Group–July meeting advance warning

The UK PowerShell group will be presenting a Live Meeting – Tuesday 26 July 2011 @ 7.30pm BST

Subject – PowerShell Remoting

More details to follow

Migrate BPOS users to Office 365 – or not as the case may be….

Much fanfare, party hats, whistles….. massive advertising…..


Office 365 is here….  but is it?


Right now, as I type this I am on the phone to Microsoft Online Services technical support whom obviously have had completely ZERO, nil, nada training in BPOS to Office 365 migrations.   Worse, they are obviously embarrassed about it.


Simple example…  I have a small customer of 20 users on BPOS.   They want on Office 365 now, and I am trying to initiate the migration request.   Reading this page linked directly from Microsoft’s own transition pages…


Sign in to the Office 365 portal using the same credentials you used in BPOS and then see Set up your desktop for Office 365. For information about using Lync 2010, see these Lync quick start guides and the Lync section of the Getting started page.

Really?   Well I have tried this now with three sets of BPOS user admin accounts and guess what….  you can’t logon.   Worse, the technical support team don’t know why, nor understand that instruction.

I thought then that I might be missing some step, so went back to the Administrator instructions linked from the same Microsoft transition pages where I read this:

For each subscription that you have, make sure that contact details for both the account owner and service administrator are up-to-date.

Monitor these email addresses regularly to check for email communications about transition.

Add @email.microsoftonline.com to your safe senders list to make sure you receive communications from Microsoft Online Services.

Ummm.. ok?   What exactly does this mean?    I am the admin, and do already monitor these addresses.   I am beginning to think that, in fact, Office 365 isn’t quite as ready as Microsoft would have you believe for BPOS customers.

Bit of a #FAIL and very unclear as to what we have to do to initiate our customers migrations.   Please fix it Microsoft.

Handy Andy Goodman reports:

Handy Andy Goodman reports:

SMB MVP Tour to stop in Triad Area of North Carolina Aug 2nd, registration now open for this stop at http://smbmvptour.com/register

This event will consist of content developed and presented by Microsoft MVPs from various specialties, presented by our peers going out to do events with grassroots local IT PRO GROUPS as the hosts of the events.

SMB Technology Network Triad NC Chapter:
http://www.sbs-rocks.com/triadsbsgroup/

Are you a SMB User group leader?

If you are, and if you are on the SBSGroupsleads listserve you got an email from Jeff Middleton kicking off the USA organization for the MVPTour.

If you didn’t get that email, make sure you are on that listserve.  If you are a SMBusergroup leader and are not on that listserve…why aren’t you on that listserve?

There will be a live meeting tomorrow at 3 p.m to go over registration to get a tour stopping in your area.  If you miss it, don’t worry there’s another one next week.

You can email my personal assistant, Susan at susan-at-msmvps.com for directions on how to sign up.

Keep a look out, I may be in your neighborhood next!

Sincerely, the SMB MVP tour gnome.

IE history to CSV

Back in April last year I wrote a post about viewing IE history

http://msmvps.com/blogs/richardsiddaway/archive/2010/04/13/ie-history.aspx

I had a comment left asking how this could be put into a CSV file

We’ll start by turning the script into an advanced function that outputs an object

function get-iehistory {            
[CmdletBinding()]            
param ()            
            
$shell = New-Object -ComObject Shell.Application            
$hist = $shell.NameSpace(34)            
$folder = $hist.Self            
            
$hist.Items() |             
foreach {            
 if ($_.IsFolder) {            
   $siteFolder = $_.GetFolder            
   $siteFolder.Items() |             
   foreach {            
     $site = $_            
             
     if ($site.IsFolder) {            
        $pageFolder  = $site.GetFolder            
        $pageFolder.Items() |             
        foreach {            
           $visit = New-Object -TypeName PSObject -Property @{            
               Site = $($site.Name)            
               URL = $($pageFolder.GetDetailsOf($_,0))            
               Date = $( $pageFolder.GetDetailsOf($_,2))            
           }            
           $visit            
        }            
     }            
   }            
 }            
}            
}


The main changes are to stop writing strings to the output and to create an object to put the data into.



Run the function by dot sourcing the file you have the script in – its easier to do this in ISE Then try these commands



get-iehistory
get-iehistory | export-csv iehistory.csv -TypeInformation
Import-Csv iehistory.csv

Setting Security permissions on an AD group

We saw how to create an AD security group here

http://msmvps.com/blogs/richardsiddaway/archive/2011/06/28/creating-ad-security-groups.aspx

 

This is how we can give a user full control of that group

function set-groupsecurity {            
[CmdletBinding()]            
param (            
 [string]$name            
)            
$dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()            
$root = $dom.GetDirectoryEntry()            
            
$search = [System.DirectoryServices.DirectorySearcher]$root            
$search.Filter = "(&(objectclass=group)(Name=$name))"            
$search.SizeLimit = 3000            
$result = $search.FindOne()            
            
$object = $result.GetDirectoryEntry()            
            
$sec = $object.ObjectSecurity            
            
## set the rights and control type            
$act = [System.Security.AccessControl.AccessControlType]::Allow            
$adrights = [System.DirectoryServices.ActiveDirectoryRights]::GenericAll            
            
## who does this apply to            
$domname = ([ADSI]"").Name            
$who = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList "$domname", "jtest"            
            
# apply rule            
$newrule = New-Object -TypeName System.DirectoryServices.ActiveDirectoryAccessRule -ArgumentList $who, $adrights, $act            
$sec.AddAccessRule($newrule)            
$object.CommitChanges()            
}


We get a directory object for the group and then get the ObjectSecurity. Create a new rule to allow full control. Assign it to user jtest (could just as easily be a group) and apply the rule

UK PowerShell UG–30 June 2011

The rescheduled UG session (via Live Meeting) on using Office products with PowerShell is tomorrow. Details from

http://msmvps.com/blogs/richardsiddaway/archive/2011/06/21/rescheduled-ug-meeting.aspx

Recent Comments

Archives