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 Registry Zeichenfolge je nach Bedingung ändern

Mitglied: spacyfreak

spacyfreak (Level 2) - Jetzt verbinden

10.02.2008, aktualisiert 13.02.2008, 6966 Aufrufe, 2 Kommentare

Ich will folgendes erreichen:

Ein (VBS?)-Script soll prüfen, ob in der Registry unter
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

eine Zeichenfolge existiert, die "GinaDLL" heisst.

Ferner soll der WERT dieser Zeichenfolge geprüft werden.
Ist der Wert "csgina.dll", soll der User eine Meldung erhalten, die lautet
"Zur Zeit startet der Cisco VPN Client vor ihrer Windows Anmeldung. Möchten Sie stattdessen dass der Juniper VPN Client vor der Anmeldung an Ihrem PC gestartet wird damit Sie sich nach Aufbau der VPN Verbindung an Ihrer Domäne anmelden können?"

Wählt der User "Ja" soll der Wert der Zeichenfolgle "GinaDLL" geändert werden in "dsGinaLoader.dll".
Wählt der User "Nein" soll der Wert so bleiben wie er ist.

Ist der Wert der Zeichenfolge dagegen "dsGinaLoader.dll" soll der User den Hinweis erhalten:
"Zur Zeit startet der Juniper VPN Client vor ihrer Windows Anmeldung. Möchten Sie stattdessen dass der Cisco VPN Client vor der Anmeldung an Ihrem PC gestartet wird damit Sie sich nach Aufbau der VPN Verbindung an Ihrer Domäne anmelden können?"

Der User sollte auch wählen können, ob er keinen von beiden VPN Clients vor dem winlogen starten will.
Wenn er sich dazu entscheidet, muss die Zeichenfolge "GinaDLL" gelöscht werden und ein Hinweis kommen dass der PC neu gestartet werden soll.

Wenn die Zeichenfolge "GinaDLL" garnicht existiert, soll das Script den User fragen:
"Möchten Sie den Juniper VPN Client vor der Anmeldung an Ihrem Windows PC starten damit Sie sich direkt in Ihrer Domäne anmelden können?"

Ich denke ein Programmer kloppt das Script in 10 Min zusammen. Ich bräuchte geschätzte 3 Monate dafür.
Mitglied: bastla
11.02.2008 um 22:21 Uhr
Hallo e-m-d-k-h!

Ich denke ein Programmer kloppt das Script in 10 Min zusammen. Ich bräuchte geschätzte 3 Monate dafür.
Na ja, da ich kein Programmierer bin, war's bei mir ein Mittelwert ...

Versuch es mal damit:
01.
Const RROOT = "HKLM" 
02.
Const RKEY = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 
03.
Const RVALUE = "GinaDLL" 
04.
Const JUNIPER = "dsGinaLoader.dll" 
05.
Const CISCO = "csgina.dll"  
06.
 
07.
RPath = RROOT & "\" & RKEY & "\" & RVALUE 
08.
Set WshShell = WScript.CreateObject("WScript.Shell") 
09.
 
10.
If RegistryValueExists(RROOT, RKEY, RVALUE) Then 'Reg-Wert vorhanden? 
11.
	Value = WshShell.RegRead(RPath) 
12.
	Select Case LCase(Value) 
13.
	Case LCase(CISCO) 
14.
		Choice = MsgBox("Zur Zeit startet der Cisco VPN Client vor ihrer Windows Anmeldung." & vbCrLF & vbCrLF & _ 
15.
16.
			"Möchten Sie stattdessen, dass der Juniper VPN Client vor der Anmeldung an Ihrem PC gestartet wird," & vbCrLF & _ 
17.
			"damit Sie sich nach Aufbau der VPN Verbindung an Ihrer Domäne anmelden können?" & vbCrLF & vbCrLF & _ 
18.
19.
			"Wählen Sie 'Ja' für Juniper, 'Abbrechen' für Cisco oder 'Nein' für das Entfernen des VPN Client", vbYesNoCancel + vbQuestion, "Juniper VPN Client starten?") 
20.
		If Choice = vbYes Then 
21.
			WshShell.RegWrite RPath, JUNIPER, "REG_SZ" 
22.
		ElseIf Choice = vbNo Then 
23.
			WshShell.RegDelete RPath 
24.
			MsgBox "Sie müssen Ihren Rechner neu starten!", vbInformation, "Neustart erforderlich ..." 
25.
		End If 
26.
	Case LCase(JUNIPER) 
27.
		Choice = MsgBox("Zur Zeit startet der Juniper VPN Client vor ihrer Windows Anmeldung." & vbCrLF & vbCrLF & _ 
28.
29.
			"Möchten Sie stattdessen dass der Cisco VPN Client vor der Anmeldung an Ihrem PC gestartet wird," & vbCrLF & _ 
30.
			"damit Sie sich nach Aufbau der VPN Verbindung an Ihrer Domäne anmelden können?" & vbCrLF & vbCrLF & _ 
31.
32.
			"Wählen Sie 'Ja' für Cisco, 'Abbrechen' für Juniper oder 'Nein' für das Entfernen des VPN Client", vbYesNoCancel + vbQuestion, "Cisco VPN Client starten?") 
33.
		If Choice = vbYes Then 
34.
			WshShell.RegWrite RPath, CISCO, "REG_SZ" 
