Un Ordinateur Virtuel Hyper-V, avec Windows Serveur 2025,
8Go de RAM min. et 2 vCPU
(c'est quand même plus fendard sur du Core direct non ? :-D)
Vous pouvez le faire avec une version graphique de Windows Serveur
ou
sur Windows 11 Pro également
en pensant à ouvrir le Terminal et l'Invite de commande en mode Administrateur
mkdir /TEMP
Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vs_Community.exe" -OutFile "C:\TEMP\VisualStudioSetup.exe"
sl /TEMP
.\VisualStudioSetup.exe --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --passive --norestart
Si vous installez avec la version graphique de Windows, dans l'onglet Charge de travail, choisir : "Developpement Desktop en C++"
Eteindre et faire un snapshot une fois VisualStudio installé.
iwr -uri "https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54021_64bit_UCRT/strawberry-perl-5.40.2.1-64bit.msi" -Outfile "C:\TEMP\strawberry-perl-5.40.2.1-64bit.msi"
sl /TEMP
Start-Process msiexec.exe -Wait -ArgumentList '/i "C:\TEMP\strawberry-perl-5.40.2.1-64bit.msi" /quiet /norestart' -Verb RunAs
Eteindre et faire un snapshot
iwr -uri "https://slproweb.com/download/Win64OpenSSL-3_5_1.msi" -outfile "C:\TEMP\Win64OpenSSL-3_5_1.msi"
Start-Process msiexec -Wait -ArgumentList '/i "C:\TEMP\Win64OpenSSL-3_5_1.msi" /qn' -Verb RunAs
Eteindre et faire un snapshot.
(https://sourceforge.net/projects/net-snmp/)
sl /TEMP
Expand-Archive "C:\TEMP\net-snmp-5.10.pre1.zip"
Eteindre et faire un snapshot.
start cmd
dir /x "C:\"
dir /x "C:\Program Files"
Votre chemin devrait donc être : C:\PROGRA~1\OPENSS~1
cd "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build"
vcvarsall.bat amd64
Vérifier que Perl est disponible dans l'environnement :
perl -v
cd \TEMP\net-snmp-5.10.pre1\net-snmp-5.10.pre1\win32\build.bat
Voici les options à activer :
Net-SNMP build and install options
==================================
1. OpenSSL support: enabled
2. OpenSSL include directory: C:/PROGRA~1/OPENSS~1/include
3. OpenSSL library director: C:/PROGRA~1/OPENSS~1/lib/VC/x64
4. Install path: c:/usr
5. Install after build: enabled
6. Perl modules: disabled
7. Install perl modules: disabled
8. Quiet build (logged): enabled
9. Debug mode: disabled
10. IPv6 transports: enabled
11. winExtDLL agent: enabled
12. Link type: static
13. Install development files disabled
F. Finished - start build
Q. Quit - abort build
Select option to set / toggle:
Appuyez sur F pour terminer et démarrer le build.
Le build devrait réussir. (Done).
Quittez le cmd (fermez la fenêtre) et revenez à PowerShell.
Ajouter au PATH :
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value "$($env:Path);C:\usr\bin"
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Pour pouvoir bénéficier des MIB du module HOST-RESOURCES-MIB permettant notamment d'accéder à "hrStorageDescr" (les sondes pour le contrôle des disques) et "hrSWRunName", il est nécessaire d'installer aussi l'agent SNMP de Windows
Install-WindowsFeature SNMP-Service
Stop-Service "SNMP"
Set-Service "SNMP" -StartupType Disabled
Pour l'installation sur Windows 11 Pro :
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
Stop-Service "SNMP"
Set-Service "SNMP" -StartupType Disabled
Eteindre et faire un snapshot.
Copiez/collez le bloc entier dans notepad, adaptez-le (MONUTILISATEUR, MOT2PASSEAUTH et MOT2PASSEPRIV), puis copiez/collez le bloc dans le terminal pour générer automatiquement le fichier avec la configuration, sans mauvais caractères de retours chariots ou autre :
$ConfigContent = @'
createUser MONUTILISATEUR SHA MOT2PASSEAUTH AES MOT2PASSEPRIV
view all included .1 80
group full-access usm MONUTILISATEUR
access full-access "" usm priv exact all all all
'@
[System.IO.File]::WriteAllText("C:\usr\etc\snmp\snmpd.conf", $ConfigContent, [System.Text.UTF8Encoding]::new($false))
Cette configuration donne les pleins pouvoirs à votre utilisateur.
Il sera nécessaire de réduire, mais en l'état, cela permet aux superviseurs d'accéder à tout.
Je vous laisse chercher pour ça.
Pour Autoriser le trafic SNMP venant du superviseur
(Adaptez L'IP 192.168.10.51 à celle de votre superviseur !)
New-NetFirewallRule `
-Name "Autoriser SNMP UDP 161" `
-DisplayName "Autoriser SNMP UDP 161" `
-Direction Inbound `
-Action Allow `
-Protocol UDP `
-LocalPort 161 `
-RemoteAddress 192.168.10.51 `
-Profile Any
snmpd.exe -register -Lf C:/usr/log/snmpd.log -c C:/usr/etc/snmp/snmpd.conf
net start "Net-SNMP Agent"
Vérifier le bon fonctionnement :
Get-Service "Net-SNMP Agent"
En cas de besoin : Arrêter le service, et le supprimer :
net stop "Net-SNMP Agent"
snmpd.exe -unregister
Sur le Superviseur Nagios (par exemple), utiliser le wizard "SNMP de Windows", tout simplement.