Je cherche un moyen d'envoyer des commandes à tous les postes de travail. Le scénario est le suivant :

Je vais souvent dans des environnements que je ne connais pas pour auditer le réseau. Une partie de cela est une analyse du réseau, mais pour utiliser nos outils spécifiques, nous devons configurer quelques éléments sur chaque poste de travail (activer l'accès wmi, activer le partage de fichiers et d'imprimantes, etc.). Nous avons un fichier batch que nous pouvons exécuter sur chaque ordinateur, mais cette solution n'évolue pas aussi bien que vous pouvez l'imaginer. J'ai inclus les commandes que nous exécutons ci-dessous.

Idéalement, il y aurait un moyen de pousser le fichier batch pour qu'il s'exécute une fois sur tous les ordinateurs connectés au domaine. Alternativement, nous pourrions créer un nouveau fichier batch qui crée un GPO qui fait les mêmes choses, mais c'est quelque chose que je n'ai pas fait auparavant.

Toute aide est vraiment appréciée!

rem Allow the device to be pingable through Windows Firewall
netsh firewall set icmpsetting type=ALL mode=enable
netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
netsh advfirewall firewall add rule name="ICMP Allow incoming V6 echo request" protocol=icmpv6:8,any dir=in action=allow

rem Turn on File and Printer Sharing
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes

rem Allow WMI access through Windows Firewall
netsh firewall set service type=remoteadmin mode=enable
netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes

rem Add user account
net user [REDACTED] /add
net localgroup Administrators [REDACTED] /add

Rem Set WMI Permissions
sc sdset SCMANAGER D:(A;;CCLCRPRC;;;AU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

ECHO End of script
PAUSE
answer

Les paramètres du pare-feu et les utilisateurs et groupes locaux peuvent être directement contrôlés par les GPO, vous n'avez pas besoin d'exécuter un fichier batch pour les définir.

Paramètres pertinents :

entrez la description de l'image ici

entrez la description de l'image ici

Réponse supplémentaire pour répondre à votre commentaire.

Les objets de stratégie de groupe ne fournissent aucun moyen d'exécuter quelque chose immédiatement ; la prochaine meilleure chose est un script de démarrage, mais qui ne serait exécuté qu'au prochain redémarrage des machines.

Si vous avez vraiment besoin d'exécuter immédiatement une commande sur tous les ordinateurs du domaine, vous pouvez utiliser PowerShell Remoting pour exécuter votre commande sur tous les objets informatiques renvoyés à partir d'une requête Active Directory, comme ceci :

$Computers = Get-ADComputer -Filter {Enabled -eq $True} -searchbase "OU=myou,DC=domain,DC=tld"

foreach ($Computer in $Computers) {

    Invoke-Command -ComputerName $_.Name -ScriptBlock {
    
        # Your script here
    }
}

Bien entendu, vous pouvez ajouter des filtres supplémentaires à votre recherche LDAP et/ou modifier la base de recherche ; il serait également judicieux de tester si les ordinateurs sont réellement en cours d'exécution et accessibles, sinon vous devrez attendre le Invoke-Commanddélai d'expiration sur chaque ordinateur inaccessible.