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

Wie kann ich in ein WMI Script hex Zahlenarray definieren?

Frage Entwicklung VB for Applications

Mitglied: Flieg

Flieg (Level 1) - Jetzt verbinden

13.06.2007, aktualisiert 14.06.2007, 4578 Aufrufe, 10 Kommentare

Hallo


Ich habe folgendes Problem. Ich bin gerade dabei ein WMI Script zu schreiben was verschieden Schlüssel und Werte in die Registry schreibt. Das große Problem was ich dabei habe, ist das mehrere hex Werte eingetragen werden müssen. Ich habe die suche und google schon bemüht finde aber nichts passendes. Kann mir jemand helfen und sagen wie ich das am besten realisiere. Ist wichtig muss bei uns im AD verteilt werden der Chef hängt mir schon im Nacken.

Ein Auszug aus dem Script damit man es sich vielleicht besser vorstellen kann.
01.
.... 
02.
Set wmireg = GetObject("winmgmts:root\default:StdRegProv") 
03.
 
04.
Const HKLM = &H80000002 
05.
 
06.
key = "SOFTWARE\ORL\WinVNC3" 
07.
result = wmireg.CreateKey(HKLM, key) 
08.
 
09.
result = wmireg.SetDWORDValue(HKLM, key, "MSLogonRequired", 00000001)  
10.
result = wmireg.SetDWORDValue(HKLM, key, "NewMSLogon", 00000001) 
11.
 
12.
binear = Array(02,00,2c,00,01,00,00,00,00,00,24,00,03,00,00,00,01,05,00,00,00,00,00,05,15,00,00,00,79,e3,fc,53,16,c0,07,e5,3b,2b,25,5e,03,00) 
13.
 
14.
result = wmireg.SetBinaryValue(HKLM, key,"ACL", binear)
In dem Array sieht man das es jede Menge Hex Zahlen sin die so WMI nicht akzeptiert


