Question
Surveiller évènement Systeme
- Steve
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 22
- Remerciements reçus 0
[code:1]
$carteLanConf = gwmi -Class win32_networkAdapterConfiguration | Where-Object { ($_.DNSDomain -match \"mon.domaine\"«») }
$id = $carteLanConf | ForEach-Object { $_.index }
$lan = gwmi -class win32_networkAdapter | Where-Object { $_.deviceID -eq $id }
$eventName = \"Ecoute LAN filaire\" # Sera tout simplement le nom de mon event, il sera visible via Get-EventSubscriber
$message = \"Pas d'ETH up\"
# ******************************************************
# Requete WQL
# On va checker l'instance de la carte reseau
# qui nous interesse. Ici on s interesse au LAN filaire
# *******************************************************
$query = \"SELECT * FROM __InstanceModificationEvent
WITHIN 3
WHERE TargetInstance ISA 'Win32_NetworkAdapter'
AND TargetInstance.DeviceID = \" + $lan.deviceID +
\"\"
#$query2 = \"SELECT * FROM __InstanceModificationEvent
#WITHIN 3
#WHERE TargetInstance ISA 'Win32_NetworkAdapter'\"
# ********************************************************************************
# Definition de l action qui sera effectuee
# Je prends le status de la carte LAN
# En fonction de ce status ( il me retourne un code NetConnectionStatus de 0 @ 10
# ) --> 2 connecte et 7 --> deconnecte
# En fonction de l etat, nous desactivons ou non toute les carte sauf le LAN
# via l appel du script onOffNetwork.ps1
# *********************************************************************************
$action = {
#$a = gwmi Win32_NetworkAdapter | Where-Object { $_.deviceID -eq 7 }
#if ($lan.NetConnectionStatus -eq 2)
#{
powershell.exe .\onOffNetwork.ps1
#}
#else { }
}
# ************************
# On va s abonner @ levenement qui nous interesse a travers la query definie plus haut
# Une fois l'event cree --> j affiche l event afin de definir si tout est ok.
# !!!!!! l event n est valable que POUR LA SESSION PS LANCEE, une fois close --> kPout!!!!!!
# ************************
if (($lan -ne $null) -and ($eventName -ne $null))
{
Register-WmiEvent -Query $query -SourceIdentifier $eventName -Action $action
Get-EventSubscriber
}
else
{
Write-Host $message # Si aucun deviceID n a ete definit, on arrive ici
}
[/code:1]
Désolé j'ai pas mal de commentaires, mais je préfère afin de ne pas perdre le fil des idées sur le long terme
J'ai retrouvé le WQL en farfouinant sur le net, simple et efficace.
Ce script trouve bien la carte réseau connectée au domaine et désactive toutes les autres ( sauf les vm). Lorsque l'user se décable du réseau domaine, toutes les cartes sont activées.( les user ne possèdent pas de droit root)
L'idée est de transformer ce script en service afin de pouvoir le lancer sous un compte admin sur l'ensemble de nos machines.
Pour l'instant il me reste un détail assez agaçant :
Ce script boot au démarrage, si une machine n'est pas connectée au lan du domaine, il ne peut pas récupérer l'id de la carte LAN et il s'arrête ( logique, pas d'id pas d'event. .. )
J'ai pensé a deux début de solution mais si vous avez mieux je suis preneur :
Le script, une fois lancé et fonctionnel créera un fichier ( ou une clé de registre) contenant l'id qui sera à chaque fois récupérée en début de script.
L'idéal serait de connaître de quel type est la carte réseau ( filaire, wifi, etc .. ) Je crois que c'est faisable à partir du 8.1 et la dernière version de powershell. Malheureusement pour moi : j'ai de win Xp sp3 ( oui oui ... ) jusqu'à 10
Qu'en pensez-vous ?
Bonne journée<br><br>Message édité par: Anoskar, à: 21/04/16 10:32
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
Ce type d'approche nécessite un RAZ en cas ce modif de carte (si je me souviens bien de ton besoin).Le script, une fois lancé et fonctionnel créera un fichier ( ou une clé de registre) contenant l'id qui sera à chaque fois récupérée en début de script.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Steve
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 22
- Remerciements reçus 0
Anoskar écrit:
Ce type d'approche nécessite un RAZ en cas ce modif de carte (si je me souviens bien de ton besoin).Le script, une fois lancé et fonctionnel créera un fichier ( ou une clé de registre) contenant l'id qui sera à chaque fois récupérée en début de script.
Lorsque le script se lance, il va remettre à jour cet id dans le fichier / base de registre afin de prévenir une maj hardware ou autre.
Connexion ou Créer un compte pour participer à la conversation.
- NicolasBdn
-
- Hors Ligne
- Membre senior
-
J'ai lu rapidement le poste.
Petite question, pourquoi ne pas créer une tâche planifiée qui se déclenche sur un événement?
Il me semble que c'est possible de le faire à partir de Windows 7.
Et déployer cette tâche via GPO?
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
Bonne remarque Nicolas, c'est effectivement possible !pourquoi ne pas créer une tâche planifiée qui se déclenche sur un événement?
a tu un lien a proposé a Anoskar sur la programmation d'un déclencheur sur un évènement dans une tache planifier ?
ça évitera qu'il ce trompe sur ta solution proposé !
c'est là tout l'intérêt de ta solution une tache planifié qui s'exécute même si il n'y a pas de connexion réseau avec l'AD !!!!Et déployer cette tâche via GPO?
ou pour les GPO scripts de demarrage qui ne s'exécute pas sur les connexions wifi
Connexion ou Créer un compte pour participer à la conversation.
- NicolasBdn
-
- Hors Ligne
- Membre senior
-
technet.microsoft.com/fr-fr/library/cc721871.aspx
Je n'ai pas mis cette méthode en place, j'y avait juste réfléchis lorsque j'ai eu besoin de maintenir à jour une copie de mes scripts entre ma clé usb et mes différents PC.
Aujourd'hui ce n'est plus le cas.
J'ai relus rapidement le poste avant de poster ce message et j'ai vu ceci:
Ma méthode ne fonctionnera pas, car non applicable à WinXP...: j'ai de win Xp sp3 ( oui oui ... ) jusqu'à 10
Toutefois, si la méthode intéresse quand même, je serais ravis d'aider.
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Surveiller évènement Systeme