I will have to remember that damn r I'm the future.

Thanks,

Q
Regards,

Mark Parris

Base IT Ltd
Active Directory Consultancy
Tel +44(0)7801 690596


-----Original Message-----
From: "Alain Lissoir" <[EMAIL PROTECTED]>
Date: Thu, 19 Oct 2006 05:29:48 
To:<[email protected]>
Subject: RE: [ActiveDir] Vista & WMI

The caption is not corrupted. The branding introduces a (R) and a (TM). 
First, under Vista, the Win32_OperatingSystem class is a singleton class now, 
meaning that you can locate the UNIQUE instance of that as follows: 
  
Set colOperatingSystems = objWMIService.Get ("Win32_OperatingSystem=@") 
  
It didn't make sense to enumerate this class when there is actuall only 1 
instance of the class available. However you can continue to enumerate as 
before so, your script does not break on "before Vista platforms". 
  
Next to test the Windows version, and not get your script breaking downlevel, 
you should use the following coding technique: 
  
If Instr (objOperatingSystem.Caption, "Vista") > 0 Then 
  If objOperatingSystem.OperatingSystemSKU = 3 Then 
    WScript.Echo "Home Basic Premium Edition" 
    wscript.quit 
  End If 
End If 
  
To test the operating SKU (Home, Ultimate, Basic, etc), you should use 
OperatingSystemSKU property. 
  
If you are pure Vista (and Longhorn server) and just need to determine the SKU 
of the OS: 
  
 
Set colOperatingSystems = objWMIService.Get ("Win32_OperatingSystem=@") 
Select Case objOperatingSystem.OperatingSystemSKU 
          Case 0 
                  WScript.Echo "Undefined"
          Case 1 
                  WScript.Echo "Ultimate Edition"
          Case 2 
                  WScript.Echo "Home Basic Edition"
          Case 3 
                  WScript.Echo "Home Basic Premium Edition"
          Case 4 
                  WScript.Echo "Enterprise Edition"
          Case 5 
                  WScript.Echo "Home Basic N Edition" 
. 
. 
. 
  
  
HTH 
/Alain 
  
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_operatingsystem.asp:
 
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_operatingsystem.asp>
 
  
 OperatingSystemSKU 
Data type: uint32
 
 
Stock Keeping Unit (SKU) number for the operating system. Windows Server 2003, 
Windows XP, Windows 2000, and Windows NT 4.0:  This property is not available. 

 
Possible SKU values are:
 
 Value Meaning 
 0 Undefined 
 1 Ultimate Edition 
 2 Home Basic Edition 
 3 Home Basic Premium Edition 
 4 Enterprise Edition 
 5 Home Basic N Edition 
 6 Business Edition 
 7 Standard Server Edition 
 8 Datacenter Server Edition 
 9 Small Business Server Edition 
 10 Enterprise Server Edition 
 11 Starter Edition 
 12 Datacenter Server Core Edition 
 13 Standard Server Core Edition 
 14 Enterprise Server Core Edition 
 15 Enterprise Server IA64 Edition 
 16 Business N Edition 
 17 Web Server Edition 
 18 Cluster Server Edition 
 19 Home Server Edition 
 20 Storage Express Server Edition 
 21 Storage Standard Server Edition 
 22 Storage Workgroup Server Edition 
 23 Storage Enterprise Server Edition 
 24 Server For Small Business Edition 
 25 Small Business Server Premium Edition
 
 
----------------
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Harding, Devon
Sent: Thursday, October 19, 2006 2:56 AM
To: [email protected]
Subject: [ActiveDir] Vista & WMI

 
 
 
I’m trying to get a script working in Vista with no success.  For some reason 
the OS caption on Vista looks corrupted, but when I enter it as it’s displayed 
in wmic, my script ignores it.  I even tried to correct it, and still no 
success.  Here’s the script:
 
 
 
Dim WshShell
 
strComputer = "."
 
Set WshShell = WScript.CreateObject("WScript.Shell")
 
On Error Resume Next
 
 
 
' If Workstation, exit script
 
Dim objWMIService, colOperatingSystems, objOperatingSystem, strComputer, objFSO
 
Set objWMIService = GetObject("winmgmts:" & 
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from 
Win32_OperatingSystem")
 
For Each objOperatingSystem in colOperatingSystems
 
If objOperatingSystem.Caption = "Microsoft Windows 2000 Professional" then 
wscript.quit 
 
If objOperatingSystem.Caption = "Microsoft Windows XP Professional" then 
wscript.quit 
 
If objOperatingSystem.Caption = "Microsoftr Windows VistaT Ultimate" then 
wscript.quit
 
If objOperatingSystem.Caption = "Microsoft Windows Vista Ultimate" then 
wscript.quit  
 
Next
 
 
 
' Check / Set registry settings for screen saver.  Logoff user if settings are 
updated
 
Dim isLocked, ssTimeout, ssActive, ScrnSave, wmi, objSet 
 
 
 
isLocked = WshShell.RegRead ("HKCU\Control Panel\Desktop\ScreenSaverIsSecure")
 
ssTimeout = WshShell.RegRead ("HKCU\Control Panel\Desktop\ScreenSaveTimeout")
 
ssActive = WshShell.RegRead ("HKCU\Control Panel\Desktop\ScreenSaveActive")
 
ScrnSave = WshShell.RegRead ("HKCU\Control Panel\Desktop\SCRNSAVE.EXE")
 
 
 
If (isLocked = 0) or (CInt(ssTimeout) >900) Or (ssActive = 0) Or (ScrnSave = 
"") Then
 
    WshShell.RegWrite "HKCU\Control 
Panel\Desktop\ScreenSaverIsSecure",1,"REG_SZ"
 
            WshShell.RegWrite "HKCU\Control 
Panel\Desktop\ScreenSaveActive",1,"REG_SZ"
 
            WshShell.RegWrite "HKCU\Control 
Panel\Desktop\ScreenSaveTimeout",900,"REG_SZ"
 
            WshShell.RegWrite "HKCU\Control 
Panel\Desktop\SCRNSAVE.EXE","%system root%\system32\logon.scr","REG_SZ"
 
    WshShell.Popup "ScreenSaver settings were not previously set.  Settings 
have been updated.  A logout is required to activate new settings.  Click Ok 
and the system will logout you out now.  Auto-logoff in 20 seconds.", 20, , 0 + 
64    
 
            WshShell.Run  LogonServer & "\netlogon\shutdown.exe /l /f",0,true
 
End If
--------------------------------------------------------------------------- 
This message (including any attachments) is intended only for the use of the 
individual or entity to which it is addressed and may contain information that 
is non-public, proprietary, privileged, confidential, and exempt from 
disclosure under applicable law or may constitute as attorney work product. If 
you are not the intended recipient, you are hereby notified that any use, 
dissemination, distribution, or copying of this communication is strictly 
prohibited. If you have received this communication in error, notify us 
immediately by telephone and (i) destroy this message if a facsimile or (ii) 
delete this message immediately if this is an electronic communication. 
Thank you. [EMAIL PROTECTED])

Reply via email to