Neptyr Skrevet 23. mars 2004 Del Skrevet 23. mars 2004 Jeg har et lite problem jeg håpte noen smarte VB folk kunne hjulpet meg litt med, jeg skal nemlig lage et logon script som gir brukere hjemmeområder, andre områder som vi måtte ønske, printere og eventuelle programmer/regfiler vi vil at skal kjøres. til nå så har jeg klart å få satt sammen dette: strFileServer = "man-fp1" strPrintServer = "man-fp1" strShareOppgave = "oppgave" Set objWshNetwork = WScript.CreateObject("WScript.Network") Set objADSysInfo = WScript.CreateObject("ADSystemInfo") Set objUser = GetObject("LDAP://" & objADSysInfo.Username) 'Enumerate user's groups 'Uses backets to uniquely distinguish group names For Each objGroup In objUser.Groups strGroups = strGroups & "[" & objGroup.Name & "]" Next 'Enumerate current drives and printers Set colDrives = objWshNetwork.EnumNetworkDrives Set colPrinters = objWshNetwork.EnumPrinterConnections 'Remove existing drives and printers For i = 0 To colDrives.Count - 1 Step 2 objWshNetwork.RemoveNetworkDrive colDrives.Item(i), True, True Next For i = 1 To colPrinters.Count Step 2 objWshNetwork.RemovePrinterConnection colPrinters.Item(i), True, True Next 'Check for group membership and run associated commands 'Calls InGroup Function If InGroup("CN=MAN_Ansatte") Then 'Map drives objWshNetwork.MapNetworkDrive "J:", objUser.homeDirectory objWshNetwork.MapNetworkDrive "O:", "\\" & strFileServer & "\" & strShareOppgave ' objWshNetwork.MapNetworkDrive "I:", "\\" & strFileServer & "\" & strShareProgram ' objWshNetwork.MapNetworkDrive "L:", "\\" & strFileServer & "\" & strSharePersonalFelles ' Map printers objWshNetwork.AddWindowsPrinterConnection "\\" & strPrintServer & "\" & "kopimaskin" End If WScript.Echo "Testscript ferdig" 'Function to chech for group membership Function InGroup(groupName) InGroup = False If InStr(strGroups,"[" & groupName & "]") <> 0 Then InGroup = True End If End Function Det jeg mangler, er noe som sjekker hostname på en maskin, og gir printer / diverse på grunnlag av det. If InGroup("CN=MAN_Ansatte") Then ::her legges hjemmeområdet til basert på brukerens gruppe medlemskap:: så under der, vil jeg ha en funksjon som sjekker hostnamet, og gir printere på grunnlag av det, f.eks: if InRom("CN=Rom140") then ::printer for det rommet legges til:: else if InRom("CN=Rom120") then ::printer for rommet legges til :: else så skulle jeg hatt en funskjon som gir printere om man ikke er i noen av rommene. Håper noen forstod min HÅPLØSE forklaring og kan hjelpe meg litt MVH Rolf Lenke til kommentar
GeirGrusom Skrevet 23. mars 2004 Del Skrevet 23. mars 2004 Du trenger ikke lage et program for å gjøre dette, det kan gjøres i Windows NT relativt enkelt. I User Manager kan du sette Logon Scripts, som kjører Net Printer, Net Use, o.s.v. (et batch script) Lenke til kommentar
Neptyr Skrevet 23. mars 2004 Forfatter Del Skrevet 23. mars 2004 (endret) per dags dato bruker vi Kix som logon script, det er ALT for tregt, og Batch filer er ikke holdbart, må ha noe som kan sjekke opp mot AD med gruppemedlemskap og maskinavn. Vi fant ut at VB var greit å bruke, så vi fikk noen eksempler, men jeg klarer ikke å få til å sjekke mot hostname :/ Så alle andre forslag om forskjellige logon script (med mindre de er eksepsjonelt bra) er det bare å glemme nå, jeg trenger ikke hjelp til det Men om dere kan bidra med forslag til scriptet så motas det med HJERTELIG TAKK! Hoved problemet nå er å få sjekka hostname , og kjørt det du trenger opp i mot det, som printer koblinger og brukerområder. EDIT: Vi har ca en 500maskiner, og 15-16 klasserom det skal settes opp dependecies mot, i tillegg til 4-5grupper. Endret 23. mars 2004 av Neptyr Lenke til kommentar
Rep Skrevet 6. april 2004 Del Skrevet 6. april 2004 (endret) Du kan hente Hostname på klient maskin på denne måten i vbscript Dim wNet, Host Set wNet = WScript.CreateObject("WScript.Network") Host = wNet.ComputerName I din kode kan du jo bruke objWshNetwork.ComputerName Endret 6. april 2004 av Rep Lenke til kommentar
GeirGrusom Skrevet 8. april 2004 Del Skrevet 8. april 2004 Du kan bruke en API funksjon som heter GetComputerName. du finner den i API viewer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå