Page 1 sur 1

[R]Requête WMI

Posté : mer. 08 juil. 2020 20:43
par camil
Bonjour,

Je voudrai insérer dans cette requête WMI le compte administrateur et le mot de passe car en simple utilisateur cela ne fonctionne pas.
Merci pour votre aide.
Local $objWMIService = ObjGet("winmgmts:\\" & "\\PCRESEAU" & "\root\CIMV2")

If $objWMIService = 0 Then
   msgbox(64,"erreur" , "Il faut un compte Administrateur")
   Exit
Else
   msgbox(0,"Réussi" , "ok")
   Exit
EndIf

Re: [..]Requête WMI

Posté : mer. 08 juil. 2020 22:01
par Tlem
Bonsoir.

#RequireAdmin devrait répondre à la question.

Re: [..]Requête WMI

Posté : mer. 08 juil. 2020 22:28
par camil
Non, je suis dans un domaine alors je veux intégrer un compte admin pour exécuter une requête sur un compte utilisateur sans pouvoir comme un runas

Re: [..]Requête WMI

Posté : mer. 08 juil. 2020 23:02
par Tlem
Du coup, vous allez écrire dans votre script le login et pass d'un compte administrateur qu'il suffira de lire u'e fois le script de compilé... ^^

Re: [..]Requête WMI

Posté : jeu. 09 juil. 2020 07:36
par camil
Bonjour,
Dans un 1er temps pour test oui et je verrai après pour sécuriser le script.
Pour être plus claire:
Je souhaite vérifier si une imprimante existe sur sur un des serveurs d'impressions. Mais lorsque je veux récupérer l’information avec fileExist, il ne voit les imprimantes partagées et les répertoires partagés sont bien recupérés dans la variable .
Alors quand faisant un cmd "explorer \\sprinter1\" sous Windows, les imprimante et les repertoires partagés sont visibles

Re: [..]Requête WMI

Posté : jeu. 09 juil. 2020 14:34
par jchd
Une imprimante partagée n'est pas un fichier !

Re: [..]Requête WMI

Posté : jeu. 09 juil. 2020 15:06
par camil
Oui, effectivement. alors y a t'il un autre moyen de vérifier si une imprimante est présente sur un serveur sans être administrateur ?
Vu que tous les utilisateurs de mon domaine peuvent explorer et voire ces imprimantes sans être admin avec \\serveur.

Re: [..]Requête WMI

Posté : jeu. 09 juil. 2020 15:30
par rgx
Je souhaite vérifier si une imprimante existe sur sur un des serveurs d'impressions
Une imprimante n'est visible avec les outils réseaux (ex: net view) que si l'admin l'a paramétrée comme comme telle.
Cependant, les imprimantes actuelles ayant pratiquement toujours leur propre carte réseau, si tu connais l'@, fais un "ping" dessus.
:wink:

Re: [..]Requête WMI

Posté : ven. 10 juil. 2020 00:27
par Tlem
D'après vos renseignement, vous êtes sur un domaine. Du coup, pourquoi ne pas renseigner dans un fichier partagé la liste des imprimantes en exécutant avec les droits administrateur un script sur le serveur ?
Après, vous pouvez aussi exécuter la requête par une tâche planifiée pour le compte "System" qu'un script sans droits pourra lancer. ^^

Re: [..]Requête WMI

Posté : ven. 10 juil. 2020 15:40
par jguinch
Hello
Logiquement, il n'y a pas besoin d'être administrateur pour lister les imprimantes (car il faut quand même bien que les utilisateurs puissent s'y connecter pour imprimer).
Je pense que le script doit s'exécuter avec le compte utilisateur.
Sans trop connaître le contexte, je dirais qu'il te suffit de vérifier si le partage existe :
#include <NetShare.au3>
Global $aInfo = _Net_Share_ShareGetInfo("sprinter1", "print1234")
If Not @error Then MsgBox(0, "", "La partage existe")
Pour lister toutes les imprimantes partagées, tu peux utiliser _Net_Share_ShareEnum
Sinon, tu peux aussi utiliser la librairie AD (voir forum US) et lister les objets de type "imprimante" si celles-ci sont publiées dans ton AD.

Edit : oups, j'ai surement écrit un peut vite, j'avais pas vu la remarque dans le fichier d'aide :
Administrator, Power User, Print Operator, or Server Operator group membership is required to execute this function.

Re: [R]Requête WMI

Posté : ven. 10 juil. 2020 15:58
par camil
Bonjour,
Merci @jguinch, cela me convient parfaitement.

Re: [..]Requête WMI

Posté : ven. 10 juil. 2020 15:59
par jguinch
Autre méthode (vu que la précédente ne fonctionnera pas car l'utilisateur n'aura pas les droits suffisants").
L'idée est ici d'exporter les paramètres de l'imprimante dans un fichier. Si l'imprimante existe, le fichier sera exporté, sinon pas de fichier.
#Include <File.au3>

Local $sPrinterName = "\\sprinter1\print1234"
Local $sTmpFile = _TempFile()

RunWait('RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Xg /n "' & $sPrinterName & '" /f "' & $sTmpFile & '" /q')
If FileExists($sTmpFile) Then MsgBox(0, "", "L'imprimante existe")
FileDelete($sTmpFile)

Re: [R]Requête WMI

Posté : ven. 10 juil. 2020 18:41
par camil
Merci @jguinch, je viens de faire un test. Super l'astuce, marche impeccable... :D