MfG
Andy
Mitglied: AndreasHoster
13.06.2007 um 15:15 Uhr
Natürlich nicht, es sind ja auch keine Hex Zahlen.
Wenn Du Dein Skript genau anschaust, siehst Du wie eine Hex Zahl in VBS auszusehen hat:
Const HKLM = &H80000002
Wenn Du jetzt den Array entsprechend änderst:
binear = Array(&H02,&H00,&H2c,&H00,... (Also bei den 00 und 02 kann man &H weglassen)
dann gehts auch.
Bitte warten ..
Mitglied: Flieg
13.06.2007 um 15:31 Uhr
Ich weis worauf du hinaus willst. Aber gibt es nicht eine möglichkeit das gesamte Array als Hex Zahlen zu definieren. Denn das ist nicht der einzige Schlüssel und so schreibe ich mich dumm wenn ich vor jede Zahl &H schreibe.
Bitte warten ..
Mitglied: AndreasHoster
13.06.2007 um 16:39 Uhr
Man könnte auch sowas machen, nur sind 2 " genausoviel zu tippen wie &H
ar1 = Array("00","10","ff")
redim binaer(UBound(ar1))
For i = LBound(ar1) to UBound(ar1)
binaer2(i)=CInt("&H" & ar1(i))
Next

Ansonsten:
Tippen lernen, dann dauerts nicht solange
Bitte warten ..
Mitglied: bastla
13.06.2007 um 18:36 Uhr
... ein wenig an den Anführungszeichen könnte man schon noch sparen:
01.
ar1 = "00,10,ff" 
02.
binaer = Split(ar1,",") 
03.
ReDim binaer2(UBound(binaer)) 
04.
For i = LBound(binaer) To UBound(binaer) 
05.
    binaer2(i) = CInt("&H" & binaer(i)) 
06.
Next
Grüße
bastla
Bitte warten ..
Mitglied: Flieg
13.06.2007 um 18:55 Uhr
@bastla

sieht gut aus was du da geschrieben hast.Es wäre super wenn du mir genau erklären könntest was in den einzelnen Schritten bei dein Script passiert. Da ich noch voll in den Kinderschuhen bei Scripten stecke und das im einzelnen Nachvollziehen möchte. Ich verstehe es leider nur teilweise.


MfG

Andy
Bitte warten ..
Mitglied: bastla
13.06.2007 um 19:23 Uhr
Hallo Flieg!

Ist nur eine Abwandlung von AndreasHoster's Vorschlag:
Zunächst die ganzen Hex-Zahlen mit einem beliebigen Trennzeichen (hier eben ",") in einen normalen String packen, diesen mittels "Split"-Funktion in ein Array aufsplitten lassen und aus dem (Text-)Array "binaer" über das Voranstellen von "&H" und die nachfolgende Konvertierung mit "CInt()" die jeweiligen Zahlenwerte in ein weiteres Array "binaer2" (dessen Größe über das "ReDim"-Statement entsprechend der Größe des "binaer"-Arrays festgelegt wurde) schreiben.

Grüße
bastla
Bitte warten ..
Mitglied: Flieg
14.06.2007 um 08:41 Uhr
Guten morgen

du gute Nachricht ist das Script meckert nicht mehr rum, die schlechte ist das er den Schlüssel nicht einträgt. Kann mir jemand weiterhelfen bevor ich verzweifle?
Bitte warten ..
Mitglied: Flieg
14.06.2007 um 09:25 Uhr
So nach suchen mit Hilfe habe ich den Fehler gefunden. Es war ein Tippfehler ich hatte binear geschrieben und ihr habt es in euren Script richtig mit ae geschrieben. Natürlich hatte er dann die Variabel nicht gefunden. Kleiner fehler große Ursache. Hier das ganze Script wie es jetzt funktioniert.

Set wmireg = GetObject("winmgmts:root\default:StdRegProv")

Const HKLM = &H80000002

key = "SOFTWARE\ORL\WinVNC3"
result = wmireg.CreateKey(HKLM, key)

result = wmireg.SetDWORDValue(HKLM, key, "MSLogonRequired", 00000001)
result = wmireg.SetDWORDValue(HKLM, key, "NewMSLogon", 00000001)


ar1 = "02,00,2c,00,01,00,00,00,00,00,00,00,00,00,00,05,15,00,00,00,79,e3,fc,53,16,c0,ea,32,07,e5,3b,2b,25,5e,03,00"
binaer = Split(ar1,",")
ReDim binaer2(UBound(binaer))
For i = LBound(binaer) To UBound(binaer)
binaer2(i) = CInt("&h" & binaer(i))


next
result = wmireg.SetBinaryValue(HKLM, key,"ACL", binaer2)



Ich danke euch für euere Hilfe
Bitte warten ..
Mitglied: Biber
14.06.2007 um 10:10 Uhr
Moin Flieg,

ich habe mir folgenden Kommentar gestern schon verkniffen, hole es aber heute nach...

Meine Empfehlung zumindest ist (zumindest bei Skritsprachen, die unterschiedliche Datentypen kennen, bei Batch ist es nicht nötig):

  • benenne Variablennamen entweder deutsch oder denglish
  • orientiere Dich am Besten an Konventionen wie der Ungarischen Notation
  • und bei VB-Varianten erzwingt ein "Option Explicit" eine gewisse Disziplin

Dein Schnipsel unter Berücksichtigung dieser drei Pünktchen würde in etwa so aussehen können:

01.
' optional: Option Explicit 
02.
' Konverntionen z.B. Präfix "o" für Objekte, "str" für Strings,  
03.
' "b" für boolesche Variablen... 
04.
Set owmireg = GetObject("winmgmts:root\default:StdRegProv") 
05.
 
06.
Const HKLM = &H80000002 
07.
 
08.
strKey = "SOFTWARE\ORL\WinVNC3" 
09.
bResult = owmireg.CreateKey(HKLM, key) 
10.
 
11.
bresult = owmireg.SetDWORDValue(HKLM, strKey, "MSLogonRequired", 00000001)  
12.
bresult = owmireg.SetDWORDValue(HKLM, strKey, "NewMSLogon", 00000001) 
13.
 
14.
aOfStr = "02,00,2c,00,01,00,00,00,00,00,00,00,00,00,00,05,15,00,00,00,79,e3,fc,53,16,c0,ea,32,07,e5,3b,2b,25,5e,03,00" 
15.
aOfBinary = Split(ar1,",") 
16.
ReDim aOfBinary2(UBound(aOfBinary)) 
17.
For i = LBound(binaer) To UBound(aOfBinary) 
18.
aOfBinary2(i) = CInt("&h" & aOfBinary(i)) 
19.
 
20.
next 
21.
bResult = owmireg.SetBinaryValue(HKLM, strKey,"ACL", aOfBinary2)
[ungetestete Skizze]

Grüße
Biber
Bitte warten ..
Mitglied: bastla
14.06.2007 um 12:17 Uhr
... ebenso ungetestet, aber etwas an die Variableninhalte angepasst:
01.
' optional: Option Explicit 
02.
' Konverntionen z.B. Präfix "o" für Objekte, "str" für Strings,  
03.
' "int" für Integer, "a" für Arrays ... 
04.
 
05.
Set oWmiReg = GetObject("winmgmts:root\default:StdRegProv") 
06.
 
07.
Const HKLM = &H80000002 
08.
 
09.
strKey = "SOFTWARE\ORL\WinVNC3" 
10.
intResult = oWmiReg.CreateKey(HKLM, strKey) 
11.
 
12.
intResult = oWmiReg.SetDWORDValue(HKLM, strKey, "MSLogonRequired", 00000001)  
13.
intResult = oWmiReg.SetDWORDValue(HKLM, strKey, "NewMSLogon", 00000001) 
14.
 
15.
strHexInput = "02,00,2c,00,01,00,00,00,00,00,00,00,00,00,00,05,15,00,00,00,79,e3,fc,53,16,c0,ea,32,07,e5,3b,2b,25,5e,03,00" 
16.
aOfStr = Split(strHexInput,",") 
17.
ReDim aOfBinary(UBound(aOfStr)) 
18.
For i = LBound(aOfStr) To UBound(aOfStr) 
19.
    aOfBinary(i) = CInt("&H" & aOfStr(i)) 
20.
Next 
21.
 
22.
intResult = oWmiReg.SetBinaryValue(HKLM, strKey, "ACL", aOfBinary)
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Script um Drucker als Standard zu definieren
gelöst Frage von Rabauke84VB for Applications6 Kommentare

Hallo zusammen, wir haben VMware View im Einsatz mit ZeroClients (OS Windows 7 Prof). Die User weisen sich daher ...

Netzwerkmanagement
WakeOnLAN für die Netzwerkkarte remote über ein Powershell- oder WMI-Script aktivieren
Frage von GlintofGoldNetzwerkmanagement11 Kommentare

Hallo, ich muss in einem räumlich weit auseinanderliegenden Netzwerk für mehrere Rechner WakeOnLAN aktivieren. Das ist so ziemlich das ...

IDE & Editoren
Hex Editor, Cluster, Blöcke
Frage von voessliIDE & Editoren6 Kommentare

Hallo, welcher freie Editor zeigt die Block-Addressen einer Datei an und den gesamten Inhalt des nicht genutzten Blockinhalts? Zusätzlich ...

Netzwerkprotokolle
Ethernet HEX Dump
Frage von WhoIamNetzwerkprotokolle6 Kommentare

Hallo, wie kann man solche HEX-DUMPS umwandeln, bitte Schritt für Schritt schecke da gar nichts. 00 00 00 00 ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 5 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 6 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1010 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell22 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen17 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...