PowerShell offre un accès distant au périphérique surveillé et la possibilité d'utiliser les modules PowerShell et les bibliothèques .NET qui y sont installées.
WhatsUp Gold utilise un moteur PowerShell de 32 bits (autrement dit, « x86 »). Seuls les composants logiciels enfichables PowerShell de 32 bits sont pris en charge et les composants logiciels enfichables de 64 bits ne fonctionneront pas correctement. Les composants logiciels enfichables qui fonctionnent sur les systèmes d'exploitation de 32 et 64 bits sont configurés par défaut pour les systèmes de 64 bits et doivent être configurés manuellement pour le moteur PowerShell de 32 bits afin de fonctionner correctement avec WhatsUp Gold.
Exigences en matière de connexion distante
Assurez-vous que les éléments suivants sont renseignés pour que la machine WhatsUp Gold puisse se connecter au périphérique de destination (interrogé) via PowerShell.
Enable-PSRemoting
. Permet d'activer PowerShell à distance sur le périphérique de destination (interrogé). Pour plus d'informations, consultez le lien vers la documentation MSDN fournie.Les champs de configuration de cet analyseur actif incluent :
Les scripts d'analyseur actif PowerShell ont deux objets de session instanciés disponibles.
Vous pouvez extraire des valeurs pour des propriétés contextuelles au moyen de scripts d'analyseur actif PowerShell.
Syntaxe
Valeur-Propriété = Context.GetProperty("
Nom-Propriété")
Context.SetProperty("
Nom-Propriété","
Valeur-Propriété")
Exemple
$DeviceIpAddress = $Context.GetProperty("Adresse")
$Context.SetProperty("Délai", "180")
La chaîne de résultat que vous définissez sera ajoutée à la description dans la modification d'état de l'analyseur. L'indicateur d'état défini comme étant disponible/indisponible (0, 1) détermine l'indicateur figurant sur la chronologie des changements d'état.
# Après l'obtention réussie de l'IP du périphérique, l'utiliser comme résultat et définir l'indicateur de réussite...
$Context.SetResult(0, "L'adresse IP du périphérique est : " + $DeviceIpAddress)
Les propriétés suivantes sont accessibles à partir de l'objet de connexion créé lors de l'exécution de PowerShell.
Nom de la propriété |
Description |
DeviceID |
Chaîne d'identification de périphérique WhatsUp Gold. |
Adresse |
IP Address (Adresse IP). |
Délai |
Valeur du délai pour cette session (en secondes). |
Les propriétés d'informations d'identification suivantes peuvent être définies pour PowerShell. Ces propriétés sont utiles lorsque vous devez vous connecter à d'autres services, plateformes ou applications une fois la connexion PowerShell initiale établie à l'aide de l'analyseur actif.
Nom de la propriété |
Description |
CredWindows:DomainAndUserid |
Domaine et utilisateur des informations d'identification Windows. |
CredWindows:Password |
Définit le mot de passe Windows. |
CredSnmpV1:ReadCommunity |
Chaîne de communauté en lecture SNMPv1. |
CredSnmpV1:WriteCommunity |
Chaîne de communauté en écriture SNMPv1. |
CredSnmpV2:ReadCommunity |
Chaîne de communauté en lecture SNMPv2. |
CredSnmpV2:WriteCommunity |
Chaîne de communauté en écriture SNMPv2. |
CredSnmpV3:AuthPassword |
Mot de passe SNMPv3. |
CredSnmpV3:AuthProtocol(valeur-entière) |
Protocole d'authentification SNMPv3. |
CredSnmpV3:EncryptProtocol(valeur-entière) |
Valeurs entières possibles :
|
CredSnmpV3:EncryptPassword |
Mot de passe crypté SNMPv3. |
CredSnmpV3:Username |
Utilisateur SNMPv3. |
CredSnmpV3:Context |
Contexte SNMPv3. |
CredADO:Password |
Mot de passe ADO. |
CredADO:Username |
Nom d'utilisateur ADO. |
CredSSH:Username |
Nom d'utilisateur SSH. |
CredSSH:Password |
Mot de passe SSH. |
CredSSH:EnablePassword |
Indicateur de mot de passe activé. |
CredSSH:Port |
Port SSH si différent du port par défaut. |
CredSSH:Timeout |
Délai de la session SSH. |
CredVMware:Username |
Nom d'utilisateur VMware. |
CredVMware:Password |
Mot de passe VMware. |
CredTelnet:Timeout |
Délai de la connexion Telnet. |
CredTelnet:Port |
Port Telnet (si différent du port par défaut). |
CredTelnet:Username |
Nom d'utilisateur Telnet. |
CredTelnet:Password |
Mot de passe Telnet. |
CredJMX:Username |
Nom d'utilisateur des extensions de gestion Java. |
CredJMX:Password |
Mot de passe des extensions de gestion Java. |
CredSMIS:Timeout |
Délai de gestion de stockage. |
CredSMIS:Port |
Port de gestion de stockage. |
CredSMIS:Protocol
|
Protocole de gestion de stockage. |
CredSMIS:Username
|
Nom d'utilisateur de gestion de stockage. |
CredSMIS:Password
|
Mot de passe de gestion de stockage. |
CredAWS:AccessKeyID
|
ID de compte des services Web Amazon. |
CredAWS:SecureAccessKey
|
Clé d'accès aux services Web Amazon. |
CredAzure:TenantID
|
ID d'abonnement Azure. |
CredAzure:ClientID
|
ID de compte de client Azure. |
CredAzure:SecureKey |
Clé de compte Azure. |
CredRestAPI : nom d'utilisateur |
Nom d'utilisateur nécessaire pour vous authentifier à un périphérique. |
CredRestAPI : mot de passe |
Mot de passe associé au nom d'utilisateur. |
CredUbiquiti : nom d'utilisateur |
Nom d'utilisateur utilisé pour s'authentifier auprès du contrôleur Ubiquiti Unifi. |
CredUbiquiti : mot de passe |
Mot de passe associé au nom d'utilisateur. |
CredUbiquiti : port |
Numéro de port utilisé par le contrôleur Ubiquiti Unifi pour répondre aux demandes de l'API. |
Créez un analyseur actif PowerShell qui indique l'état Disponible uniquement si un client DNS est en cours d'exécution en utilisant les informations d'identification stockées.
# Périphérique à interroger
$DeviceIpAddress = $Context.GetProperty("Adresse")
# Définir directement le nom de l'ordinateur, ou...
# $CompName = mydb02.corpnet.exemple.com (par exemple)
# ...l'obtenir par WMI...
$WmiRes = Invoke-Command -NomOrdinateur $DeviceIpAddress -ScriptBlock { Get-WmiObject Win32_Computersystem }
$CompName = $WMIRes.PSComputerName
# Exécuter la commande sur un périphérique distant
$PsResult = Invoke-Command -NomOrdinateur $DeviceName -ScriptBlock { Get-Service | where { $_.Name -match "Dnscache" } }
# Vérifier la condition d'« exécution »
if ($PsResult.Status -match 'Running') {
$RespondingMessage = "Le processus'" + $processName + "' exécuté sur " + $DeviceIpAddress + " répond."
$Context.SetResult(0, $RespondingMessage )
} else {
$NotRunningMessage = "Le processus '" + $processName + "' exécuté sur " + $DeviceIpAddress + " ne répond pas."
$Context.SetResult(1, $NotRunningMessage )
}