--- title: "Add-GridState" slug: "scripting-add-gridstate" tags: ["Enterprise Only"] updated: 2025-02-28T16:46:56Z published: 2025-02-28T16:46:56Z canonical: "help.agilityblue.com/scripting-add-gridstate" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.agilityblue.com/llms.txt > Use this file to discover all available pages before exploring further. # Add-GridState ## Summary Creates a new grid state. ```powershell Add-GridState    -Entry ``` Returns a grid state object. ## Parameters | Parameter | Type | Required? | Notes | | --- | --- | --- | --- | | Entry | Grid State Object | Yes | | ## Examples ### Copy a grid state from one user to multiple users ```powershell $gridId = "mattersGrid" $gridStateName = "Active Matters" $sourceUserId = "47004c9a-93e3-473c-8f96-a0556bf6735d" # ------------------------------------------------------------------------------ # Define the filters to find the grid state to copy $gridStateFilter = "GridId eq '$gridId' and Name eq '$gridStateName' and UserId eq '$sourceUserId'" $gridStates = Get-GridStates -Filter $gridStateFilter if ($gridStates.TotalCount -eq 0) {  Write-Output "No grid state found to copy"  Exit } # Retrieve the first record from the collection $gridStateToCopy = $gridStates.Collection[0] # Define the filters to find the users to copy the grid state to # For example, it only makes sense to copy a grid state to users that # are active, not deleted, not system accounts, and not a team account. $workspaceUsersFilter = "Active eq true and Deleted eq false and IsSystemAccount eq false and IsTeamAccount eq false and Id ne '$sourceUserId'" # Get the collection of server-filtered workspace users $usersToCopyTo = Get-WorkspaceUsers -Filter $workspaceUsersFilter -Top 1000 if ($usersToCopyTo.TotalCount -eq 0) {  Write-Output "No users found"  Exit } # Filter the list down further within the script to only admin/organization users... $usersToCopyTo = $usersToCopyTo.Collection | Where-Object {  $_.Roles -like "*Organization Administrator*" -or $_.Roles -like "*Organization User*" } if ($usersToCopyTo.TotalCount -eq 0) {  Write-Output "No users found"  Exit } # Iterate through each user and first check to see if they already have the grid state, # if not, then copy it to them. $usersToCopyTo | ForEach-Object {  $user = $_    $gridStateFilter = "GridId eq '$gridId' and Name eq '$gridStateName' and UserId eq '$($user.Id)'"  $gridStates = Get-GridStates -Filter $gridStateFilter  # We only want to create the grid state if the grid states call returns 0 results.  if ($gridStates.TotalCount -eq 0) {    # Update the UserId parameter to the current user and create the grid state for them.    $gridStateToCopy.UserId = $user.Id    Add-GridState $gridStateToCopy | Out-Null # Out-Null to suppress the output    Write-Output "Copied grid state '$($gridStateToCopy.Name)' to $($user.FullName)"  }  else {    Write-Output "$($user.FullName) already has grid state '$($gridStateToCopy.Name)'"  } } ```