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

VBS Skript für Logon

Mitglied: free2k

free2k (Level 1) - Jetzt verbinden

23.11.2008, aktualisiert 25.11.2008, 5380 Aufrufe, 5 Kommentare

Ersteinmal wollte ich halle in diesem Board sagen

Jetzt zu meinem Problem. Ich versuche zur Zeit unsere Logon Skript von *.bat dateien zu einem VBS Skript zu migrieren. Und bin leider dabei auf ein Problem bestoßen.

Die Abfrage mit der ismember klappt leider nicht so.

Und zwar ist das Problem das in der Sicherheitsgruppe "GP_CEPT005" sind keine User sind sondern dort ist wiederum eine Sicherheitsgruppe. Und in der Sind dann die User der Abteilung.

Das kann ich auch leider nicht mehr trennen oder anderes gestalten.

Wenn ich in die Gruppe GP_CEPT005 einen Benutzer reinschreiben klappt das Skript. Gibt es dort einen Trick wie ich das auch noch hinbekomme? Da die ifmember.exe die ich bei der batch datei benutzt hab damit keine Probleme hatte.

Für Hinweise wäre ich dankbar Wer das ganze besser oder schlauer lösen kann soll mir bitte Tips geben.

Anbei der Abschnitt des VBS Skripts.

Grüße
Marcel


_____
Function IsMember(strGroup)
Dim objMember, objGroup
On Error Resume Next
Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")
If Err.Number = 0 Then
IsMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUserName)
End If
On Error Goto 0
End Function


If IsMember("GP_CEPT005") Then
WSHNetwork.AddWindowsPrinterConnection "\\clprint01\cept005"
WSHNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\cept005"
end if
____
Mitglied: bastla
23.11.2008 um 11:27 Uhr
Hallo free2k!

Basierend auf diesem "Scripting Guy"-Artikel könnte das so gehen:
01.
Function IsMember(strGroup) 
02.
On Error Resume Next 
03.
InGroup = False 
04.
Set objUser=GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName) 
05.
Set colGroups = objUser.Groups 
06.
For Each objGroup in colGroups 
07.
    If objGroup.CN = strGroup Then 
08.
        InGroup = True 
09.
        Exit For 
10.
    Else 
11.
        GetNested objGroup, strGroup, InGroup 
12.
    End If 
13.
Next 
14.
IsMember = InGroup 
15.
End Function 
16.
 
17.
Sub GetNested(objGroup, strGroup, InGroup) 
18.
On Error Resume Next 
19.
colMembers = objGroup.GetEx("memberOf") 
20.
If Err.Number = 0 Then 
21.
    For Each strMember in colMembers 
22.
        strPath = "LDAP://" & strMember 
23.
        Set objNestedGroup = GetObject(strPath) 
24.
        If objNestedGroup.CN = strGroup Then 
25.
            InGroup = True 
26.
            Exit For		     
27.
        Else 
28.
            GetNested objNestedGroup, strGroup, InGroup 
29.
        End If 
30.
    Next 
31.
End If 
32.
End Sub
Noch als Anmerkung: Das Objekt für den (aktuellen) Benutzer ("objUser") wird innerhalb der Funktion erzeugt - besser wäre es, dieses beim Aufruf als Argument zu übergeben.

Grüße
bastla
Bitte warten ..
Mitglied: free2k
23.11.2008 um 16:07 Uhr
hm

Was meinst du damit dieses beim Aufruf als Argument zu übergeben ?

Bin leider des VBS nicht so mächtig... bin schonmal froh das ich soweit gekommen bin
Imo hackts aber irgendwie noch muss jetzt mal weitersuchen was bei mir nicht richtig stimmt.

Aber erstmal danke dafür.

Grüße
Marcel
Bitte warten ..
Mitglied: bastla
23.11.2008 um 18:46 Uhr
Hallo free2k!

Was meinst du damit dieses beim Aufruf als Argument zu übergeben ?
Die Funktion sollte die Gruppenzugehörigkeit eines beliebigen Users prüfen können - daher sollte der User nicht in der Funktion selbst festgelegt, sondern gemeinsam mit der Gruppe an die Funktion "übergeben" werden, etwa:
01.
If IsMember(strUser, "GP_CEPT005") Then
Das ist zwar für die Wiederverwendbarkeit der "Function" vorteilhaft, für die konkrete Anwendung hier aber nicht entscheidend ...
Wenn es Probleme gibt, solltest Du mit eingestreuten "WScript.Echo"-Zeilen und einem Test von der Kommandozeile mit
cscript //nologo Scriptdatei.vbs
die ermittelten Werte anzeigen lassen.

Du könntest etwa zwischen Zeile 6 und 7 einfügen:
01.
WScript.Echo "Direkt: ", objGroup.CN
und als Zeile 23b (= nach "Set objNestedGroup = GetObject(strPath)"):
01.
WScript.Echo "Indirekt: ", objNestedGroup.CN
So werden die gefundenen Gruppen mit dem Namen, wie sie dann auch verglichen werden, angezeigt.

Zu beachten wäre noch, dass in der derzeitigen Fassung die Groß-/Kleinschreibung berücksichtigt werden muss, also etwa "gp_CEPT005" nicht gefunden würde.

