Skip to main content

How do I automate PI System tasks with PowerShell?

How do I automate PI System tasks with PowerShell?

PowerShell can automate PI System administration using AF SDK's .NET assemblies.

Loading AF SDK in PowerShell

# Load AF SDK assemblies
[System.Reflection.Assembly]::LoadWithPartialName("OSIsoft.AFSDK") | Out-Null

# Connect to PI AF
$piSystems = New-Object OSIsoft.AF.PISystems
$piSystem = $piSystems.DefaultPISystem
$piSystem.Connect()
$db = $piSystem.Databases.DefaultDatabase

Write-Host "Connected to: $($db.Name)"

Common Automation Tasks

Export Tag List

$piServer = [OSIsoft.AF.PI.PIServer]::FindPIServer("MyPIServer")
$piServer.Connect()

$points = [OSIsoft.AF.PI.PIPoint]::FindPIPoints($piServer, "*", $null, $null)
$points | ForEach-Object {
    [PSCustomObject]@{
        Tag = $_.Name
        PointType = $_.PointType
        Engineering = $_.GetAttribute("engunits")
    }
} | Export-Csv "PI_Tags.csv" -NoTypeInformation

Bulk Create Tags

$csv = Import-Csv "NewTags.csv"
foreach ($row in $csv) {
    $attrs = @{
        "pointtype" = $row.PointType
        "engunits" = $row.Units
        "compdev" = $row.CompDev
        "pointsource" = $row.Source
    }
    [OSIsoft.AF.PI.PIPoint]::CreatePIPoint($piServer, $row.TagName, $attrs)
    Write-Host "Created: $($row.TagName)"
}

Health Check Script

# Check archive utilization
$piServer.Connect()
$archives = $piServer.ArchiveInfos
foreach ($arc in $archives) {
    Write-Host "$($arc.Path): $($arc.PercentFull)% full"
}

Tips

  • Schedule PowerShell scripts via Windows Task Scheduler for routine tasks.
  • Use try/catch for error handling in production scripts.
  • AF SDK assemblies must be installed on the machine running the script.
  • For remote execution, use PowerShell remoting (Invoke-Command).

Want to ask a follow-up?

PiChat can help with your specific PI System use case. Ask follow-up questions, get code examples, and troubleshoot issues.

Related Questions

Dive Deeper

More Questions

How do I configure PI AF templates?How do I authenticate with PI Web API from Python?What's the difference between snapshot and archive values in PI?What's the difference between PI Vision and PI ProcessBook?How do I build effective PI Vision displays?What are PI Event Frames and how do I use them?How do I write PI AF Analytics expressions?How do I use PI DataLink in Excel?Should I use PI Web API or AF SDK for my application?How do I write data to PI Data Archive?What are the main components of PI System architecture?How do I optimize PI Data Archive performance?How do I set up the PI Interface for OPC DA?How do I use PI Connector for UFL to import file data?How do I set up PI Data Archive high availability with collectives?What are the security best practices for PI System?How do I migrate PI Data Archive to a new server?How do I connect Power BI to PI System?How do I manage units of measure in PI System?What's the best way to learn PI System?How does PI time syntax work?What are good PI tag naming conventions?How do I access PI System data from Java or Linux?How do I set up PI AF notification rules?How do I use batch requests in PI Web API?How do I connect to PI AF Server using AF SDK in C#?How do I write VBA macros in PI ProcessBook?How does PI data compression work?How do I get real-time streaming updates from PI Web API?How do I troubleshoot PI AF Analysis errors?How do I write SQL queries against PI using PI OLEDB?What is PI interface buffering and how do I configure it?How do I search and query PI Event Frames?What is PI Integrator for Business Analytics?How do I fix the 'Point does not exist' error in PI System?What is the difference between PI ACE and AF Analytics?How do I manually enter data into PI Data Archive?What are AF hierarchy design best practices?What is a WebID in PI Web API and how does it work?How do I configure Kerberos authentication for PI System?Can I deploy PI System in the cloud?How do I calculate summaries (average, total, min, max) in PI?What are PI digital states and how do I use them?How do I connect PI System data to Grafana?How do I backup and restore PI Data Archive?How do I create custom symbols in PI Vision?What is AVEVA Connect and how does it relate to PI System?How do I check and handle data quality in PI System?How do I handle pagination in PI Web API responses?How does AVEVA PI System licensing work?How do I plan a PI System upgrade?