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, 2391 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst C-Partition vergrößern, bei vorhandenem D? (7)

Frage von 1410640014 zum Thema Windows Server ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Windows 10
gelöst Partition vor der Systempartition löschen - Windows10 (4)

Frage von Selassi zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...