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.
To connect to the MS Project client simply start up the Powershell ISE and use the following command.
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).aspxMS 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
Post a Comment