Tuesday, May 29, 2012

Using Powershell to change powerpoint themes

 
Getting ready to give a presentation and noticed that all 14 modules are using the wrong theme.  Started in changing the theme on the seeming endless list of files and I thought, how about powershell.  Well after a quick search found this great article from Ed Wilson, thank you again ED!  http://blogs.technet.com/b/heyscriptingguy/archive/2010/05/11/hey-scripting-guy-may-11-2010.aspx
I did simplify his code by just using one folder that contains both the theme an PowerPoint slides. Just change $themepath  to the name and location or your theme and $path to the folder location of your powerpoint slides are you are set.
Add-type -AssemblyName office
$Application = New-Object -ComObject powerpoint.application
$application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$themePath = "c:\presentations\moc.thmx"
$path = "C:\Presentations"
Get-ChildItem -Path $path -Include "*.ppt", "*.pptx" -Recurse |
ForEach-Object {
 $presentation = $application.Presentations.open($_.fullname)
 $presentation.ApplyTemplate($themePath)
 $presentation.Save()
 $presentation.Close()
 "Modifying $_.FullName"
} 

$application.quit()
$application = $null
[gc]::collect()
[gc]::WaitForPendingFinalizers()




Wednesday, May 2, 2012

User Demo

Well I need to test the view limits of the new Active Directory Administrative Center I needed a quick 10000 users.  So I started by clicking … Ok thats not going to happen.  I need a script and needed to work with the AD module introduced back in Windows Server 2008 R2.
First problem is to count through several users.  After a little research the best cmdlet for this is the For Loop and here is the syntax.  I started my testing only using 25 students.
For (variable=starting number ; variable less than or equal to last number ; increment)
for ($u = 0; $u -le 25; $u++) {
     $user = "Student"+$("{0:D2}" -f $u)
    Write-Host "Creating User for $user from $u"
}
NOTE that "+$("{0:D2}" cleans up the display to 2 characters
for ($u = 0; $u -le 25; $u++) {
     $user = "Student"+$("{0:D2}" -f $u)
    Write-Host "Creating User for $user from $u"
}
image
Now that I am counting I am ready to add user but running out of time today more to come later.