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

Skript zum setzen von mehr als 8 LoginWorkstations

Frage Entwicklung VB for Applications

Mitglied: hawaiixxx

hawaiixxx (Level 1) - Jetzt verbinden

31.01.2008, aktualisiert 23:38 Uhr, 3404 Aufrufe, 1 Kommentar

Server 2000: Mit dem Befehl "NET USER ... /WORKSTATIONS:..." kann man maximal 8 Workstation setzen, auf denen sich ein Benutzer anmelden kann. Mit diesem VBS-Skript sind es beliebig viele!

01.
set args=WScript.Arguments 
02.
dim usr 
03.
dim Benutzer 
04.
if args.Count=1 then 
05.
	Benutzer=args(0) 
06.
	Set usr = GetObject("WinNT://[Domain-Name]/"&Benutzer&",user") 
07.
	usr.Put "LoginWorkstations", "pc01,pc02,pc03,pc04,pc05,pc06,pc07,pc08,pc09,pc10" 
08.
	usr.SetInfo 
09.
end if 
10.
'Msgbox "OK:"&usr.PasswordExpired 
11.
'if args.Count=1 then Msgbox "OK:"&args(0) 
12.
'if args.Count>1 then Msgbox "Zu viele Parameter!"
Mitglied: bastla
31.01.2008 um 23:37 Uhr
Hallo hawaiixxx!

Etwas flexibler wäre es so:
01.
'SetLoginWS.vbs 
02.
 
03.
'Const strDomain = "domain.local" 
04.
 
05.
Const U = "U" 
06.
Const C = "C" 
07.
Const UC = "UC" 
08.
 
09.
Const ForReading = 1 
10.
 
11.
If strDomain = "" Then 'Konstante nicht gesetzt, daher Domäne ermitteln 
12.
	Set objRootDSE = GetObject("LDAP://RootDSE") 
13.
	strDNSDomain = objRootDSE.Get("DefaultNamingContext") 
14.
	strDomain = Mid(Replace(strDNSDomain, ",DC=", "."), 4) 
15.
End If 
16.
 
17.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
18.
 
19.
Set argsNamed = WScript.Arguments.Named 
20.
Set argsUnnamed = WScript.Arguments.Unnamed 
21.
 
22.
If argsNamed.Exists(UC) Then 'Variante Users & Clients in Liste 
23.
	UCL = argsNamed.Item(UC) 
24.
	If objFSO.FileExists(UCL) Then 'Listendatei vorhanden 
25.
		arrUsersClients = Split(objFSO.OpenTextFile(UCL, ForReading).ReadAll, vbCrLF) 
26.
		For Each strUserClient In arrUsersClients  
27.
			arrUC = Split(strUserClient, ";") 'jede Zeile enthält "User;Clientliste" - daher aufteilen ... 
28.
			SetWS arrUC(0), arrUC(1) ' ... und eintragen 
29.
		Next 
30.
	Else 'Listendatei nicht vorhanden 
31.
		WScript.Echo Chr(34) & UL & Chr(34) & " konnte nicht gefunden werden." 
32.
		WScript.Quit(2) 
33.
	End If 
34.
Else 'getrennte Angabe von Users und Clients 
35.
	intArgPosC = 0 'für "User als Parameter angegeben" 
36.
	If argsNamed.Exists(U) Then 'Datei mit Userliste angegeben 
37.
		UL = argsNamed.Item(U) 
38.
		If objFSO.FileExists(UL) Then 
39.
			arrUsers = Split(objFSO.OpenTextFile(UL, ForReading).ReadAll, vbCrLF) 
40.
		Else 
41.
			WScript.Echo Chr(34) & UL & Chr(34) & " konnte nicht gefunden werden." 
42.
			WScript.Quit(2) 
43.
		End If 
44.
	Else 
45.
		If argsUnnamed.Count > 0 Then 'User(liste) als Argument übergeben 
46.
			arrUsers = Split(argsUnnamed(0), ",") 
47.
			intArgPosC = 1 
48.
		Else 
49.
			Usage 
50.
			WScript.Quit(1) 
51.
		End If 
52.
	End If 
53.
 
54.
	If argsNamed.Exists(C) Then 'Datei mit Clientliste angegeben 
55.
		CL = argsNamed.Item(C) 
56.
		If CL <> "" Then 
57.
			If objFSO.FileExists(CL) Then 
58.
				arrClients = Split(objFSO.OpenTextFile(CL, ForReading).ReadAll, vbCrLF) 
59.
				strClients = Join(arrClients, ",") 
60.
			Else 
61.
				WScript.Echo Chr(34) & CL & Chr(34) & " konnte nicht gefunden werden." 
62.
				WScript.Quit(2) 
63.
			End If 
64.
		End If 
65.
	Else 
66.
		If argsUnnamed.Count > intArgPosC Then 'Clientliste als Argument angegeben; Index abhängig von Art der Userangabe 
67.
			strClients = argsUnnamed(intArgPosC) 
68.
		Else 
69.
			Usage 
70.
			WScript.Quit(1) 
71.
		End If 
72.
	End If 
73.
 
