Skip to main content

Powershell procedures/cmdlets - MS Project client/Project Server

Powershell is becoming part of any IT-Administrator inventory. If you worked with Project Server 2013 or SharePoint 2013 you are properly avare of many of the many cmdlets available.


Project Server - Powershell cmdlets

For a list of the Project Server cmdlets see this Technet article: http://technet.microsoft.com/en-us/library/ee890097(v=office.15).aspx


MS Project - Powershell cmdlets

Untill recently I was not aware you can access the MS Project client though Powershell. There is actally quite a big API available as you are simply attaching into the VBA/VSTO API.
To connect to the MS Project client simply start up the Powershell ISE and use the following command.
 $Project = New-Object -ComObject msproject.application  

After you are connected the commands are very similar to the VBA counterpart, if you for example want to find the name of all the tasks.
 $Project.Visible = $True  
 $tsks = $Project.ActiveProject.Tasks  
 Foreach ($tsk in $tsks)  
 {  
   Write-Host $tsk.Name  
 }  

Or if you want to open and edit the enterprise calendar.
 $cal_guid = [GUID]"32E5163F-8F5C-472E-9497-F905B3A81E2D"  
 $Project.EditEnterpriseCalendar($cal_guid)  

Basically any VBA call can be migrated into Powershell, see this site for great VBA axamples.

General Powershell Problems

If you get the following error:
 file.ps1 cannot be loaded because the execution of scripts is disabled on this system  
Use the following command to allow the execution policy:
 set-executionpolicy unrestricted  
Note: the above command migth result in the following error:
 set-executionpolicy : Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. To chang  
 e the execution policy for the default (LocalMachine) scope, start Windows PowerShell with the "Run as administrator" option. To change the execution p  
 olicy for the current user, run "Set-ExecutionPolicy -Scope CurrentUser".  
 At line:1 char:1  
 + set-executionpolicy unrestricted  
 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   + CategoryInfo     : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException  
   + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand  
In this case it can be resolved by adding you account to the permission in a regestry key.
- Click start and run: regedt32
- Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell
- Right-Click the key and select Permissions 
- Select, and add your account, 
- Grant it "Full Control" privileges


Comments

Popular posts from this blog

Azure DevOps - Gantt Chart

It's been a while since my last post - in the past couple of weeks I have played around with some videos of topics I find interesting. One of these topics are a very cool way of displaying a Gantt Chart upon your Azure DevOps board's. Check it out here!

Sharepoint/Project Server App with javascript and Web Part

Getting Project Server code to run in a AppPart Today I tried to get project server CSOM/javascript code to run within an app part. This caused a lot of troubleshooting and guessing to get it to work. By simply adding the ps.js library to the app part page I kept getting an error. Library: <script type="text/javascript" src="/_layouts/15/ps.js"></script> Error: "executeordelayuntilscriptloaded is undefined" Then I tried to use ScriptLink to load the library but got the same error. <SharePoint:ScriptLink runat="server" Name="ps.js" Localizable="false" OnDemand="False" LoadAfterUI="True"></SharePoint:ScriptLink> The code I was trying to run was very simpel and worked fine if I added it to a normal aspx page.  $(document).ready(function () {     var projContext = PS.ProjectContext.get_current();       var projects = projContext.get_projects();     projContext.load(projects...

PowerShell results size unlimited/truncated - $FormatEnumerationLimit/Width

Ever experienced the problem where you run a Powershell command and you cannot see the whole result because the result is truncated. Problem: If you for example run the Test-SPsite command you might see something like the following: Site : SPSite Url=http://atlas/pwa Results : { SPSiteHealthResult Status=Passed RuleName="Conflicting Content Types" RuleId=befe203b-a8c0-48c2-b5f0-27c10f9e1622, SPSiteHealthResult Status=FailedWarning RuleName="Customized Files" RuleId=cd839b0d-9707-4950-8fac-f306cb920f6c, SPSiteHealthResult Status=Passed RuleName="Missing Galleries" RuleId=ee967197-ccbe-4c00-88e4-e6fab81145e1, SPSiteHealthResult Status=Passed RuleName="Missing Parent Content Types" RuleId=a9a6769f-7289-4b9f-ae7f-5db4b997d284, SPSiteHealthResult Status=FailedError RuleName="Missing Site Templates" RuleId=5258ccf5-e7d6-4df7-b8ae-12fcc0513ebd, ...