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, 4547 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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