Question Surveiller évènement Systeme

Plus d'informations
il y a 10 ans 1 mois #21713 par Steve
Réponse de Steve sur le sujet Re:Surveiller évènement Systeme
Bonjour @ toutes / tous. J'ai pris pas mal de retard pour le feedback donc voici le code.

[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 :p .
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.

Plus d'informations
il y a 10 ans 1 mois #21714 par xyz
Réponse de xyz sur le sujet Re:Surveiller évènement Systeme
Anoskar écrit:

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.

Ce type d'approche nécessite un RAZ en cas ce modif de carte (si je me souviens bien de ton besoin).

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 1 mois #21715 par Steve
Réponse de Steve sur le sujet Re:Surveiller évènement Systeme
Laurent Dardenne écrit:

Anoskar écrit:

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.

Ce type d'approche nécessite un RAZ en cas ce modif de carte (si je me souviens bien de ton besoin).



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.

Plus d'informations
il y a 10 ans 1 mois #21725 par NicolasBdn
Bonjour,

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.

Plus d'informations
il y a 10 ans 1 mois #21728 par Philippe
Réponse de Philippe sur le sujet Re:Surveiller évènement Systeme
bonjour NicolasB

pourquoi ne pas créer une tâche planifiée qui se déclenche sur un événement?

Bonne remarque Nicolas, c'est effectivement possible ! :)
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é !

Et déployer cette tâche via GPO?

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 !!!! ;)
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.

Plus d'informations
il y a 10 ans 1 mois #21733 par NicolasBdn
Désolé 6ratgus, je n'ai pas de liens concret sur une programmation qui pourrait aider. Juste quelques liens de documentations technet qui pourrait aiguillé:

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:

: j'ai de win Xp sp3 ( oui oui ... ) jusqu'à 10

Ma méthode ne fonctionnera pas, car non applicable à WinXP...

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.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena