Top-Themen

Aktuelle Themen (A bis Z)

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, 7664 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 ..
Ähnliche Inhalte
Batch & Shell
Vbs Anzahl gleicher Zeilen ermitteln
Frage von goodbytesBatch & Shell1 Kommentar

Hallo, in einem Array hab ich zehn mittels Semikolon getrennte Strings als Datensätze, die Datensätze sind durch vbCrLf getrennt. ...

Festplatten, SSD, Raid
Speicherverbrauch ermitteln
Frage von YannoschFestplatten, SSD, Raid8 Kommentare

Hallo zusammen, habe einen 2k8R2 hier mit einer D Part von 724 GB frei sind nurnoch knapp 70 GB ...

Router & Routing
Netzwerkbelastung ermitteln
gelöst Frage von AzubineRouter & Routing6 Kommentare

Guten Morgen, wir haben einen Kunden wo es Probleme mit der Geschwindigkeit gibt. Sobal meh wie 2 Mitarbeiter online ...

Windows Server
Apple XServe Hardware mit Windows Server Betriebsystem
Frage von itron2Windows Server3 Kommentare

Hallo, ich möchte gerne auf einer Apple XServer Hardware einen aktuelen Windows Server installieren. Die Installation soll völlig ohne ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 49 MinutenInternet

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 7 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 18 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 20 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen13 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...