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

VBScript einer gewissen Partition zuweisen )

Frage Entwicklung Batch & Shell

Mitglied: daniel61

daniel61 (Level 1) - Jetzt verbinden

07.11.2012 um 10:19 Uhr, 2441 Aufrufe, 2 Kommentare

Hi hallo,

ich habe eine Frage. Ich muss auf verschiedenen Notebooks den Bitlockerstatus abfragen. Bei den meisten ist die C Partition verschlüsselt (ist aber auch nicht 100%), die D Partition ist in der Regel unverschlüsselt. Um rauszufinden bei welchen Maschinen das der Fall ist muss ich auf jedenfall auf beide Partitionen prüfen.

Ich habe das bisher so realsiert: WMI Abfrage auf den Verschlüsselungsgrad, prüfe ob verschlüsselungsgrad < 100, dann schreib rechnername + laufwerk in eine txt und lege sie an ort xyz ab.

Das funktioniert soweit auch, allerdings hab ich bisher keine Ahnung, wie ich das jetzt für beide Partition hinkriege.
Die WMI Ausgabe wird einfach für beide Partitionen durchgeführt, allerdings nicht einzelnd deklariert. Wenn ich dem Script dann sage prüfe bitte ob die Verschlüsselung vorhanden ist, schnappt er sich nur den zuletzt geprüften Laufwerksbuchstaben.

C überspringt er dann logischerweise. Ich müsste es also irgendwie hinbekommen, dass die Abfrage 1x für C und 1x für D ausgeführt wird ... und da komm ich aktuell leider nicht weiter das was ich habe, poste ich mal unten, hat jmd ne Idee ??





'Hinweis: Script benötigt Administratorrechte!


strComputer = "."
Const pro = 100 'Fester Wert für maximalen Verschlüsselungsgrad
Dim fso, MyFile





Set wshShell = WScript.CreateObject ("Wscript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_EncryptableVolume",,48)


For Each objItem in colItems

protection= ProtectionStatus 'Aktuellen Verschlüsseungsgrad auslesen
Next


Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption")
Set strLW = objWMIService.ExecQuery( _
"SELECT * FROM Win32_EncryptableVolume",,48)
For Each objItem in strLW
strLW = objItem.DriveLetter 'Laufwerksbuchstaben auslesen






if protection < pro then 'Prüfung aktueller Status gegen maximalen Verschlüsselungswert






Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("\\mgmt\Verteiler\log\" &strComputerName & ".txt", true) 'Dateiname besteht aus Computernamen, richtigen Pfad angeben!
MyFile.WriteLine ("Das Laufwerk " &strLW & " auf " &strComputername & " ist nicht verschluesselt.") 'schreibt Laufwerk und Maschinenname in Datei
MyFile.Close
end if


next
Mitglied: rubberman
07.11.2012 um 21:18 Uhr
Hallo daniel61, willkommen im Forum.

Da du die Textdatei innerhalb der For Each Schleife immer wieder neu erstellst bzw überschreibst, kannst du nur jeweils den letzten Wert darin finden.
Ergo:
Das Instanziieren des fso Objekts und das Öffnen der Datei vor vor die Schleife setzen, das Schließen der Datei dahinter.

Grüße
rubberman
Bitte warten ..
Mitglied: daniel61
08.11.2012, aktualisiert um 12:50 Uhr
hi,

danke für deine Antwort. Auf den Trichter kam ich gestern auch noch ;) Ich hab es dann erstmal so gelöst, dass er 2 textdateien schreibt, wenn die if bedingung greift. Das hatte soweit auch funktioniert.

Nur fiel mir irgendwann ein, dass ich der funktion ja das Laufwerk richtig mitgeben muss. Also habe ich folgendes gemacht:

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption")
Set strLW1 = objWMIService.ExecQuery( _
"SELECT * FROM Win32_EncryptableVolume WHERE DriveLetter = 'C:'",,48)
For Each objItem in strLW1
strLW1 = objItem.DriveLetter 'Laufwerksbuchstaben auslesen


dann den Verschlüsselungsstatus geprüft, in eine Variable geschrieben, mit If then behandelt und dann ggf. textdatei.

Das funktionierte auch gut, zumindest auf meinem PC. Wenn ich probehalber die If Bedingung nicht erfüllt hab (wert festgelegt) hat das Script auch richtig reagiert und keine Textdatei erstellt (da Verschlüsselung vorhanden).