35.
		ElseIf Choice = vbNo Then 
36.
			WshShell.RegDelete RPath 
37.
			MsgBox "Sie müssen Ihren Rechner neu starten!", vbInformation, "Neustart erforderlich ..."	 
38.
		End If 
39.
	Case Else 'sollte es nicht geben 
40.
		MsgBox "Unbekannter Eintrag '" & Value & "' in der Registry." & vbCrLF & vbCrLF & _ 
41.
			"Bei riesigen Nebenwirkungen essen Sie eine Entschlackungsbeilage und schlagen Sie Ihren Arzt oder Administrator!", vbCritical, "Das darf doch wohl nicht wahr sein!" 
42.
		' WshShell.RegDelete RPath 'Vielleicht besser löschen? Falls ja, Kommentarzeichen am Anfang der Zeile entfernen. 
43.
	End Select 
44.
Else 
45.
	Choice = MsgBox("Möchten Sie den Juniper VPN Client vor der Anmeldung an Ihrem Windows PC starten," & vbCrLF & "damit Sie sich direkt in Ihrer Domäne anmelden können?", vbYesNo + vbQuestion, "Juniper VPN Client starten?") 
46.
	If Choice = vbYes Then 
47.
		WshShell.RegWrite RPath, JUNIPER, "REG_SZ" 
48.
	End If 
49.
End If 
50.
 
51.
Function RegistryValueExists(LNGHKEY, strKey, strValue) 
52.
'auf Basis: http://www.visualbasicscript.com/m_35278/tm.htm 
53.
Const HKLM = &H80000002 
54.
Const HKCR = &H80000000 
55.
Const HKCU = &H80000001 
56.
Const HKUSERS = &H80000003 
57.
RegistryValueExists = False 
58.
If LNGHKEY = "HKLM" Then hkRoot = HKLM 
59.
If LNGHKEY = "HKCU" Then hkRoot = HKCU 
60.
If LNGHKEY = "HKCR" Then hkRoot = HKCR 
61.
If LNGHKEY = "HKUSERS" Then hkRoot = HKUSERS 
62.
Set reg = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") 
63.
reg.EnumValues hkRoot, strKey, aValueNames, aValueTypes 
64.
If Not IsNull(aValueNames) Then 
65.
	For Each s In aValueNames 
66.
		If LCase(s)=LCase(strValue) Then 
67.
			RegistryValueExists = True 
68.
			Exit Function 
69.
		End If 
70.
	Next 
71.
End If 
72.
End Function
Damit die User für die verschiedenen Optionen (Client beibehalten, ändern, entfernen) nur eine einzige Schaltfläche betätigen müssen, es andererseits in VBS in dieser Hinsicht nur beschränkte Möglichkeiten gibt, wirst Du hinsichtlich der Texte und Optionen vielleicht noch nachbessern wollen (zB immer "Ja" für "Juniper"), aber das Gerüst sollte so passen.

Die Alternative wäre ansonsten, zunächst abzufragen, ob ein bestehender Client entfernt werden soll und dann, in einer zweiten MessageBox, ob der Client gewechselt werden soll - auch nicht wirklich elegant, wie ich finde.

Haben übrigens die User das Recht, in HKLM zu schreiben?

Grüße
bastla
Bitte warten ..
Mitglied: spacyfreak
13.02.2008 um 22:25 Uhr
Danke Bastla, Du bist der HAMMER!
Schönen Abend noch.
EmdKh..
Bitte warten ..
Ähnliche Inhalte
Windows 10

Zeichenfolge in .reg Datei schreiben (Registry)

gelöst Frage von MedicalAdWindows 104 Kommentare

Guten Morgen, ich habe folgendes Problem, ich muss in einen bestimmten Pfad eine Zeichenfolge schreiben. Nur bekomme ich es ...

Windows Server

Terminalserver user können Registry ändern. Wie kritisch ist das?

gelöst Frage von LaefissWindows Server8 Kommentare

Guten Tag zusammen, nach einer ausführlichen Suche in den handelsüblichen Suchmaschinen fehlt mir leider immer noch eine Antwort. (u.a. ...

Windows Userverwaltung

Registry Eintrag per GPO ändern

gelöst Frage von ArberBerWindows Userverwaltung10 Kommentare

Hallo, Um im Thema GPOs fit zu werden, hab ich angefangen mich ein wenig damit zu befassen. Ich würde ...

Visual Studio

VBScript Zeichenfolge aus String entfernen

gelöst Frage von Leogal0010Visual Studio1 Kommentar

Hallo, Community! Ich habe da ein Problem: Ich schreibe einen kleinen "LAN-Chat" mit VBScript/VBS. D.h. auf einem Laufwerk, auf ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 1 TagHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 2 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 3 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke25 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Windows Server
WSUS nach Upgrade - kein Start mehr
gelöst Frage von Ghost108Windows Server9 Kommentare

Hallo zusammen, habe einen Windows Server 2012 welcher als WSUS dienst. Jetzt wurde ein Upgrade auf Server 2016 durchgeführt ...

Windows Server
Freigaben per Default nur für Domänen-Benutzer
Frage von tierwoWindows Server8 Kommentare

Hallo gibt es eine Möglichkeit, einen Server 2016 so zu konfigurieren (z.B. per GPO), dass Freigaben die erstellt werden ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft8 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...