Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS Betriebsystem ermitteln

Frage Entwicklung VB for Applications

Mitglied: Yannosch

Yannosch (Level 2) - Jetzt verbinden

17.01.2013 um 14:03 Uhr, 6955 Aufrufe, 5 Kommentare

Guten Tag :p ,

ist es möglich mit VBS das Betriebsystem zu ermitteln ?
in meinem Fall müsste der betreffende PC nur zwischen xp und windows7 unterschieden werden.

Sofern es möglich sein sollte, wäre es sehr nett, wenn ihr es mir erklärt :p ...

Liebe Grüße

YANNOSCH!
Mitglied: vossbaer
17.01.2013 um 14:13 Uhr
Es müsste möglich sein es per Befehl aus der Registry auszulesen

OS --> Variable
OS = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")

Dann müsstest Du OS einfach weiter verarbeiten können.
Bitte warten ..
Mitglied: mayho33
17.01.2013 um 14:21 Uhr
Hi!

Via WMI hier alle Properties die Win32_OperatingSystem zurück gibt. Für dich wäre "Version" gefragt. 5.1 = XP, 6.1=W7.
mit
wscript.echo left(objItem.Version, 3)
bekommst du bei XP "5.1" zurück...


'Code:
'
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)

Dim objItem 'as Win32_OperatingSystem
For Each objItem in colItems
WScript.Echo "BootDevice: " & objItem.BootDevice
WScript.Echo "BuildNumber: " & objItem.BuildNumber
WScript.Echo "BuildType: " & objItem.BuildType
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "CodeSet: " & objItem.CodeSet
WScript.Echo "CountryCode: " & objItem.CountryCode
WScript.Echo "CreationClassName: " & objItem.CreationClassName
WScript.Echo "CSCreationClassName: " & objItem.CSCreationClassName
WScript.Echo "CSDVersion: " & objItem.CSDVersion
WScript.Echo "CSName: " & objItem.CSName
WScript.Echo "CurrentTimeZone: " & objItem.CurrentTimeZone
WScript.Echo "DataExecutionPrevention_32BitApplications: " & objItem.DataExecutionPrevention_32BitApplications
WScript.Echo "DataExecutionPrevention_Available: " & objItem.DataExecutionPrevention_Available
WScript.Echo "DataExecutionPrevention_Drivers: " & objItem.DataExecutionPrevention_Drivers
WScript.Echo "DataExecutionPrevention_SupportPolicy: " & objItem.DataExecutionPrevention_SupportPolicy
WScript.Echo "Debug: " & objItem.Debug
WScript.Echo "Description: " & objItem.Description
WScript.Echo "Distributed: " & objItem.Distributed
WScript.Echo "EncryptionLevel: " & objItem.EncryptionLevel
WScript.Echo "ForegroundApplicationBoost: " & objItem.ForegroundApplicationBoost
WScript.Echo "FreePhysicalMemory: " & objItem.FreePhysicalMemory
WScript.Echo "FreeSpaceInPagingFiles: " & objItem.FreeSpaceInPagingFiles
WScript.Echo "FreeVirtualMemory: " & objItem.FreeVirtualMemory
WScript.Echo "InstallDate: " & objItem.InstallDate
WScript.Echo "LargeSystemCache: " & objItem.LargeSystemCache
WScript.Echo "LastBootUpTime: " & objItem.LastBootUpTime
WScript.Echo "LocalDateTime: " & objItem.LocalDateTime
WScript.Echo "Locale: " & objItem.Locale
WScript.Echo "Manufacturer: " & objItem.Manufacturer
WScript.Echo "MaxNumberOfProcesses: " & objItem.MaxNumberOfProcesses
WScript.Echo "MaxProcessMemorySize: " & objItem.MaxProcessMemorySize
WScript.Echo "MUILanguages: " & objItem.MUILanguages
WScript.Echo "Name: " & objItem.Name
WScript.Echo "NumberOfLicensedUsers: " & objItem.NumberOfLicensedUsers
WScript.Echo "NumberOfProcesses: " & objItem.NumberOfProcesses
WScript.Echo "NumberOfUsers: " & objItem.NumberOfUsers
WScript.Echo "OperatingSystemSKU: " & objItem.OperatingSystemSKU
WScript.Echo "Organization: " & objItem.Organization
WScript.Echo "OSArchitecture: " & objItem.OSArchitecture
WScript.Echo "OSLanguage: " & objItem.OSLanguage
WScript.Echo "OSProductSuite: " & objItem.OSProductSuite
WScript.Echo "OSType: " & objItem.OSType
WScript.Echo "OtherTypeDescription: " & objItem.OtherTypeDescription
WScript.Echo "PAEEnabled: " & objItem.PAEEnabled
WScript.Echo "PlusProductID: " & objItem.PlusProductID
WScript.Echo "PlusVersionNumber: " & objItem.PlusVersionNumber
WScript.Echo "Primary: " & objItem.Primary
WScript.Echo "ProductType: " & objItem.ProductType
WScript.Echo "RegisteredUser: " & objItem.RegisteredUser
WScript.Echo "SerialNumber: " & objItem.SerialNumber
WScript.Echo "ServicePackMajorVersion: " & objItem.ServicePackMajorVersion
WScript.Echo "ServicePackMinorVersion: " & objItem.ServicePackMinorVersion
WScript.Echo "SizeStoredInPagingFiles: " & objItem.SizeStoredInPagingFiles
WScript.Echo "Status: " & objItem.Status
WScript.Echo "SuiteMask: " & objItem.SuiteMask
WScript.Echo "SystemDevice: " & objItem.SystemDevice
WScript.Echo "SystemDirectory: " & objItem.SystemDirectory
WScript.Echo "SystemDrive: " & objItem.SystemDrive
WScript.Echo "TotalSwapSpaceSize: " & objItem.TotalSwapSpaceSize
WScript.Echo "TotalVirtualMemorySize: " & objItem.TotalVirtualMemorySize
WScript.Echo "TotalVisibleMemorySize: " & objItem.TotalVisibleMemorySize
WScript.Echo "Version: " & objItem.Version
WScript.Echo "WindowsDirectory: " & objItem.WindowsDirectory
WScript.Echo ""
Next
Bitte warten ..
Mitglied: Yannosch
21.01.2013 um 08:43 Uhr
Vielen Dank für die schnelle Antwort!

