Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions inkcanvas/docs-conceptual/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Microsoft Ink Canvas PowerShell
description: "Learn about Microsoft Ink Canvas PowerShell."
---

# Microsoft Ink Canvas PowerShell

Welcome to the Microsoft Ink Canvas PowerShell cmdlet help references. The InkCanvasAdmin cmdlets
provide the command line interface for service administration and management, including GDPR/CCPA
Data Subject Request (DSR) compliance operations.

Here you will find all of the Microsoft Ink Canvas PowerShell help topics. These topics are
'open source' and open for contributions. If you are interested in contributing to this content
head over to the source GitHub repo and look through the README.

The repo is located here: <https://github.com/microsoftdocs/office-docs-powershell> and you can
find the README displayed at the bottom of the page.
76 changes: 76 additions & 0 deletions inkcanvas/docs-conceptual/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Ink Canvas Admin PowerShell Overview
description: "Ink Canvas Admin PowerShell overview."
---

# Overview

## Installing

To install and use the Microsoft Ink Canvas admin cmdlets:

1. Open the start menu and search for Windows PowerShell
2. Right-click on Windows PowerShell and choose Run As Administrator
3. Type or copy this command into the window and press the Enter key:

```powershell
Install-Module -Name InkCanvasAdmin
```

By default, the PowerShell Gallery (PSGallery) isn't configured as a trusted repository for
**PowerShellGet**. The first time you use the PSGallery, you'll see the following message:

```console
Untrusted repository

You are installing the modules from an untrusted repository. If you trust this repository, change
its InstallationPolicy value by running the `Set-PSRepository` cmdlet.

Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
```

Type **Y** and press Enter.

> [!NOTE]
> Node.js 20 or later is required. The InkCanvasAdmin module bundles the Ink Canvas admin CLI
> and invokes it via Node.js. Install Node.js from <https://nodejs.org> before using this module.

## Prerequisites

The InkCanvasAdmin cmdlets require:

- Node.js 20 or later
- An Azure Active Directory app registration with the following Microsoft Graph permissions:
- `Sites.FullControl.All` (application permission)
- `FileStorageContainer.Selected` (application permission)
- Global Administrator or SharePoint Administrator role

## Authentication

The module supports two authentication methods:

### Device code (default)

Prompts for interactive authentication via a browser. Suitable for ad-hoc administrative tasks.

```powershell
Get-InkCanvas -UserId 00000000-0000-0000-0000-000000000001 -TenantId <tenantId> -ClientId <clientId> -ContainerTypeId <containerTypeId>
```

### Client credentials

Suitable for automated scripts and pipelines. Requires a client secret.

```powershell
Get-InkCanvas -UserId 00000000-0000-0000-0000-000000000001 -TenantId <tenantId> -ClientId <clientId> -ClientSecret <clientSecret> -ContainerTypeId <containerTypeId> -Auth client-credentials
```

## Cmdlet reference

- [Get-InkCanvas](../inkcanvas-ps/InkCanvasAdmin/Get-InkCanvas.md)
- [Export-InkCanvas](../inkcanvas-ps/InkCanvasAdmin/Export-InkCanvas.md)
- [Remove-InkCanvas](../inkcanvas-ps/InkCanvasAdmin/Remove-InkCanvas.md)
- [Set-InkCanvasOwner](../inkcanvas-ps/InkCanvasAdmin/Set-InkCanvasOwner.md)
- [Invoke-TransferAllInkCanvases](../inkcanvas-ps/InkCanvasAdmin/Invoke-TransferAllInkCanvases.md)
- [Invoke-InkCanvasAdmin](../inkcanvas-ps/InkCanvasAdmin/Invoke-InkCanvasAdmin.md)
5 changes: 5 additions & 0 deletions inkcanvas/docs-conceptual/toc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- name: Home
href: index.md
items:
- name: Overview
href: overview.md
282 changes: 282 additions & 0 deletions inkcanvas/inkcanvas-ps/InkCanvasAdmin/Export-InkCanvas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,282 @@
---
external help file: InkCanvasAdmin-help.xml
Module Name: InkCanvasAdmin
online version: https://learn.microsoft.com/powershell/module/inkcanvasadmin/export-inkcanvas
applicable: Microsoft Ink Canvas
title: Export-InkCanvas
schema: 2.0.0
author: peterhu
ms.author: peterhu
ms.reviewer:
---

