none
Druckerverteilung per GPO auf Terminalserver RRS feed

  • Frage

  • Moin Moin zusammen,

    ich steh grade vor einem kleinen Problem und finde auf anhieb keine "einfache" Lösung. Vllt. denke ich auch nur zu kompliziert.

    In einem Unternehmen gibt es 2 Standorte: Hamburg und Kiel als Beispiel.

    Alle Mitarbeiter arbeiten auf einem Terminalserver, der als VM konfiguriert ist. Der physikalische Server steht in Kiel.

    Bisher werden alle Drucker allgemein mit einer GPO verteilt, die auf das gesamte Unternehmen bzw. die Domäne angewandt wird.

    Nun soll eine Voreinstellung getroffen werden. Benutzer, die sich aus Kiel auf dem TS anmelden, sollen automatisch als Standarddrucker den Drucker1 haben und alle Benutzer, die sich auf dem TS von Hamburg aus anmelden, den Drucker2 als Standartdrucker eingestellt bekommen.

    Kann mir jmd. sagen, an welcher Stelle, man dieses Problem am einfachsten lösen kann?

    AD-Standorte oder OU's für die Standorte wurden leider nie konfiguriert.

    Lieben Dank!

    Ronny

    Freitag, 2. November 2018 07:54

Alle Antworten

  • Moin,

    wie kann man die Benutzersitzungen denn überhaupt identifizieren? Haben die Kieler Endgeräte andere Namen als die Hamburger?


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Freitag, 2. November 2018 08:07
  • Hallo Evgenij,

    schön mal wieder was von dir zu lesen. Danke für die Antwort. Ja theoretisch haben die anderen Namen und man könnte theoretisch im Objekt irgendein Attribut oder sowas hinzufügen, damit das ganze unterschieden wird.

    Ich hab allerdings grade gesehen, das ein Kollege schon ein Script geschrieben hat, welches über die IP-Adressen der Geräte das ganze sortiert. Script funktioniert, wurde nur noch nicht per GPO in den Autostart verteilt.

    Danke dir.

    Freitag, 2. November 2018 08:27
  • Technisch sauber wäre, die AD-Sites und Subnetze zu pflegen. Das hilft Dir aber noch nicht weiter, denn der TS steht ja nicht in einer anderen Site, nur weil der Client von da kommt... Und auch im Userkontext steht die TS-Session da, wo auch der TS selber steht. Also ist ein Skript tatsächlich die korrekte Lösung.

    Ich würde im Skript allerdings den Clientnamen aus der Umgebungsvariablen %clientname% holen und mit "nltest /dsaddresstosite:%clientname%" die aktuelle Client-Site ermitteln. Und damit dann die Druckerzuordnung machen. Statische IP-Adressen in Skripts sind Technik von vorgestern :)


    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Freitag, 2. November 2018 09:49
    Beantworter
  • Technisch sauber wäre, die AD-Sites und Subnetze zu pflegen. Das hilft Dir aber noch nicht weiter, denn der TS steht ja nicht in einer anderen Site, nur weil der Client von da kommt... Und auch im Userkontext steht die TS-Session da, wo auch der TS selber steht. Also ist ein Skript tatsächlich die korrekte Lösung.

    Ich würde im Skript allerdings den Clientnamen aus der Umgebungsvariablen %clientname% holen und mit "nltest /dsaddresstosite:%clientname%" die aktuelle Client-Site ermitteln. Und damit dann die Druckerzuordnung machen. Statische IP-Adressen in Skripts sind Technik von vorgestern :)


    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Da hast du absolut recht. Leider kann ich da nicht einfach das halbe AD umbauen, weil ich schlichtweg nicht weiß, was das für Auswirkungen haben könnte.

    Ich kann dir mal das Script zeigen, was bereits von meinem Kollegen erstellt wurde.

    $ipRaw = C:\Scripts\GETTSCIP.exe
    $clientIp=$ipRaw.Split(" ")[1]

    $octets=$clientIp.Substring(0, $clientIp.lastIndexOf('.'))

    $printerList =@{"192.168.200" ="Drucker2";"172.16.2" ="Drucker2"; "10.1.50"="Drucker1"; "192.168.101"="pdf"}

    Write-Host $clientIp

    if ($printerList.ContainsKey($octets))
    {
        $PrinterName = $printerList.$octets
        $Printers = Get-WmiObject -Class Win32_Printer
        Try
        {
            Write-Verbose "Get the specified printer info."
            $Printer = $Printers | Where{$_.Name -eq "$PrinterName"}

            If($Printer)
            {
                Write-Verbose "Setting the default printer."
                $Printer.SetDefaultPrinter() | Out-Null

                Write-Host "Successfully set the default printer."
            }
            Else
            {
                Write-Warning "Cannot find the specified printer."
            }
        }
        Catch
        {
            $ErrorMsg = $_.Exception.Message
            Write-Host $ErrorMsg -BackgroundColor Red
        }
    }

    So wurde das von dem Kollegen umgesetzt. Im Prinzip werden nur stumpf die IP.Octette verglichen und daraufhin etwas zugewiesen.

    Wenn du einen eleganteren vorschlag hast, immer her damit. :-)

    Freitag, 2. November 2018 10:30
  • Zur Ermittlung der Client-IP kannst Du auch PowerShell-konform mein RDExSessionInfo-Modul verwenden und musst nicht irgendwelche Exen einbinden (die aber freilich as Gleiche tun) ;-)

    https://it-pro-berlin.de/rdexsessioninfo-de/


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Freitag, 2. November 2018 11:02
  • Also erst mal das Modul von Evgenij besorgen :-)

    $ClientIP -match '(.*)\.\d*$'
    $octets = $matches[1]

    Aber das ist eher kosmetisch... Und ich würde bei Get-WMIObject gleich den Druckernamen als Filter angeben, aber auch das ist eher kosmetisch.


    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq


    Montag, 5. November 2018 10:59
    Beantworter