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!

Project Server - Change field name on PDP for standard fields (like the Owner field)

Project Server - Change owner field name on PDP The field names on the PDPs (Project Detail Pages) has been preselected on the standard fields for a project. If you want to change the Owner to something else it is quite difficult. In the following i will explain how we can change this field through the Content Editor webpart. To change the owner field add a Content Editor webpart to the PDP page where the field is inserted. Select the webpart and from the ribbon select HTML->Edit HTML Source. Copy/Paste the following code into the Content Editor webpart. < script type ="text/javascript">     var old_name = "Owner" ;     var new_name = "Ansvarlig" ;     var ttnA = document.getElementsByTagName( "div" );     for ( var j = 0; j < ttnA.length; j++) {         var orig = ttnA[j].innerHTML;         var stripped = orig.replace( /^\s*/ , "" ).replace( /\s*$/ , &quo

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,