Avatar billede lsskaarup Nybegynder
02. december 2010 - 15:40 Der er 7 kommentarer og
1 løsning

Tjekke hvilket OS klienten kører

Jeg skal kopiere nogle filer fra en server ud i en bestemmt adresse på en bunke klient pc'er. Mit problem er at det både er Win7 og XP maskiner, og adresse er ikke helt ens på disse to.

Derfor bliver jeg nød til at tjekke for hvilket OS klienten kører før jeg kopiere filerne ud. Men hvordan gør jeg det? Jeg har søgt lidt på nettet, men de eksempler jeg har fundet, kan jeg ikke få til at virke.
Avatar billede tofte Juniormester
02. december 2010 - 15:53 #1
Har du prøvet

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems
    Wscript.Echo objOperatingSystem.Caption & " " & _
        objOperatingSystem.Version
Next
Avatar billede lsskaarup Nybegynder
02. december 2010 - 16:04 #2
Og hvordan holder jeg dem op imod hinanden, altså if xp then or if Win7 then?
Avatar billede lsskaarup Nybegynder
02. december 2010 - 16:06 #3
Hov, havde ikke lige set din kommentar. Jo, den var prøvet uden held, men så prøvede jeg den igen hvor det virkede.

Det må være noget jeg har glemt at dimisionere første gang.

Men jeg mangler stadig if sætningen, hvordan tjekker jeg for Windows7 og for XP? Har de samme versionsnumre uanset hvilke opdateringer systemerne nu engang har?
Avatar billede tofte Juniormester
02. december 2010 - 16:14 #4
isWin7=false
testWin7="Microsoft Windows 7"

isWinXp = false
testWinXP="Microsoft Windows XP" ' sidder ved en win 7 maskine så jeg kender ikke resultatet af denne, så find den rigtige værdi

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems
   
    if Left(objOperatingSystem.Caption,len(testWin7))=testWin7 then
        isWin7=true
    End if
   
    if Left(objOperatingSystem.Caption,len(testWinXP))=testWinXP then
        isWinXP=true
    End if
Next

msgbox isWin7
Avatar billede lsskaarup Nybegynder
02. december 2010 - 16:17 #5
He he, jeg sidder på en XP maskine, så jeg kan jo test den sidste del.
Avatar billede lsskaarup Nybegynder
02. december 2010 - 16:23 #6
Nu har jeg dette:

Dim objWMIService, objItem, colItems
Dim strComputer, strList
Dim isWin7, isWinXP, testWinXP, testWin7

isWin7=false
testWin7 ="Microsoft Windows 7"

isWinXp = false
testWinXP ="Microsoft Windows XP" ' sidder ved en win 7 maskine så jeg kender ikke resultatet af denne, så find den rigtige værdi

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")


Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objItem in colItems
    if Left(objItem.Caption,len(testWin7))=testWin7 then
        isWin7=true
    End if
   
    if Left(objItem.Caption,len(testWinXP))=testWinXP then
        isWinXP=true
    End if
Next

msgbox isWin7
msgbox isWinXP

og der får jeg hhv. falsk og sand, så det ser ud til at virke på min XP maskine. Så må jeg lige teste på en Windows 7 maskine i morgen.
Avatar billede lsskaarup Nybegynder
15. januar 2011 - 13:20 #7
Hov, jeg havde helt glemt at vende tilbage vedr. dette spørgsmål. Tofte, det lykkedes at få det til at virke på både XP og Win7, så smider du ikke et svar.
Avatar billede lsskaarup Nybegynder
14. februar 2011 - 11:49 #8
Nå, men så lukker jeg selv.
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
Kategori
Kurser inden for grundlæggende programmering

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