Citrix Virtual Apps and Desktops SDK

Start-LogHighLevelOperation

Logs the start of a high level operation.

Syntax

Start-LogHighLevelOperation
     [-StartTime <DateTime>]
     -Text <String>
     -Source <String>
     [-OperationType <OperationType>]
     [-TargetTypes <String[]>]
     [-Parameters <Hashtable>]
     [<CitrixCommonParameters>]
     [<CommonParameters>]
<!--NeedCopy-->

Description

Start-LogHighLevelOperation creates a log entry to record the start of a high level operation.

Start-LogHighLevelOperation can be called to log high level configuration changes which originate from customized configuration scripts. Start-LogHighLevelOperation should be called before the script invokes service SDK cmdlets which execute the configuration changes.

Start-LogHighLevelOperation returns a HighLevelOperation object which contains information about the started high level operation. The “Id” property of the returned HighLevelOperation uniquely identifies the started high level operation. This can be supplied into the “-LoggingId” parameter which is implemented in all service SDK cmdlets which execute loggable configuration changes.

High level operation logs are automatically created by the XenDesktop consoles when:

  • Initiating an operation which performs configuration changes.
  • Initiating an operation which performs an administration activity.

Configuration Change and Administrator Activity


A configuration change is an operation which alters the configuration of the XenDesktop site. Examples of a configuration changes include:

  • Creating or editing a host.
  • Creating or editing a catalog.
  • Adding a user to a delivery group.
  • Deleting a machine.

An administrator activity operation doesn’t directly alter site configuration, but it could be an operation carried out by an administrator as part of site management or helpdesk support. Examples of administrator activities include:

  • Shutdown/start/restart of a user desktop.
  • Studio or Director sending a message to a user.
  • Rebooting a user’s desktop.

Once the change being logged has completed (whether successfully or not) the Stop-LogHighLevelOperation cmdlet should be called to log the completion of a started high level operation.

Examples

EXAMPLE 1

Creates an unmanaged catalog and assigns a machine to it, within the scope of a high level operation start and stop. The identifier of the high level operation is passed into the “-LoggingId” parameter of the service SDK cmdlets. The execution of the cmdlets in the services will create the low level operation logs for the supplied high level operation.

$succeeded = $false #indicates if high level operation succeeded.
# Log high level operation start.
$highLevelOp = Start-LogHighLevelOperation -Text "Create catalog" -Source "My Custom Script"

try
{
  # Create catalog object
  $catalog = New-BrokerCatalog -Name "MyCatalog" -ProvisioningType Manual -AllocationType Permanent -MinimumFunctionalLevel 'LMAX' -LoggingId $highLevelOp.Id

  # Add a machine to the catalog
  $machine = New-BrokerMachine -CatalogUid $catalog.Uid -MachineName "DOMAIN\Machine" -LoggingId $highLevelOp.Id
  $succeeded = $true
}
catch{ "Error encountered" }

finally{
  # Log high level operation stop, and indicate its success
  Stop-LogHighLevelOperation -HighLevelOperationId $highLevelOp.Id -IsSuccessful $succeeded
}
<!--NeedCopy-->

Parameters

-Text

Specifies text to describe the high level operation.

Type: String
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-Source

Specifies the source of the high level operation.

Type: String
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-StartTime

Specifies the start time of the high level operation.

Type: DateTime
Position: Named
Default value: DateTime.UtcNow
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-OperationType

Specifies the type of operation being logged. Values can be:

  • AdminActivity - If the operation being logged performs an administration activity.
  • ConfigurationChange - If the operation being logged performs a configuration change.
Type: OperationType
Position: Named
Default value: ConfigurationChange
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-TargetTypes

Specifies the names of the object types that will be affected

by the operation being logged.

Type: String[]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Parameters

Specifies the names and values of parameters that are supplied to the operation being logged.

Type: Hashtable
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

CitrixCommonParameters

This cmdlet supports the common Citrix parameters: -AdminAddress, -AdminClientIP, -BearerToken, -TraceParent, -TraceState and -VirtualSiteId. For more information, see about_CitrixCommonParameters.

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

None

You can’t pipe objects to this cmdlet.

Outputs

Citrix.ConfigurationLogging.Sdk.HighLevelOperation

The newly logged high level operation start.

Start-LogHighLevelOperation