> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell/fr/overview/devolutions-powershell.md).

# Devolutions PowerShell

Les produits Devolutions intègrent entièrement Microsoft PowerShell, offrant de puissantes capacités de script et d'automatisation. Vous pouvez contrôler les produits Devolutions eux-mêmes et, par l'intermédiaire de Remote Desktop Manager, exécuter des scripts PowerShell dans tout votre environnement. Dans cette optique, voici comment PowerShell est utilisé à travers la plateforme Devolutions.

| Intégration                                                                         | Objectif                                                                                                                                             | Référence                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Module Devolutions.PowerShell                                                       | Ce module PowerShell est utilisé pour interagir directement avec les produits Devolutions.                                                           | <ul><li><a href="https://www.powershellgallery.com/packages/Devolutions.PowerShell/">PowerShell Gallery</a></li></ul>                                                                                                                                                                                                                                                                                                           |
| Actions de Remote Desktop Manager                                                   | Vous pouvez définir un script PowerShell à exécuter comme action par lot sur un ou plusieurs hôtes.                                                  | <ul><li><a href="/pages/gfbVavDTX1r5QWzEjP3R">Commandes PowerShell personnalisées</a></li><li><a href="/pages/UVRWUi6he7S18dXbmqg1">Modification par lots avec PowerShell</a></li><li><a href="/pages/ARiLSGXOJ9sdQ5zV4ADx">Modifier une source de synchronisation</a></li></ul>                                                                                                                                                |
| Rapports de Remote Desktop Manager                                                  | Ce type d'entrée prend en charge l'exécution d'un script PowerShell pour générer un rapport.                                                         | <ul><li><a href="/pages/tkdo89elrJEV6cFJD4iC">Rapport PowerShell personnalisé</a></li></ul>                                                                                                                                                                                                                                                                                                                                     |
| Types d'entrée de Remote Desktop Manager                                            | Les types d'entrée PowerShell local et PowerShell distant prennent tous deux en charge l'exécution de scripts.                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Fournisseurs de gestion des accès privilégiés (PAM) et propagation de mots de passe | Dans Devolutions Server et Devolutions Cloud, PowerShell alimente les fournisseurs PAM personnalisés et les scripts de propagation de mots de passe. | <ul><li><a href="https://docs.devolutions.net/pam/fr/pam-with-devolutions-server/getting-started/custom-pam-providers/create-a-custom-pam-provider-in-devolutions-server">Fournisseur PAM personnalisé de Devolutions Server</a></li><li><a href="https://docs.devolutions.net/pam/fr/pam-with-devolutions-server/password-propagation-scripts">Scripts de propagation de mots de passe PAM de Devolutions Server</a></li></ul> |

### Premiers pas avec le module Devolutions.PowerShell

Le module Devolutions.PowerShell nécessite [PowerShell 7.4 ou une version ultérieure](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.4), et est pris en charge sur les systèmes d'exploitation Windows, macOS et Linux.

{% hint style="warning" %}
Windows PowerShell ou les versions antérieures de PowerShell 7 ne sont pas pris en charge, car le module est construit à partir du même noyau que Remote Desktop Manager, et nécessite donc une version de PowerShell utilisant une version compatible du runtime .NET (.NET 9).
{% endhint %}

#### PowerShell Gallery (recommandé)