@mayho33:

Dein Vorschlag ist ersichtlich, allerding schaffe ich es nicht den Rückgabewert (sprich 5.1 oder 6.1) in einer Variable festzuhalten.
Wie wäre da dein Lösungsvorschlag?
Also dass ich quasie in die Variable "OS", 7 für Win7 und x für XP speichern kann
Bitte warten ..
Mitglied: mayho33
21.01.2013, aktualisiert um 10:44 Uhr
Hi!

Hier mal der Code die Version betreffend. Die Ausgabe brauchst du nicht unbedingt. Komt darauf an was du machen willst
Grundsätzlich wäre es aber nicht so schwer den Rückgabewert aus dem entsprechenden Property in eine Variable zu speichern
Direkt kannst du ein Objekt natürlich nicht in einer Variable speichern. Außer die Variable ist ein Objekt. Was aber Nonsens wäre:

'CODE
'
'Variablen setzen und initialisieren
Dim objShell: Set objShell = WScript.CreateObject("wscript.shell")
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject")
Dim CDir: CDir = objFso.GetParentFolderName(WScript.ScriptFullName)
Dim Value

'WMI abfragen. Die Abfrage liefert eine Collection in einem Object
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)

Dim objItem
For Each objItem in colItems
'Variable füllen. Die ersten 3 Charakter sind wichtig. die gesamte Ausgabe wäre etwa so: 7.1.xxxx.xx
'Left sagt: von links die ersten 3 auslesen ==> Variable Value
Value = Left(objItem.Version, 3)
Next

select Case Value
Case "6.2"
WScript.Echo "Version = W8 oder Server 2012"
Case "6.1"
WScript.Echo "Version = W7 oder Server 2008 R2"
Case "6.0"
WScript.Echo "Version = Vista oder Server 2008"
Case "5.2"
WScript.Echo "Version = XP-64Bit oder Server 2003 (R2)"
Case "5.1"
WScript.Echo "Version = XP"
Case "5.0"
WScript.Echo "Version = 2000"
Case Else
WScript.Echo "Älter als Windows 2000"
End select
Bitte warten ..
Mitglied: Yannosch
21.01.2013 um 10:45 Uhr
Richtig verständlich und vor allem auch funktionierend! Vielen Dank ! Bin jetzt erstmal ein bisschen beschäftigt.

Nochmals Danke
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...