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

gelöst Funktion in Hauptscript integrieren

Mitglied: RetroDude

RetroDude (Level 1) - Jetzt verbinden

04.06.2010 um 16:38 Uhr, 3439 Aufrufe, 2 Kommentare

Hallo. Ich habe zwecks Registrymutation einen Script gebastelt. Im Hauptscript wird überprüft, ob ein Flagkey existiert oder nicht. Falls dieser bereits existiert, macht er nix. Falls dieses Flag nicht existiert arbeitet er zwei separate Scripts ab, welche mit Hilfe einer Funktion gewährleisten, dass die gewünschten Keys inkl. Inhalt gelöscht werden. Anschliessend wird das Flag geschrieben. Nun zu meiner Frage. Was muss ich ändern um dies in ein und demselben Hauptscript zu tun? Meine Lösung funktioniert zwar, ist aber nicht wirklich elegant..
Bin für Anregungen dankbar!
Grüsse

' Hauptscript.vbs

Const HKEY_CURRENT_USER = &H80000001

strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & _
strComputer & "\root\default:StdRegProv")
Set WshShell = WScript.CreateObject("WScript.Shell")

strKeyPath = "SOFTWARE\ApplikationX\LaunchMethods"
strValueName = "Flag"
strValueName1 = "Dummykey"

objRegistry.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

If IsNull(strValue) Then

objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValueName1

WshShell.run "DEL_KEY1.VBS"
WshShell.run "DEL_KEY2.VBS"

Else

End If

' DEL_KEY1.vbs

Const HKEY_CURRENT_USER = &H80000001

Set wmiLocator = CreateObject("WbemScripting.SWbemLocator")

Set wshNetwork = CreateObject("WScript.Network")

Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default")
Set objRegistry = wmiNameSpace.Get("StdRegProv")


sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB1"

lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath)

Function DeleteRegEntry(sHive, sEnumPath)
lRC = objRegistry.DeleteKey(sHive, sEnumPath)

If (lRC <> 0) Then

On Error Resume Next

lRC = objRegistry.EnumKey(HKEY_CURRENT_USER, sEnumPath, sNames)

For Each sKeyName In sNames
If Err.Number <> 0 Then Exit For
lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName)
Next

On Error Goto 0

lRC = objRegistry.DeleteKey(sHive, sEnumPath)

End If

End Function

' DEL_KEY2.vbs

Const HKEY_CURRENT_USER = &H80000001

Set wmiLocator = CreateObject("WbemScripting.SWbemLocator")

Set wshNetwork = CreateObject("WScript.Network")

Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default")
Set objRegistry = wmiNameSpace.Get("StdRegProv")


sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB2"

lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath)

Function DeleteRegEntry(sHive, sEnumPath)
lRC = objRegistry.DeleteKey(sHive, sEnumPath)

If (lRC <> 0) Then

On Error Resume Next

lRC = objRegistry.EnumKey(HKEY_CURRENT_USER, sEnumPath, sNames)

For Each sKeyName In sNames
If Err.Number <> 0 Then Exit For
lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName)
Next

On Error Goto 0

lRC = objRegistry.DeleteKey(sHive, sEnumPath)

End If

End Function
Mitglied: bastla
04.06.2010 um 19:14 Uhr
Hallo RetroDude!

Sollte sich grundsätzlich etwa so machen lassen:
01.
' Hauptscript.vbs 
02.
 
03.
Const HKEY_CURRENT_USER = &H80000001 
04.
 
05.
strComputer = "." 
06.
Set objRegistry = GetObject("winmgmts:\\" & _ 
07.
strComputer & "\root\default:StdRegProv") 
08.
Set WshShell = WScript.CreateObject("WScript.Shell") 
09.
 
10.
strKeyPath = "SOFTWARE\ApplikationX\LaunchMethods" 
11.
strValueName = "Flag" 
12.
strValueName1 = "Dummykey" 
13.
 
14.
objRegistry.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue 
15.
 
16.
If IsNull(strValue) Then 
17.
    objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValueName1 
18.
    DEL_KEYS 
19.
End If 
20.
 
21.
'################# 
22.
Sub DEL_KEYS 
23.
 
24.
Set wmiLocator = CreateObject("WbemScripting.SWbemLocator") 
25.
Set wshNetwork = CreateObject("WScript.Network") 
26.
 
27.
Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default") 
28.
Set objRegistry = wmiNameSpace.Get("StdRegProv") 
29.
 
30.
sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB1" 
31.
lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath) 
32.
 
33.
sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB2" 
34.
lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath) 
35.
 
36.
End Sub 
37.
 
38.
'################# 
39.
Function DeleteRegEntry(sHive, sEnumPath) 
40.
lRC = objRegistry.DeleteKey(sHive, sEnumPath) 
41.
 
42.
If (lRC <> 0) Then 
43.
    On Error Resume Next 
44.
    lRC = objRegistry.EnumKey(HKEY_CURRENT_USER, sEnumPath, sNames) 
45.
 
46.
    For Each sKeyName In sNames 
47.
        If Err.Number <> 0 Then Exit For 
48.
        lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName) 
49.
    Next 
50.
 
51.
    On Error Goto 0 
52.
 
53.
    lRC = objRegistry.DeleteKey(sHive, sEnumPath) 
54.
 
55.
End If 
56.
 
57.
End Function 
58.
'#################
Eigentlich wäre die Verwendung des Unterprogrammes gar nicht nötig - Du könntest die Zeilen 24 - 34 einfach als Ersatz für den Aufruf in Zeile 18 einfügen ...

Grüße
bastla

P.S.: Falls Dir die von mir verwendete Formatierung für das Script auch besser gefällt: Quellcode, Code oder HTML Snippets ...
Bitte warten ..
Mitglied: RetroDude
08.06.2010 um 16:59 Uhr
Hallo Bastla

Danke! Funktioniert prima.

Gruss
Bitte warten ..
Ähnliche Inhalte
Windows Systemdateien
Zertifikat in Windows Setup integrieren
Frage von pelzfruchtWindows Systemdateien3 Kommentare

Abend, Ich muss während der Installation von Windows Server 2008 einen Festplattentreiber installieren der nicht signiert ist. Ich habe ...

CMS
PlugIn im Beirtag integrieren
Frage von fdh71gCMS1 Kommentar

Hallo zusammen. Steh grad fürchterlich auf dem Schlauch. Möchte ein PlugIn nutzen in Joomla. Ich habe es installiert und ...

Entwicklung

Powershell: Timer-Funktion und Progressbar-Funktion

gelöst Frage von SaschaRDEntwicklung8 Kommentare

Hallo zusammen, ich benötige bei 2 Funktionen in Powershell etwas Unterstützung: Fall-1: Ich habe eine Timer-Funktion die eine Anzahl(X) ...

Windows Server

Gruppenrichtlinie - Apps auf Startbildschirm integrieren

gelöst Frage von 117109Windows Server5 Kommentare

Hallo Leute, also folgende Ausgangssituation: Ich habe 2 Windows 2012 Server und bastel mit RDP herum. Einer ist der ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement12 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing10 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...