# Export-InkCanvas

## SYNOPSIS
Exports Ink Canvas canvases as standalone HTML files for data portability or access requests.

## SYNTAX

### User (Default)
```
Export-InkCanvas -UserId <String> -OutputPath <String> [-CanvasId <String>] [-CheckpointPath <String>]
[-Concurrency <Int32>] [-TenantId <String>] [-ClientId <String>] [-ClientSecret <String>]
[-ContainerTypeId <String>] [-Auth <String>] [-Tenant <String>] [<CommonParameters>]
```

### All
```
Export-InkCanvas -All -OutputPath <String> [-CanvasId <String>] [-CheckpointPath <String>]
[-Concurrency <Int32>] [-TenantId <String>] [-ClientId <String>] [-ClientSecret <String>]
[-ContainerTypeId <String>] [-Auth <String>] [-Tenant <String>] [<CommonParameters>]
```

## DESCRIPTION

Exports Ink Canvas canvases as standalone HTML files. Supports exporting a single canvas, all
canvases for a specific user, or all canvases across the entire tenant. Supports checkpoint files
for resumable bulk exports in case of interruption.

Output structure:
- Single canvas or user export: `<OutputPath>/<canvasName>.html`
- Tenant-wide export: `<OutputPath>/<userId>/<canvasName>.html`

## EXAMPLES

### EXAMPLE 1

Export a specific canvas for a user.

```powershell
PS C:\>Export-InkCanvas -UserId 00000000-0000-0000-0000-000000000001 -CanvasId canvas_1712345678_abc12 -OutputPath C:\Export
```

### EXAMPLE 2

Export all canvases for a user.

```powershell
PS C:\>Export-InkCanvas -UserId 00000000-0000-0000-0000-000000000001 -OutputPath C:\Export
```

### EXAMPLE 3

Export all canvases for the entire tenant with a checkpoint file to support resuming.

```powershell
PS C:\>Export-InkCanvas -All -OutputPath C:\Export -CheckpointPath C:\Export\checkpoint.json
```

## PARAMETERS

### -All

If specified, exports canvases for all users in the tenant.

```yaml
Type: System.Management.Automation.SwitchParameter
Parameter Sets: All
Aliases:

Required: True
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
```

### -Auth

Authentication method to use. Accepted values are: device-code, client-credentials.
Defaults to device-code.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: device-code
Accept pipeline input: False
Accept wildcard characters: False
```

### -CanvasId

Optional. The specific canvas ID (folder name) to export. If not specified, all canvases for
the user are exported.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -CheckpointPath

Optional. Path to a checkpoint file that tracks already-exported canvases. Allows interrupted
bulk exports to resume without re-exporting completed canvases.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -ClientId

The client ID of the admin app registration in Azure Active Directory.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -ClientSecret

The client secret for client-credentials authentication.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -Concurrency

Optional. Number of parallel export operations. Defaults to 5.

```yaml
Type: System.Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: 5
Accept pipeline input: False
Accept wildcard characters: False
```

### -ContainerTypeId

The SharePoint Embedded container type ID for Ink Canvas.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -OutputPath

Required. The directory path where exported HTML files will be written.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -Tenant

A known tenant preset name that automatically fills in TenantId, ClientId, and ContainerTypeId.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -TenantId

The Azure Active Directory tenant ID.

```yaml
Type: System.String
Parameter Sets: (All)
Aliases:

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

### -UserId

The Azure Active Directory object GUID of the user whose canvases to export.

```yaml
Type: System.String
Parameter Sets: User
Aliases:

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

### 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](https://go.microsoft.com/fwlink/p/?LinkID=113216).

## INPUTS

## OUTPUTS

## NOTES

If any canvases fail to export, a summary report is written to `<OutputPath>/export-failures.json`.

## RELATED LINKS
Loading