Avatar billede snowball Novice
16. juni 2010 - 13:31 Der er 5 kommentarer og
1 løsning

Powershell: Sæt parameter ind i "winrm g wmicimv2" kald

Hej.

Jeg er ved at lave et par Powershell scripts til at hente diverse informationer ud af nogle servere.

Jeg gør f.eks. brug af nedenstående:

[xml]$diskStats = winrm g wmicimv2/Win32_LogicalDisk?DeviceID="C:" /f:pretty -remote:$args[0]


Men hvordan får jeg lavet DeviceID="C:" delen om så den kan benyttes som en parameter ligesom -remote? Synes efterhånden jeg har forsøgt med mange ting uden det vil lykkedes.

På forhånd tak.
Avatar billede riversen Nybegynder
16. juni 2010 - 14:37 #1
erstat C: med $args[1] fx
Avatar billede snowball Novice
16. juni 2010 - 14:41 #2
Det var også mit første bud, men lige meget hvordan jeg stykker det sammen, så får jeg en fejl som f.eks. "winrm.cmd : Error: Invalid use of command line.".
Avatar billede riversen Nybegynder
16. juni 2010 - 14:49 #3
hvad indeholder $args[0]? Jeg kan nemlig ikke udføre kommandoen så det er lidt svært at lege med det.
Avatar billede snowball Novice
17. juni 2010 - 10:02 #4
$args[0] indeholder navnet på den server som forespørgslen skal laves til, og den del virker helt fint.

Meningen var så, at jeg gerne ville lave en $args[1] som indeholder det drev bogstav som der skal tjekkes for.

Hvis man kigger på "winrm g wmicimv2/Win32_LogicalDisk?DeviceID="C:"" via en PS editor med syntax farvning, så virker ovenstående til at være én lang kommando som ikke kan bygges op som en streng!?

Hvis jeg f.eks. prøver med

winrm g wmicimv2/Win32_LogicalDisk?DeviceID= $args[1]


og parameteren angives til enten C: eller "C:" så er fejlen "Invalid use of command line".

Hvis jeg så prøver med

winrm g wmicimv2/Win32_LogicalDisk?DeviceID=$args[1]


og parameteren angives til enten C: eller "C:" så kommer der en laaang fejl om at den ikke kan finde det pågældende komponent / ressource.
Avatar billede snowball Novice
17. juni 2010 - 13:42 #5
Jeg endte med at lave en workaround som nedenstående:

$strDrive = $args[1]

switch ($strDrive)
{
"C"
  { [xml]$diskStats = winrm g wmicimv2/Win32_LogicalDisk?DeviceID="C:" /f:pretty -remote:$args[0] }
"D"
  { [xml]$diskStats = winrm g wmicimv2/Win32_LogicalDisk?DeviceID="D:" /f:pretty -remote:$args[0] }
"E"
  { [xml]$diskStats = winrm g wmicimv2/Win32_LogicalDisk?DeviceID="E:" /f:pretty -remote:$args[0] }

}


Ikke super kønt, men det virker.

Lav et svar hvis du vil have del i pointene :)
Avatar billede snowball Novice
24. juni 2010 - 11:31 #6
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester