Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[PS] Modules pour un audit distant

2 réponses
Avatar
Eric Galais
Bonjour,

Dans le cadre d'un projet, j'ai de multiples opérations à faire sur chaque
machine que je migre (Migration de client lotus notes).
Comme tout bon informaticien je suis fainéant donc je script mes opérations
manuelles.
Le language choisi est le Powershell, je vois déjà Jacques esquisser un
petit sourir.

J'arrive déjà à faire presque tout ce que je veux sur une machine distante à
quelques exceptions pres bien sur.(sinon je ne serais pas la)
Afin de faire mon audit sur la machine ciblée, j'ai besoin de vérifier si la
machine ne va pas me refuser l'accès.
J'ai donc besoin de vérifier si la machine est bien sur le réseau, si
j'accède bien au registre et si j'accède bien aux partages administratifs.

J'ai quelques problèmes à vous soumettre si vous le voulez bien.

1°) Concrétiser les tests suivants:
- Machine sur le réseau (Oui/non), Test de ping
- Registre accessible (Oui/non)
- Partages administratifs c$,d$ viables (Oui/non)

2°) Lire une sous clé d'un registe distant
En local j'arrive bien à faire:
Get-ChildItem Registry::HKLM\Software\Lotus\Notes -name #pour me retourner
la sous clé représentant la version du lotus sur la machine
Mais ceci ne fonctionne qu'en local.
J'arrive à récupérer les propriétés de clés de registre sur une machine
distante mais pas simplement lister les sous clés.


Mon script fait les opérations suivantes:
- Récupère dans le registre les chemin "Path" et "Datapath" sur
HKLM\Software\Lotus\Notes\Version_du_lotus\
- Pointe dans le "Path" de l'application pour vérifier la présence du
fichier Notes.ini (ca veut dire installation utilisateur unique)
- Récupère dans le fichier ini la valeur de la variable "KeyFilename" (nom
et localisation de l'ID)
- Vérifie si l'ID est bien présent dans la partie "Datapath" de
l'application
- Vérifie l'espace disque libre sur les 2 partitions du disque local.
- Donne la taille totale des bases nsf contenues dans l'arborescence du
"Datapath".

Conclusion:
Avant de lancer mon audit, je veux savoir si la machine est "Prête" (Cf
question N°1) et automatiser la détection de la version du lotus (Cf
question N°2)

Merci d'avance et désolé pour le pavé, je pense avoir été clair.

Eric Galais

2 réponses

Avatar
Gilles LAURENT [MVP]
"Eric Galais" a écrit dans le message de
news:
| Bonjour,

Bonjour,

[...]
| - Machine sur le réseau (Oui/non), Test de ping

write-host -noNewLine "Accessibilité réseau : "
$ping=gwmi Win32_PingStatus -filter "address='$computer'"
if ($ping.StatusCode -eq 0) { "OK" } else { "KO" }

| - Registre accessible (Oui/non)

$ErrorActionPreference = "SilentlyContinue"
write-host -noNewLine "Accessibilité du registre : "
[Microsoft.Win32.RegistryKey]::`
OpenRemoteBaseKey("LocalMachine", $computer) | out-null
if ($?) { "OK" } else { "KO" }

| - Partages administratifs c$,d$ viables (Oui/non)

$ErrorActionPreference = "SilentlyContinue"
write-host -noNewLine "Présence des partages administratifs : "
$nbshares=(gwmi Win32_Share -computer $computer -filter `
"Name='C$' Or Name='D$'").count
if ($nbshares -eq 2) { "OK" } else { "KO" }

| - Lire une sous clé d'un registe distant

[Microsoft.Win32.RegistryKey]::`
OpenRemoteBaseKey("LocalMachine", $computer).`
OpenSubKey("SoftwareLotusNotes").`
GetSubKeyNames()

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Eric Galais
Grand merci Gilles, je vais tester ça de suite.


"Gilles LAURENT [MVP]" a écrit dans le message de news:
%23%
"Eric Galais" a écrit dans le message de
news:
| Bonjour,

Bonjour,

[...]
| - Machine sur le réseau (Oui/non), Test de ping

write-host -noNewLine "Accessibilité réseau : "
$ping=gwmi Win32_PingStatus -filter "address='$computer'"
if ($ping.StatusCode -eq 0) { "OK" } else { "KO" }

| - Registre accessible (Oui/non)

$ErrorActionPreference = "SilentlyContinue"
write-host -noNewLine "Accessibilité du registre : "
[Microsoft.Win32.RegistryKey]::`
OpenRemoteBaseKey("LocalMachine", $computer) | out-null
if ($?) { "OK" } else { "KO" }

| - Partages administratifs c$,d$ viables (Oui/non)

$ErrorActionPreference = "SilentlyContinue"
write-host -noNewLine "Présence des partages administratifs : "
$nbshares=(gwmi Win32_Share -computer $computer -filter `
"Name='C$' Or Name='D$'").count
if ($nbshares -eq 2) { "OK" } else { "KO" }

| - Lire une sous clé d'un registe distant

[Microsoft.Win32.RegistryKey]::`
OpenRemoteBaseKey("LocalMachine", $computer).`
OpenSubKey("SoftwareLotusNotes").`
GetSubKeyNames()

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr