erikro
Goto Top

Standort vs. Standort

Moin,

Hintergrund der Frage ist, dass ich für ein PS-Skript auf dem RDS wissen muss, wo der Client steht. Ich hatte zuerst die Idee, das über OUs zu regeln, fand das dann aber albern, wenn ich ca. 20 OUs einrichte mit jeweils einem oder zwei, in einer OU sogar drei Rechnern. Also kam ich auf die Idee, einfach ein AD-Attibut des Rechners zu benutzen. Mein Wunsch dabei ist, dass das möglichst über die Klicki-Oberfläche erreichbar ist, damit das auch Verwaltungsangestellte pflegen können. face-wink Also dachte ich an das Attribut "Standort". Das gibt es ja zweimal. Einmal unter "Allgemein" und einmal als eigener Reiter. Bisher war ich immer der Meinung, dass sich das mit dem eigenen Reiter auf die Domain-Standorte bezieht und das vorne könne man frei editieren. Das ist offensichtlich falsch. Das Feld unter "Allgemein" lies sich nicht editieren. Das unter "Standort" schon.

Warum ist dann dort eine Schaltfläche "Durchsuchen"? Ich dachte immer, da könne man die eingerichteten Standorte durchsuchen.
Füllt sich das Feld unter Allgemein dann von alleine, sofern Standorte eingerichtet sind?
Das Wichtigste: Wird der Eintrag unter "Standorte" verändert, sofern man nachträglich Standorte einrichtet?

Liebe Grüße

Erik

P. S.: Standorte sind bei mir nur theoretisches kein praktisches Wissen. face-wink Und das wird wahrscheinlich auch so bleiben. face-sad

<edit>P. P. S.: Und bei Google Bildersuche gibt es nur Klicki-Bilder, wie man das einrichtet. Aber nicht das, was ich suche. Ein einziges würde ja schon Klarheit verschaffen.</edit>

Content-Key: 1415393594

Url: https://administrator.de/contentid/1415393594

Printed on: April 26, 2024 at 15:04 o'clock

Member: jsysde
Solution jsysde Oct 21, 2021 at 17:54:41 (UTC)
Goto Top
N'Abend.

Dieses Standort-Feld ist ein Überbleibsel bzw. nie fertig entwickeltes Attribut, dass für das Printer-Location-Tracking eingefügt wurde: https://www.google.com/search?q=printer+location+tracking+ad

Ich würde für das Skript einfach auf Subnetze setzen und nicht auf, in diesem Fall, "wackelige" AD-Attribute?

Cheers,
jsysde
Member: erikro
erikro Oct 21, 2021 at 19:52:52 (UTC)
Goto Top
Moin,

Zitat von @jsysde:
Dieses Standort-Feld ist ein Überbleibsel bzw. nie fertig entwickeltes Attribut, dass für das Printer-Location-Tracking eingefügt wurde: https://www.google.com/search?q=printer+location+tracking+ad

Interessant. Genau darum geht es. In der Einrichtung habe ich bisher den Drucker anhand der OU zugewiesen, in der der User ist. Das ging bisher auch gut. Nun hat sich aber ergeben, dass ein nicht unerheblicher Teil der User nicht mehr einer exakten OU zugewiesen werden kann, sondern auf diversen Stationen arbeitet. (Ja, wir sind im Gesundheitssektor.) D. h. diesen Usern kann ich nicht mehr auf Grund ihrer bisher festen Station ihren Drucker zuweisen, sondern möchte das am Gerät festmachen.

Das eigentliche Problem ist, dass die User nicht auf dem lokalen Gerät arbeiten, sondern auf einem RDS, auf dem auch direkt alle Drucker des Hauses installiert sind. Jeder soll auch auf jedem Drucker drucken können. So kommt es häufig vor, dass was für die Verwaltung gedruckt werden muss, was dann direkt auf dem dortigen Drucker ausgegeben wird. Der Standarddrucker soll aber der auf der jeweiligen Station sein. Jetzt habe ich das so geregelt, dass beim Login denjenigen, die auf verschiedenen Stationen arbeiten, ein Auswahlmenü präsentiert wird. Ich hätte das aber wieder gerne voll automatisch. In einer Schicht wird die Station nicht gewechselt.

Ich würde für das Skript einfach auf Subnetze setzen und nicht auf, in diesem Fall, "wackelige" AD-Attribute?

20 Subnetze für 25 Rechner? Nee, nicht wirklich. face-wink

Achja, welches der beiden Standortfelder? Und funktioniert der Mechanismus? Das würde mir das ganze Skript sparen. face-wink

Liebe Grüße

Erik
Member: jsysde
Solution jsysde Oct 21, 2021 updated at 20:33:12 (UTC)
Goto Top
N'Abend.

Verstehe... Ob das mit dem Standort-Attribut funktioniert, keine Ahnung, hab' ich nie weiter verfolgt (weil ich das Zuweisen von Druckern eher den Usern überlassen möchte - "wir" als IT-Abteilungen haben in den letzten zwei Dekaden "unsere" User zu digitalen Analphabeten erzogen.... Anderes Thema. In deinem Umfeld kann ich den Leidensdruck, etwas so einfaches zu automatisieren, aber nachvollziehen).

Glaube aber kaum, dass es dich zur Lösung führt - AD-Attribute ändern sich eher nicht dynamisch und AD-Standorte erfordern pro Standort einen DC mit zugewiesenem Subnetz, um sie konsistent und zuverlässig in Skripts nutzen zu können.

Die Rechner, an denen sich die User anmelden, bleiben aber fest auf ihrer Station? Und ihr folgt einer konsistenten Namenskonventionen? Dann wäre ja z.B. die Auswertung des Clientnamens (oder eines Teils davon), von dem aus die Anmeldung am RDS erfolgt, ein potentieller Filter für die Zuweisung eines Druckers?

Cheers,
jsysde
Member: erikro
erikro Oct 21, 2021 at 22:21:17 (UTC)
Goto Top
Moin,

Zitat von @jsysde:
Verstehe... Ob das mit dem Standort-Attribut funktioniert, keine Ahnung, hab' ich nie weiter verfolgt (weil ich das Zuweisen von Druckern eher den Usern überlassen möchte - "wir" als IT-Abteilungen haben in den letzten zwei Dekaden "unsere" User zu digitalen Analphabeten erzogen.... Anderes Thema. In deinem Umfeld kann ich den Leidensdruck, etwas so einfaches zu automatisieren, aber nachvollziehen).

Wie gesagt, wir sind im Gesundheitssektor. Bei Büromenschen bestehe ich auch darauf, dass sie das alleine können. Aber die Menschen, mit denen ich da zu tun habe, haben halt ganz andere Kompetenzen und machen damit einen großartigen Job. Deshalb möchte ich ihnen die, sagen wir mal anderthalb Stunden, die sie vor dem meist gehassten Computer verbringen müssen, möglichst angenehm gestalten.

Glaube aber kaum, dass es dich zur Lösung führt - AD-Attribute ändern sich eher nicht dynamisch und AD-Standorte erfordern pro Standort einen DC mit zugewiesenem Subnetz, um sie konsistent und zuverlässig in Skripts nutzen zu können.

Deshalb ja die Frage: Ist das, was ich da sehe, wirklich das gleiche Attribut? Angefangen hatte ich genau anders herum. Ich habe erst einmal im Attribute-Editor geschaut, ob ich denn ein passendes Attribut finde. Ich mag es nicht, irgendwas zu missbrauchen. Da bin ich auf eins gestoßen, dass mit location endete. Das habe ich dann mal versuchsweise eingetragen und siehe da, es tauchte im Reiter "Standorte" auf. Trotzdem blieb die Schaltfläche "Durchsuchen" grau. Und das Feld unter "Allgemein" blieb leer. Das ist ja das, was mich verwirrt. Ich hätte das anders herum vermutet. Danach habe ich dann versucht, die beiden Felder in der Maske zu editieren mit dem genannten Ergebnis.

Die Rechner, an denen sich die User anmelden, bleiben aber fest auf ihrer Station?

Ja.

Und ihr folgt einer konsistenten Namenskonventionen?

Ja, leider. Leider deshalb, weil der Name nichts über den Standort aussagt. War nicht meine Entscheidung. Die Rechner heißen firmenkürzel-inventarnummer. Nicht gerade hilfreich.

Dann wäre ja z.B. die Auswertung des Clientnamens (oder eines Teils davon), von dem aus die Anmeldung am RDS erfolgt, ein potentieller Filter für die Zuweisung eines Druckers?

Daran dachte ich auch als erstes. Aber dann müsste man das Skript immer wieder anpassen, wenn die Rechner getauscht werden. Auch schlecht. Ebenso feste IPs. Die hasse ich. face-wink Das macht einen Haufen Arbeit für ein dann doch recht kleines Ziel. Deshalb ja die Idee mit den Attributen.

Liebe Grüße und danke für die Mühe

Erik
Member: em-pie
Solution em-pie Oct 22, 2021 at 05:23:31 (UTC)
Goto Top
Moin,

Wird bei den Computer-Objekten das Feld „Beschreibung“ genutzt?

Falls nicht: trag dort doch die Station ein. Das Feld lässt sich ja dann in scripten auswerten.

Spannend wird es aber, wenn die eine RDS-Session nicht sauber beenden sondern nur trennen und dann den Standort wechseln. Ein LogOn-Script greift dann ja nicht mehr. Und auch eine GPO/ GPP wird vermutlich nicht sofort greifen…
Member: erikro
erikro Oct 22, 2021 at 07:08:57 (UTC)
Goto Top
Moin,

Zitat von @em-pie:
Wird bei den Computer-Objekten das Feld „Beschreibung“ genutzt?

Ja, leider. face-wink Das war mein erster Gedanke. Aber da steht was drin. Aber vielleicht ändere ich das und verbanne die Infos in die Doku.

Spannend wird es aber, wenn die eine RDS-Session nicht sauber beenden sondern nur trennen und dann den Standort wechseln. Ein LogOn-Script greift dann ja nicht mehr. Und auch eine GPO/ GPP wird vermutlich nicht sofort greifen…

Das wird der angenehme Seiteneffekt, dass die Damen dann endlich mal lernen, dass man sich am Ende des Tages abmelden muss. face-wink So lange dass nur dem Admin die Arbeit leichter macht, ist das ja egal. Aber wenn sie bestimmte Goodies dann nicht mehr haben ... face-wink Oder ich führe wieder die Zwangsabmeldung ein. face-wink

Liebe Grüße

Erik
Member: em-pie
Solution em-pie Oct 22, 2021 at 07:21:14 (UTC)
Goto Top
Zitat von @erikro:

Moin,

Zitat von @em-pie:
Wird bei den Computer-Objekten das Feld „Beschreibung“ genutzt?

Ja, leider. face-wink Das war mein erster Gedanke. Aber da steht was drin. Aber vielleicht ändere ich das und verbanne die Infos in die Doku.
Die Info muss ja nicht verschwinden. Die Station ließe sich ja auch in Klammern unterbringen, z.B. "Ultraschall-Client (Gynäkologie)" oder "Labor-Client (Zahntechnik)"...

Spannend wird es aber, wenn die eine RDS-Session nicht sauber beenden sondern nur trennen und dann den Standort wechseln. Ein LogOn-Script greift dann ja nicht mehr. Und auch eine GPO/ GPP wird vermutlich nicht sofort greifen…
Das wird der angenehme Seiteneffekt, dass die Damen dann endlich mal lernen, dass man sich am Ende des Tages abmelden muss. face-wink So lange dass nur dem Admin die Arbeit leichter macht, ist das ja egal. Aber wenn sie bestimmte Goodies dann nicht mehr haben ... face-wink Oder ich führe wieder die Zwangsabmeldung ein. face-wink

D. h, dass die Damen (und Herren) untertätig ihre Station nicht verlassen bzw. nur seeehr selten?
Member: erikro
Solution erikro Oct 22, 2021 at 12:07:06 (UTC)
Goto Top
Moin,

