Question Problème avec win32_logicaldisk et Server 2012

Plus d'informations
il y a 12 ans 11 mois #14568 par Camille
Bonjour à tous,

J'ai un problème avec un script que j'utilise pour récupérer divers informations sur les volumes de mes serveurs à l'aide de Win32_LogicalDisk.

Je n'ai jamais eu de problèmes avec ce script, excepté depuis l'installation d'un Windows Server 2012.

En effet avec celui-ci lorsque je fais par exemple, depuis un autre serveur, la commande :

[code:1]Get-WmiObject win32_logicaldisk -computername mon_serveur_2012[/code:1]

PS C:\Windows\system32> Get-WmiObject win32_logicaldisk -computername srvcamtest


DeviceID : A:
DriveType : 2
ProviderName :
FreeSpace :
Size :
VolumeName :

DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 54056402944
Size : 64055406592
VolumeName :

DeviceID : D:
DriveType : 5
ProviderName :
FreeSpace :
Size :
VolumeName :

DeviceID : E:
DriveType : 3
ProviderName :
FreeSpace :
Size :
VolumeName :


je récupère toutes les informations concernant le volume C: (notamment l'espace total et restant), mais aucune des volumes suivants, excepté leur lettre et leur type (3 en l’occurrence).

J'ai essayé avec des volumes en NTFS et ReFS, ceci n'a pas d'incidences.
J'ai essayé avec un script vbs utilisant le même objet WMI, même problème.

En revanche quand je lance le script ou la commande suivante depuis le serveur en question [code:1]Get-WmiObject win32_logicaldisk -computername mon_serveur_2012[/code:1] les informations remontent bel et bien.

PS C:\Users\administrateur> Get-WmiObject win32_logicaldisk -computername srvcamtest


DeviceID : A:
DriveType : 2
ProviderName :
FreeSpace :
Size :
VolumeName :

DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 54058516480
Size : 64055406592
VolumeName :

DeviceID : D:
DriveType : 5
ProviderName :
FreeSpace : 0
Size : 3738560512
VolumeName : HRM_SSS_X64FREV_FR-FR_DV5

DeviceID : E:
DriveType : 3
ProviderName :
FreeSpace : 10609422336
Size : 10701762560
VolumeName : Nouveau volume


J'ai testé avec une autre installation de Windows Server 2012, j’obtiens le même problème.

Je ne vois pas ce qui pourrait bloquer. Est-ce que quelqu'un aurait une idée ?

Merci d'avance

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

Plus d'informations
il y a 12 ans 11 mois #14569 par SiSMik
Bonjour,

L'utilisation de GetWMI est \"déconseillée\" sur Windows Server 2012.
Il vaut mieux utiliser Get-CIMInstance qui malheureusement n'est disponible qu'avec Powershell 3.0.

Et en local, avec Get-Disk (Powershell v3) je pense que tu gagnerais en perf.

Bon week end !

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

Plus d'informations
il y a 12 ans 11 mois #14571 par Camille
Merci de ta réponse

J'ai utilisé Get-CIMInstance pour tester mais le résultat est le même :

PS C:\Windows\system32> Get-CimInstance -ClassName Win32_logicaldisk -computername mon_serveur_2012


A: 2
C: 3 64055406592 34664718336
D: 3
E: 5


Cela ne me remonte pas toutes les informations correspondant au lecteur D:

Bon weekend

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

Plus d'informations
il y a 12 ans 11 mois #14584 par Arnaud Petitjean
Bonjour !

C'est très bizarre que tu n'obtiennes pas toutes les infos à distance alors que ça fonctionne en local.

Bref, pour contourner le problème on va faire en sorte que ta requête s'exécute localement... mais à distance
;)

Pour se faire utilise Invoke-Command, comme ceci:

[code:1]
Invoke-Command -ComputerName mon_serveur_2012 -scriptblock { Get-CimInstance -ClassName Win32_logicaldisk }
[/code:1]

Invoke-Command utilise ce que l'on appelle les mécanismes de \"Communication à distance PowerShell\" (remoting). Ainsi la communication s'établit via WinRM au lieu de DCOM/RPC comme Get-WMIObject. Tu peux donc réactiver le pare-feu sur ton serveur 2012 ou refermer DCOM/RPC si besoin.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 12 ans 11 mois #14612 par Camille
Bonjour et merci de ta réponse,

J'ai suivi ton conseil et essayé de passer par Invoke-Command, mais j'ai toujours le problème.
Etant donné que Invoke-Command sert à exécuter la commande en local sur le serveur distant, je ne vois pas du tout ce qui peut poser problème.

Pour le moment j'utilise un script sur mes Server 2012 qui exécute la commande pour récupérer les infos sur les volumes et qui envoie le résultat dans un fichier temporaire qui est lu par mon script général...
C'est un peu moins propre, mais en attendant de trouver une solution ça me permettra d'avoir la remontée des informations.

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

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