Le module Devolutions.PowerShell est disponible dans la [PowerShell Gallery](https://www.powershellgallery.com/packages/Devolutions.PowerShell) et il s'agit de la méthode d'installation par défaut recommandée :

```powershell
Install-Module Devolutions.PowerShell -Force
```

Puisque la PowerShell Gallery est habituellement un dépôt marqué comme non fiable (les paquets ne sont ni sélectionnés ni révisés), l'utilisation de `-Force` est requise pour éviter l'invite de confirmation.

#### Cloudsmith

Comme solution de rechange à la PowerShell Gallery, nous offrons un [dépôt Devolutions PowerShell](https://cloudsmith.io/~devolutions/repos/powershell/packages/) hébergé par [Cloudsmith](https://cloudsmith.com/).

1. Enregistrez le dépôt Devolutions PowerShell, qui peut être marqué comme fiable :

   ```powershell
   Register-PSRepository -Name 'Devolutions' -SourceLocation 'https://nuget.cloudsmith.io/devolutions/powershell/v2/' -InstallationPolicy Trusted
   ```
2. Désinstallez les versions précédentes du module Devolutions.PowerShell installées depuis la PowerShell Gallery :

   ```powershell
   Uninstall-Module Devolutions.PowerShell -AllVersions
   ```
3. Installez le module Devolutions.PowerShell explicitement depuis le dépôt « Devolutions » :

   ```powershell
   Install-Module Devolutions.PowerShell -Repository Devolutions
   ```
4. Confirmez que le dépôt source d'installation du module Devolutions.PowerShell est « Devolutions » et non « PSGallery » :

   ```powershell
   Get-InstalledModule Devolutions.PowerShell | Select-Object -Property Name, Repository

   Name                   Repository
   ----                   ----------
   Devolutions.PowerShell Devolutions
   ```

{% hint style="info" %}
Puisque le module Devolutions.PowerShell est disponible dans plus d'un dépôt enregistré, le paramètre `-Repository` devient obligatoire. Cependant, si vous avez marqué le dépôt « Devolutions » comme fiable, `-Force` n'est pas nécessaire pour éviter l'invite de confirmation.
{% endhint %}

#### Hors ligne

Si vous devez installer le module Devolutions.PowerShell sur un système avec un accès Internet limité ou inexistant, vous pouvez le faire en suivant ces étapes :

1. Créez un nouveau dépôt PowerShell nommé « local » dans le répertoire de votre choix; l'exemple ci-dessous utilise `C:\PSRepo`.

   ```powershell
   $RepoPath = "C:\PSRepo"
   New-Item -Path $RepoPath -ItemType 'Directory' -Force | Out-Null
   Register-PSRepository -Name 'local' -SourceLocation $RepoPath -PublishLocation $RepoPath -InstallationPolicy Trusted
   ```
2. Téléchargez le fichier `.nupkg` du module Devolutions.PowerShell à l'aide du bouton ***Download the raw nupkg file*** sous ***Manual Download*** dans la [PowerShell Gallery](https://www.powershellgallery.com/packages/Devolutions.PowerShell). Copiez le fichier `.nupkg` dans le répertoire du dépôt PowerShell local créé précédemment.
3. Désinstallez les versions précédentes du module Devolutions.PowerShell installées depuis d'autres sources.

   ```powershell
   Uninstall-Module Devolutions.PowerShell -AllVersions
   ```
4. Installez le module Devolutions.PowerShell explicitement depuis le dépôt `local`.

   ```powershell
   Install-Module Devolutions.PowerShell -Repository local
   ```
5. Confirmez que la source d'installation du module Devolutions.PowerShell est `local`.

   ```powershell
   Get-InstalledModule Devolutions.PowerShell | Select-Object -Property Name, Repository

   Name                   Repository
   ----                   ----------
   Devolutions.PowerShell local
   ```

{% hint style="info" %}
Sinon, un répertoire sur un partage réseau peut être utilisé au lieu d'un répertoire local, ce qui facilite la distribution du module PowerShell sur un réseau local.
{% endhint %}

### Exemples

Pour commencer rapidement avec quelques exemples courants du module Devolutions.PowerShell, poursuivez votre lecture ci-dessous.

#### Remote Desktop Manager

```powershell
# [Import module]
Import-Module Devolutions.PowerShell

# [Load workspace] Example for a local workspace (SQLite) or SQL Server
$DatasourceLocal = Get-RDMDataSource -Name "Local workspace"; Set-RDMCurrentDataSource $DatasourceLocal

$DatasourceSQL = Get-RDMDataSource -Name "SQL Server"; Set-RDMCurrentDataSource $DatasourceSQL

# [Create vault] Only the SQL Server workspace supports vaults (as do Devolutions Server and Devolutions Cloud)
$Vault = New-RDMRepository -Name 'MyVault' -Description 'My vault description' -SetRepository | Set-RDMCurrentRepository | Update-RDMUI

# [Retrieve vault]
Get-RDMRepository -Name 'MyVault'

# [Create entry] Example to create an RDP and Credential entry
$Entry = New-RDMSession -Host 'MyHost' -Type RDPConfigured -Name 'MyHost'; Set-RDMSession -Session $Entry -Refresh; Update-RDMUI

$Entry = New-RDMSession -Name 'MyCredential' -Type Credential; $Entry.Credentials.Username = 'Administrator'; Set-RDMSession $Entry -Refresh; Set-RDMSessionPassword -ID $Entry.ID -Password (ConvertTo-SecureString 'Test123$' -AsPlainText -Force)

# [Retrieve entries]
Get-RDMSession -GroupName 'MyFolder' -Name 'MyHost'

# [Update entry]
$Entry = Get-RDMSession -Name 'MyHost'; $Entry.Name = 'MyUpdatedHost'; Set-RDMSEssion $Entry | Update-RDMUI

# [Export entries]
$Entries = Get-RDMSession; $Entries | Select-Object * | Export-CSV 'C:\Export\FileName.csv' -NoTypeInformation

# [Remove entry]
Get-RDMSession -Name 'MyUpdatedHost' | Remove-RDMSession; Update-RDMUI
```

#### Devolutions Server

```powershell
# [Import module]
Import-Module Devolutions.PowerShell

# [Load workspace]
New-DSSession -Credential (Get-Credential) -BaseURI 'https://MyServer/devolutions-server/'

# [Create vault]
$Vault = New-DSVault -Name 'MyVault' -Description 'My vault description'

# [Retrieve vault]
Get-DSVault -All | Where-Object DisplayName -EQ 'MyVault'

# [Create entry]
New-DSRDPEntry -Name 'MyHost' -HostName 'MyHost' -Username 'Administrator' -Password 'Test123$' -Domain 'MyDomain' -VaultID 'VaultGUID'

New-DSCredentialEntry -Name 'MyCredential' -Username 'Administrator' -Password 'Test123$' -Domain 'MyDomain' -VaultID 'VaultGUID'

# [Retrieve entries]
Get-DSEntry -FilterBy 'Name' -FilterMatch 'StartsWith' -FilterValue 'MyHost' -SearchAllVaults

# [Update entry]
$Entry = Get-DSEntry -EntryId 'EntryGUID'; $Entry.Name = 'MyUpdatedHost'; Update-DSEntryBase -JsonBody (ConvertTo-JSON -InputObject $Entry -Depth 10)

# [Export entries]
$Entries = Get-DSEntry -SearchAllVaults; $Entries | Select-Object * | Export-CSV 'C:\Export\FileName.csv' -NoTypeInformation

# [Remove entry]
Remove-DSEntry -EntryID 'EntryGUID'
```

#### Devolutions Cloud

```powershell
# [Import module]
Import-Module Devolutions.PowerShell

# [Load workspace]
Connect-HubAccount -Url 'https://mycloud.devolutions.app' -ApplicationKey 'ApplicationKey' -ApplicationSecret 'ApplicationSecret'

# [Create vault]
$Vault = New-HubVault -VaultName 'MyVault' -VaultDescription 'My vault description'

# [Retrieve vault]
Get-HubVault

# [Create entry]
$Entry = [Devolutions.Hub.PowerShell.Entities.Hub.PSDecryptedEntry]@{
    PsMetadata = [Devolutions.Hub.PowerShell.Entities.Hub.PSEntryMetadata]@{
        Name = 'MyHost'
        ConnectionType = [Devolutions.RemoteDesktopManager.ConnectionType]::Credential
    }
    Connection = [Devolutions.RemoteDesktopManager.Business.Connection]@{
        Credentials = [Devolutions.RemoteDesktopManager.Business.CredentialsConnection]@{
            CredentialType = [Devolutions.RemoteDesktopManager.CredentialResolverConnectionType]::Default
            UserName = 'Administrator'
            Password = 'Test123$'
        }
    }
}

New-HubEntry -VaultId 'VaultGUID' -PSDecryptedEntry $Entry

# [Retrieve entries]
Get-HubEntry -VaultId 'VaultGUID' | Where-Object { $PSItem.PSMetaData.Name -EQ 'MyHost' }

# [Update entry]
$Entry = Get-HubEntry -VaultId 'VaultGUID' -EntryId 'EntryGUID'; $Entry.PsMetadata.Name = 'MyUpdatedHost'; Set-HubEntry -VaultId 'VaultGUID' -EntryId $Entry.Entry.ID.Guid -PSDecryptedEntry $Entry

# [Export entries]
$Entries = Get-HubEntry -VaultId 'VaultGUID'; $Entries | Select-Object * | Export-CSV 'C:\Export\FileName.csv' -NoTypeInformation

# [Remove entry]
Remove-HubEntry -VaultId 'VaultGUID' -EntryId 'EntryGUID'
```

### Désinstaller le module Devolutions.PowerShell

Désinstallez toutes les versions du module Devolutions.PowerShell :

```powershell
Uninstall-Module Devolutions.PowerShell -AllVersions
```

Si le module est installé via Cloudsmith, vous pouvez désenregistrer le dépôt « Devolutions » comme suit :

```powershell
Unregister-PSRepository Devolutions
```

Enfin, si vous avez installé le module hors ligne, vous pouvez désenregistrer le dépôt « local » basé sur des fichiers et supprimer le répertoire associé (le nom de votre répertoire peut être différent) :

```powershell
Unregister-PSRepository local
Remove-Item "C:\PSRepo" -Recurse -ErrorAction SilentlyContinue
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell/fr/overview/devolutions-powershell.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
