Kenny Bones Skrevet 1. september 2005 Del Skrevet 1. september 2005 Hei! Første gang jeg er i denne delen av forumet! Uansett, på skolen der jeg jobber har vi en Windows 2003 Server som styrer terminaltjenester. Mot denne serveren er det koblet opp rundt 90 tynnklienter, men i forskjellige rom. Derfor vil jeg bruke et script som gjør at når en klient logger på serveren så sjekker scriptet navnet på klienten og om den tilhører den og den gruppen så setter den den og den skriveren som automatisk default skriver. Virker ganske enkelt egentlig for da trenger jeg bare å lage 3 grupper (vi har 3 rom) der jeg melder inn alle klientene i rett gruppe. Så jeg fant et script på nettet som skulle gjøre dette, men problemet er at jeg ikke helt vet hva jeg skal fylle inn og hva de forskjellige tingene gjør! Har noen kunnet hjelpe meg med dette? På forhånd takk!! 'Script Begins Here Dim objNetwork, objComputer, strDomain, strComputerName strDomain = "strDomain" Set objNetwork = CreateObject("Wscript.Network") strComputerName = objNetwork.ComputerName Set objComputer = GetObject("WinNT://" & strDomain & "/" & strComputerName & ",computer") If IsGroupMember(strDomain, "strGroup") Then objNetwork.SetDefaultPrinter "PrinterName" End If Set objNetwork = Nothing Set objComputer = Nothing Wscript.Quit Function IsGroupMember(strDomain, strGroup) Dim objGroup Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") If objGroup.IsMember(objComputer.ADsPath & "$") Then IsGroupMember = True Else IsGroupMember = False End If Set objGroup = Nothing End Function Som f.eks hva betyr denne stringen? "Set objComputer = GetObject("WinNT://" & strDomain & "/" & strComputerName & ",computer")" Jeg forstår at jeg skal skrive noe i feltene som har " rundt seg, men jeg forstår liksom ikke. Har noen orker å bare fylle inn midlertidige ord så jeg kanskje forstår litt bedre? Lenke til kommentar
aadnk Skrevet 1. september 2005 Del Skrevet 1. september 2005 Den aktuelle linjen du sikter til, er egentlig ikke så vesentlig. Se på følgende: Sitat Dim objNetwork, objComputer, strDomain, strComputerName ' * Erstatt streng med domenenavnet på ditt nettverk * strDomain = "strDomain" ' Hovedobjektet vi skal benytte Set objNetwork = CreateObject("Wscript.Network") ' Hent datamaskinnavn strComputerName = objNetwork.ComputerName ' Last inn referanse til vår datamaskin Set objComputer = GetObject("WinNT://" & strDomain & "/" & strComputerName & ",computer") ' Først, se om datamaskinen tilhører den første gruppen If IsGroupMember(strDomain, "Gruppe1") Then ' Erstatt "Gruppe1" med den første gruppen objNetwork.SetDefaultPrinter "Printer1" ' Skriv navn på skriveren den første gruppen tilhører ' Dersom ikke dette er tilfellet, ser vi om den er en del av den andre gruppen ElseIf IsGroupMember(strDomain, "Gruppe2") Then ' Likeledes her ... objNetwork.SetDefaultPrinter "Printer2" ' Samme her, ... ' Er heller ikke dette korrekt, har vi bare èn gruppe igjen Else objNetwork.SetDefaultPrinter "Printer3" '... og her. End If ' Rydd opp Set objNetwork = Nothing Set objComputer = Nothing Wscript.Quit Function IsGroupMember(strDomain, strGroup) Dim objGroup ' Objektet som muliggjør sjekking av gruppetilhørelse Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") ' Returner hvorvidt datamaskinen er medlem av denne gruppen IsGroupMember = objGroup.IsMember(objComputer.ADsPath & "$") ' Rydd opp Set objGroup = Nothing End Function Hva du behøver å gjøre, står beskrevet i rød skrift. Lenke til kommentar
Kenny Bones Skrevet 1. september 2005 Forfatter Del Skrevet 1. september 2005 Takk! Skal prøve i morgen! Hva slags språk er egentlig dette forresten? Lenke til kommentar
aadnk Skrevet 1. september 2005 Del Skrevet 1. september 2005 raziel014 skrev: Hva slags språk er egentlig dette forresten? VBScript. Lenke til kommentar
Authority Skrevet 1. september 2005 Del Skrevet 1. september 2005 Men dette gjør du best ved å benytte active directory, lage objekter for hvert rom, tilegne brukerne under objektet og sette default-skriver tilhørende objektet. Det er nettopp dette Active Directory er laget for. Lenke til kommentar
Kenny Bones Skrevet 2. september 2005 Forfatter Del Skrevet 2. september 2005 (endret) Ja jeg vet det, men det går ikke an å sette default printer til en gruppe eller OU i Active Directory. Hadde det gått an hadde jeg brukt det. Har lett overalt etter måter å gjøre dette på og har funnet ut at script er det enkleste. Da lager jeg bare grupper som er koblet til group policier der scriptet står i logon. Deretter tilegner jeg datamaskinene (tynnklientene i dette tilfellet) i gruppene. Edit: Skriptet fungerer sånn litt. Tror kanskje det er noe jeg gjør når jeg spesifiserer det som skal stå i skriptet. FOr det virker som om det ikke helt forstår hvilke grupper jeg henviser til. Når jeg kjører skriptet blir den siste skriveren default selv om tynnklienten jeg er på er koblet til den første gruppen. Endret 2. september 2005 av raziel014 Lenke til kommentar
aadnk Skrevet 2. september 2005 Del Skrevet 2. september 2005 Hva med å lage tre forskjellige skriptfiler og dernest tilegne hver enkel av disse filene til de respektive gruppene? Da kan du jo bare definere den riktige skriveren i hver fil. Lenke til kommentar
Kenny Bones Skrevet 2. september 2005 Forfatter Del Skrevet 2. september 2005 Jo det hadde fungert. Men jeg mistenker at scriptet fungerer fint, bare at 2003 serveren ikke forstår at tynnklienten jeg er logget på med er det samme objektet som computer-navnet jeg har lagd. Om jeg bare hadde kunnet registrere computere inn i Active Directory med Mac-adresse hadde jo serveren forstått at det er samme. Om ikke AD forstår at det er samme objekt vil det jo ikke fungere å lage 3 forskjellige script heller.. 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å