ich danke Euch beiden nochmal. Zur Belohnung gibt es das fertige Skript. face-wink Wie Ihr seht, nehme ich jetzt doch das Feld description.

# Skript zum automatischen Zuweisen der Drucker nach Standort
# Voraussetzungen:
    # - beim lokalen Rechner wurde in der Beschreibung im AD der Druckername eingetragen
    # - der Drucker ist mittels eines IP-Ports auf dem RDS installiert
# der entsprechende Drucker (und nur der) eingetragen.
# Wurde kein Drucker eingetragen bzw. steht dort etwas, was kein Drucker ist,
# dann wird ein Auswahlmenü präsentiert.

# Auf welchem Client hat sich er User eingeloggt?
# Wir brauchen nur das Feld description

$sessionID = (Get-Process -PID $pid).SessionID
$CLIENTNAME = (Get-ItemProperty -path ("HKCU:\Volatile Environment\" +  $sessionID) -name "CLIENTNAME").CLIENTNAME  

$client_printer = (Get-ADComputer $CLIENTNAME -Properties description).description

# Liste aller realen Drucker
# Wir brauchen nur die Namen
$printers = (get-printer | Where-Object {$_.PortName -match "IP_.*"}).name  

if($client_printer -in $printers) {

    # Falls der Drucker existiert, wird er zugewiesen
    $printer = $(Get-WmiObject -class win32_printer | Where-Object { $_.name -eq $client_printer })
    $printer.setdefaultprinter()    

}
else {

    # Falls nicht, dann wir das Menü präsentiert
    
    Add-Type -AssemblyName System.Windows.Forms
    Add-Type -AssemblyName System.Drawing

    $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'  
    $Form_StateCorrection_Load=
	    {
		    #Correct the initial state of the form to prevent the .Net maximized form issue
		    $Form.WindowState = $InitialFormWindowState
	    }

    $form = New-Object System.Windows.Forms.Form 
    $form.Text = "Bitte Drucker auswählen"  
    $form.Size = New-Object System.Drawing.Size(300,(130+20+20*$($printers.length))) 
    $form.StartPosition = "CenterScreen"  
    $Font = New-Object System.Drawing.Font("Arial",10,[System.Drawing.FontStyle]::Regular)  

    $form.Font = $Font

    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Point(112,(42+20+20*$($printers.length)))
    $OKButton.Size = New-Object System.Drawing.Size(76,27)
    $OKButton.Text = "OK"  
    $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
    $form.AcceptButton = $OKButton
    $form.Controls.Add($OKButton)


    $label = New-Object System.Windows.Forms.Label
    $label.Location = New-Object System.Drawing.Point(10,14) 
    $label.Size = New-Object System.Drawing.Size(480,20) 
    $label.Text = "Wählen Sie einen Standarddrucker aus:"  
    $form.Controls.Add($label) 

    $listBox = New-Object System.Windows.Forms.ListBox 
    $listBox.Location = New-Object System.Drawing.Point(10,42) 
    $listBox.Size = New-Object System.Drawing.Size(260,(20*$($printers.length))) 
    $listBox.Height = 20*$printers.length
    $listboxFont = New-Object System.Drawing.Font("Arial",12,[System.Drawing.FontStyle]::Regular)  
    $listBox.font = $listboxFont

    foreach($printer in $printers) {

        [void] $listBox.Items.Add("$printer")  

    }
    $form.Controls.Add($listBox) 
    #Workaround for displaying for when ran as a GPO:
    $InitialFormWindowState = $Form.WindowState
    $Form.add_Load($Form_StateCorrection_Load)


    $form.Topmost = $True

    $result = $form.ShowDialog()



    if ($result -eq [System.Windows.Forms.DialogResult]::OK)
    {
        $x = $listBox.SelectedItem
        $x
        $defaultprinter = $(Get-WmiObject -class win32_printer | Where-Object { $_.name -eq "$x" })  
        $defaultprinter.setdefaultprinter()
    }
    
}

Liebe Grüße

Erik