Grüße
bastla
Bitte warten ..
Mitglied: free2k
24.11.2008 um 22:39 Uhr
okay... fehler gefunden.... den mit dem ich getestet war natürlich in den falschen gruppen

Wie auch immer... jetzt haben sich neue Probleme gefunden

Wie kann ich den Internet Explorer starten und da eine Startzeit übergeben. Würde diese gerne aber so starten das sie minimale Leistung benötigt...evtl gibt es da ja einen Command.

Und ich hätte gerne noch gewusste ich wie Verzeichnisse übergeben kann weil hab hier ein Dos Skript

copy "\\Zeiterfassung - Aushilfen\%username%_zeiterfassung.xls.lnk" . /Y
cd %userprofile%\Desktop
%username%_zeiterfassung.xls.lnk

Also ich müsste wissen wie die Varibale für Desktop des Users und wie man einen Shortcut dafür dann macht....

Aber solangsam steige ich in vbs durch... dafür das ich bis vor 2 Tagen noch nie mit sowas zu tun habe gehts dann solangsam ;)


Und ich habe eine test.help datei die immer in Alluser/Desktop abgelegt werden soll..... gibt es einen Befehlt was überprüft ob die Datei in der Quelle neuer ist als die auf dem Desktop? wenn ja soll diese ersetzt werden.

Weil ich will das Skript soweit Optimieren wie es nur geht damit keine unnötige Wartezeit damit entsteht... womit wir imo unserer Probleme haben wegen der 10000x ifmember.exe abfrage unter dos


Grüße
Marcel
Bitte warten ..
Mitglied: bastla
25.11.2008 um 00:17 Uhr
Hallo free2k!

Auch wenn's noch unter den (sehr allgemein gehaltenen) Threadtitel passen würde, wäre das "Starten des Internet Explorers mit einer zu übergebenden Startzeit" ein Fall für einen neuen Beitrag - dort könntest Du dann auch etwas ausführlicher erklären, was eigentlich damit gemeint ist ...
Also ich müsste wissen wie die Varibale für Desktop des Users und wie man einen Shortcut dafür dann macht....
Den Pfad zum Desktop erhältst Du so (Zeile 1 brauchst Du nur, wenn das "Shell"-Objekt nicht schon an anderer Stelle erzeugt wurde):
01.
Set WshShell = WScript.CreateObject("WScript.Shell") 
02.
strDesktop = WshShell.SpecialFolders("Desktop")
Das Erstellen eines Shortcuts (in Deinem Batch wird ein solcher kopiert und nicht erstellt) wurde hier im Forum schon öfter abgehandelt.
gibt es einen Befehlt was überprüft ob die Datei in der Quelle neuer ist als die auf dem Desktop?
Für den Pfad zum "AllUsersDesktop" gibt es ebenfalls einen gleichnamigen "SpecialFolder" (siehe oben).

Um das Änderungsdatum einer Datei auszulesen, benötigst Du zunächst ein "FileSystemObject" (auch hier gilt: wenn ein solches bereits vorher erzeugt wurde, einfach dieses verwenden), dann ein "File"-Objekt und schließlich dessen "DateLastModified"-Eigenschaft - diese kannst Du dann mit dem auf dem selben Weg ermittelten "DateLastModified" der zu kopierenden Datei vergleichen.
01.
Set WshShell = WScript.CreateObject("WScript.Shell") 
02.
strAllUsersDesktop = WshShell.SpecialFolders("AllUsersDesktop") 
03.
Set fso = CreateObject("Scripting.FileSystemObject") 
04.
Set f = fso.GetFile(strAllUsersDesktop & "\test.help") 
05.
dtHelpFile = f.DateLastModified 
06.
WScript.Echo "Änderungsdatum der vorhandenen ""test.help"": " & dtHelpFile
(Die letzte Zeile dient natürlich nur als Demo / zum Testen.)

Dass Du für das Schreiben unter "All Users" Admin- oder Systemrechte benötigst, setze ich als bekannt voraus (insofern wäre dieser Teil des Scripts eher als "StartUp"-Script und nicht als "Logon"-Script zu verwenden).

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Exchange Server

GPO - Logon-Skript wird nicht ausgeführt

Frage von Der-PhilExchange Server4 Kommentare

Hallo! Seit heute werden meine Logon-Skripte, die ich über GPOs festlege nicht mehr gestartet. AD-Domaincontroller laufen unter Windows 2012 ...

Microsoft

GPO mit Logon Skript Probleme

gelöst Frage von Thor01Microsoft9 Kommentare

Hallo zusammen, ich habe eine GPO mit einem Logon Skript erstellt welches mit ganz doof per Net Use ein ...

KiXtart

Aufgemotztes Logon Skript Vorschläge

Frage von AvaatarKiXtart2 Kommentare

Hallo zusammen, ich möchte unser in die Jahre gekommenes Logon Skript ablösen. Das Skript macht nichts besonders schweres, es ...

Windows Netzwerk

VBS Logon-Script für die Nutzer einrichten

Frage von rababar2014Windows Netzwerk13 Kommentare

Hallo Forum, ich habe mir aus einer Vorlage hier im Forum ein VSB-Script gebastelt, um meine Netzlauferke bei Anmeldung ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 8 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 12 StundenCPU, RAM, Mainboards5 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 1 TagRouter & Routing7 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...