74.
	For Each strUser in arrUsers 'für jeden einzelnen User die Clientliste eintragen 
75.
		SetWS strUSer, strClients 
76.
	Next 
77.
End If 
78.
 
79.
Sub SetWS(strU, strC) 
80.
On Error Resume Next 'Errorhandling einschalten 
81.
Set objUsr = GetObject("WinNT://" & strDomain & "/" & strU & ",user") 
82.
If Err.Number = 0 Then 
83.
	WScript.Echo objUsr.Name & ":" &vbTab & strC 
84.
	objUsr.Put "LoginWorkstations", strC 
85.
	objUsr.SetInfo 
86.
Else 
87.
	WScript.Echo strU & ":" & vbTab & "Workstationliste nicht eingetragen!" 
88.
End If 
89.
On Error Goto 0 'Errorhandling wieder ausschalten 
90.
End Sub 
91.
 
92.
Sub Usage 
93.
WScript.Echo "Usage: " & WScript.ScriptFullName & " /UC:UserAndClientListFile | {{User[,User] | /" & U & ":UserListFile} {Client[,Client] | /" & C & ":ClientListFile}}" 
94.
End Sub
Durch die Verwendung benannter Argumente kannst Du sowohl für die zu bearbeitenden Benutzer und -innen, als auch für die einzutragenden Workstations entweder eine (durch Kommata getrennte) Liste oder eine Datei (mit einem Eintrag je Zeile) übergeben. Daraus ergeben sich exemplarisch folgende Einsatzmöglichkeiten:
01.
cscript //nologo C:\Scripts\SetLoginWS.vbs Benutzerin pc01,pc02,pc03,pc04,pc05,pc06,pc07,pc08,pc09,pc10 
02.
cscript //nologo C:\Scripts\SetLoginWS.vbs Benutzer1,Benutzerin2 pc01 
03.
cscript //nologo C:\Scripts\SetLoginWS.vbs /U:D:\BenutzerInnen.txt pc01,pc02,pc03,pc04,pc05,pc06,pc07,pc08,pc09,pc10 
04.
cscript //nologo C:\Scripts\SetLoginWS.vbs Benutzer /C:D:\Workstations.txt 
05.
cscript //nologo C:\Scripts\SetLoginWS.vbs Benutzerin1,Benutzer2,Benutzerin3 /C:D:\Workstations.txt 
06.
cscript //nologo C:\Scripts\SetLoginWS.vbs /U:D:\BenutzerInnen.txt /C:D:\Workstations.txt 
07.
cscript //nologo C:\Scripts\SetLoginWS.vbs Benutzerin1,Benutzerin2 ""
Eine Workstationangabe "" bedeutet, dass eine Anmeldung an allen Workstations wieder erlaubt wird.

Schließlich soll auch die Variante "individuelle Liste von Workstations je BenutzerIn" nicht vergessen werden:
01.
cscript //nologo C:\Scripts\SetLoginWS.vbs /UC:"D:\B und W.txt"
Hierzu muss die übergebene Datei (im Beispiel "D:\B und W.txt") zeilenweise wie folgt aufgebaut sein:
01.
BenutzerIn;Workstation[,Workstation]
Soferne die Domäne vorgegeben werden soll, kann dies durch die erste "Const"-Zeile erreicht werden (Kommentarzeichen entfernen nicht vergessen ), ansonsten wird in der aktuellen Domäne gesucht.

Noch ein Hinweis: Da mehrere Argumente zu übergeben sind, wird der Aufruf ohnehin über CMD (direkt an der Kommandozeile oder als Batch) erfolgen - insofern bietet es sich an, "cscript" zu verwenden, nicht zuletzt, da sich so die Ausgaben auch leicht in eine Log-Datei umleiten lassen.

Grüße
bastla

P.S.: Die Idee zu dieser "Flexibilisierung" ist mir gekommen, als ich mich fragte, warum Du nur (exakt) ein Argument zulassen wolltest (if args.Count=1 then) - alle weiteren hättest Du ja einfach ignorieren können ...
Bitte warten ..
Ähnliche Inhalte
Windows 8
Windows 8 - Default Programme setzen
Frage von solaar30Windows 8

Hallo zusammen! Wir nutzen die GPO "Set a default associations configuration file" um diverse Standardprogramme computerweit zu setzen. z.B. ...

Microsoft
Suche Skript, um die DPI in Windows 7 oder 8 anzupassen
Frage von DerWoWussteMicrosoft4 Kommentare

Ich grüße alle Admins! Hat jemand hier ein Skript oder Kommandozeilentool auf Lager, welches die System-Schriftgröße unter Windows anpasst?

Entwicklung
Hardwareinformation Skript
Frage von Silent08Entwicklung2 Kommentare

Huhu suche zur Inventarisierung der Client Rechner unseres Unternehmens ein Skript, welches die Hardwareinformationen der Clients ausliest und diese ...

Batch & Shell
Reporting Skript
Frage von TlBERlUSBatch & Shell

Hallo Zusammen, ich habe mal, um des Lernens und Monitoring willens, ein kleineres Skript geschrieben, welches ich in der ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 4 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 5 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 20 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 23 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte15 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...