Gå til innhold

Trenger en liten forklaring på et script


Anbefalte innlegg

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
Videoannonse
Annonse

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

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.

 

active7lm.th.png

Endret av raziel014
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...