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

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, 4567 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
Batch & Shell
gelöst Powershell - WMI Return Codes unterdrücken, WIE? (3)

Frage von instinctless zum Thema Batch & Shell ...

Router & Routing
Mikrotik hex firewall regeln (2)

Frage von ecki33 zum Thema Router & Routing ...

Netzwerkprotokolle
Ethernet HEX Dump (6)

Frage von WhoIam zum Thema Netzwerkprotokolle ...

Windows Server
gelöst WMI-Filter Syntax (10)

Frage von DasWombat1993 zum Thema Windows Server ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (21)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (10)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Netzwerkmanagement
Suche eine Software für Cloudverwaltung (6)

Frage von tsunami zum Thema Netzwerkmanagement ...

Google Android
Musik Wiedergabe am PC mit Smartphone über Bluetooth steuern (5)

Frage von justlukas zum Thema Google Android ...