Entrée de synchroniseur personnalisée (PowerShell)

Cette entrée est un "synchroniseur" hybride puissant qui vous permet d'utiliser des scripts PowerShell pour peupler des coffres, synchroniser des descriptions, appliquer des modèles et plus encore. Vous pouvez synchroniser à partir de sources pour lesquelles nous n’avons pas de synchroniseur dédié. Il utilise des classes proxy pour interagir avec des objets de connexion riches de Remote Desktop Manager.

Cas d'utilisation du synchroniseur personnalisé (PowerShell)

Session simple

Fournir l'hôte, le nom, la description et le groupe tout en utilisant le type RDP par défaut. Sinon, utiliser un modèle pour favoriser la réutilisation et la standardisation. Voici un exemple :

# obtain or generate your list of sessions to create, here we assume a $data table
# has been filled by querying an external source.
Foreach($row in $data)
{
  # create a new session, the only mandatory property is 'Name' so we require it as a parameter in the Add method
  $session = $RDM.Add($row.Name)
  # set the other properties using $session.<property>
  $session.Host = $row.Name
  $session.Description = $row.Description
  $session.Group = $row.Group # it can be multiple levels i.e. 'Folder1\Folder1a'
}

Session avec informations d'identification

Pour définir les identifiants, utiliser : $session.SetCredentials($row.Username, $row.Password, $row.Domain);.

Pour uniquement définir le mot de passe, utiliser : $session.SetPassword($row.Password);.

Le mot de passe ne peut pas être défini en utilisant $session.Password.

Champs couramment utilisés

Voici des champs couramment utilisés pour une référence rapide :

string CustomStatus
string Description
bool Encrypt
string Group
string Host
bool IncludeInFavorite
string Name
bool OpenEmbedded
bool ShowInTrayIcon
int SortPriority
<Color>#FF0000</Color>
string GroupTab
string Status
string TabTitle

Scénario avancé

En utilisant la méthode décrite dans Rétro-ingénierie de la structure d'une entrée, créer une entrée avec toutes les informations requises dans les champs appropriés et observer comment attribuer des valeurs en utilisant PowerShell.

Par exemple, voici une entrée Host pour laquelle de nombreux champs de la section ViewAsset ont été remplis :

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfConnection>
  <Connection>
    <AppVersion>~SET AUTOMATICALLY~</AppVersion>
    <Color>#FF0000</Color>
    <ConnectionType>Host</ConnectionType>
    <CreatedBy>~SET AUTOMATICALLY~</CreatedBy>
    <CreationDateTime>~SET AUTOMATICALLY~</CreationDateTime>
    <Description>phDescription</Description>
    <GroupTab>phTabGroupName</GroupTab>
    <ID>~SET AUTOMATICALLY~</ID>
    <Name>phName</Name>
    <OpenEmbedded>true</OpenEmbedded>
    <SortPriority>100</SortPriority>
    <Status>{123A44CB-7EDC-4ecb-926B-031793668148}</Status>
    <TabTitle>phTabPageTitle</TabTitle>
    <HostDetails>
      <Host>phName</Host>
    </HostDetails>
    <MetaInformation>
      <AssetSubType>Desktop</AssetSubType>
      <Domain>metadomain</Domain>
      <IP>metaIP</IP>
      <Keywords>MyTag1</Keywords>
      <MAC>metamac</MAC>
      <MachineName>metaHost</MachineName>
      <NetworkDHCPRange>MetaDHCPRange</NetworkDHCPRange>
      <NetworkDHCPServer>MetaDHCPServer</NetworkDHCPServer>
      <NetworkFirewallZone>MetaFirewall</NetworkFirewallZone>
      <NetworkGateway>MetaGateway</NetworkGateway>
      <NetworkIPRange>metaIPRange</NetworkIPRange>
      <NetworkSubnet>metaSubnet</NetworkSubnet>
      <NetworkVLANID>MetaVlan</NetworkVLANID>
      <OS>metaos</OS>
    </MetaInformation>
  </Connection>
</ArrayOfConnection>

Vous pouvez voir quelques objets "complexes", à savoir HostDetails et MetaInformation. Le premier est spécifique au type d'entrée Host, et le second est un conteneur pour tout dans la section ViewAsset. Ajouter le nom de la section comme préfixe pour écrire dans les champs internes.

Foreach($row in $data)
{
  $session = $RDM.Add($row.Name)
  $session.Kind = "Host"
  $session.HostDetails.Host = $row.Name
  $session.MetaInformation.AssetSubType = "Desktop"
  $session.MetaInformation.IP = "10.10.1.25"
}

Points clés

  • Notez que les propriétés Name et HostDetails.Host partagent la même valeur. C'est une caractéristique de l'entrée Host, et la prudence est de mise lors du travail avec d'autres types d'entrées également.

  • Certains champs, comme MetaInformation.AssetSubType sont liés à une énumération et doivent contenir la chaîne exacte. D'autres encore, comme MetaInformation.NetworkGateway sont des chaînes simples et peuvent contenir n'importe quoi. C'est là que réside le défi de la consultation de l'XML. N'hésitez pas à contacter notre équipe de support si vous avez d'autres questions.

Devolutions Forum logo Donnez-nous vos commentaires