Der Test auf einem komplett verschlüsseltem Notebook hat dann leider nicht funktioniert. Er hat jede Partition als nicht verschlüsselt ausgegeben, obwohl diese definitiv verschlüsselt sind. hab auch nochmal geschaut, was mir eine WMI Abfrage ausgibt ... analog dazu hab ich ja dasselbe in meinem Script aber er macht es nicht .... ich häng mal das komplette Beispiel an für Laufwerk C:

strComputer = "."
Const pro = 1 'Fester Wert
Dim fso, MyFile



' Computernamen auslesen
'________________________________________________________________________________
Set wshShell = WScript.CreateObject ("Wscript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
'________________________________________________________________________________




' Operation 1: Lese Verschlüsselungsstatus aus C aus
'____________________________________________________________________________________________________________
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption")
Set strLW1 = objWMIService.ExecQuery( _
"SELECT * FROM Win32_EncryptableVolume WHERE DriveLetter = 'C:'",,48)
For Each objItem in strLW1
strLW1 = objItem.DriveLetter 'Laufwerksbuchstaben auslesen
Next

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_EncryptableVolume",,48)
For Each objItem in colItems
Protection1=objItem.ProtectionStatus 'Aktuellen Verschlüsseungsgrad auslesen

if protection1 <> pro then 'Prüfung aktueller Status gegen maximalen Verschlüsselungswert

Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("\\mgmt\Verteiler\log\" &strComputerName&"_P1" &".txt", true) 'Dateiname besteht aus Computernamen, richtigen Pfad angeben!
MyFile.WriteLine ("Das Laufwerk " &strLW1 & " auf " &strComputername & " ist nicht verschluesselt.") 'schreibt Laufwerk und Maschinenname in Datei
MyFile.Close
end if
Next



im obigen Bsp. habe ich die Konstante "pro" auf 100 gesetzt, weil ich irgendwie auf den Trichter kam, dass der WMI Filter auch 100 ausgibt, keine Ahnung wie ich darauf kam, is auch nich so schlimm ;) Der Filter liest 0 (=nicht verschlüsselt), 1(=verschlüsselt) und 2 (=kann er nicht drauf zugreifen, zB anderes OS dass ebenfalls verschlüsselt ist) aus.

Also prüfte ich mit <> auf 1 und dann solle er die txt schreiben ... er liest falsch aus .... wieso ??



Update:

Ich Blödi hab übersehen, dass ich mir die Abfrage auf das Laufwerk sowieso sparen kann. Ich hab das jetzt erstmal so gemacht:

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_EncryptableVolume WHERE DriveLetter = 'C:'",,48)
For Each objItem in colItems
pro1=objItem.ProtectionStatus 'Aktuellen Verschlüsseungsgrad auslesen
strLW1=objItem.DriveLetter


if pro1 <> pro then 'Prüfung aktueller Status gegen Verschluesselungswert 1

Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("\\mgmt\Verteiler\log\" &strComputerName&"_P1" &".txt", true) 'Dateiname besteht aus Computernamen, richtigen Pfad angeben!
MyFile.WriteLine ("Das Laufwerk " &strLW1 & " auf " &strComputername & " ist nicht verschluesselt.") 'schreibt Laufwerk und Maschinenname in Datei
MyFile.WriteLine ("Verschluesselungswert: " &pro1)
MyFile.Close
end if
Next


In der Theorie klappt das auch ! Ich hab nur heute leider kein Bitlocker verschlüsseltes Notebook hier um das zu testen ... aber ich glaub das dürfte es gewesen sein;)
Bitte warten ..
Ähnliche Inhalte
Debian
gelöst Bereitgestellter Speicher einer Boot-Partition zuweisen !? (5)

Frage von N4m3n7os3r zum Thema Debian ...

Festplatten, SSD, Raid
gelöst Frage wegen Partitionen ändern (5)

Frage von DeathNote zum Thema Festplatten, SSD, Raid ...

VB for Applications
gelöst VBScript und OR (5)

Frage von Invisan zum Thema VB for Applications ...

Windows 7
gelöst VBScript - HTML Probleme mit Schriftgröße (5)

Frage von MedicalAd zum Thema Windows 7 ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (15)

Frage von takvorian zum Thema Windows Server ...