Im Rahmen eines aktuellen Projektes darf ich mich ein bisschen mit Enteo beschäftigen. Im Kern basiert Enteo V6 auf WebServices. Das ist leider auch die einzige Schnittstelle, die meines Wissens vom Hersteller für Automatisierungen angeboten wird.
Gerade in einem größeren Rollout Projekt ist Automatisierung überlebenswichtig (bzw. sinnvoll, damit man sich nicht zu sehr bei Drag&Drop langweilt). Zum Glück hat NWC Services diese Lücke erkannt und als Wrapper um die WebServices ein Powershell Modul erstellt.
Meine Testerfahrungen mit diesem Tool werde ich in diesem Blogeintrag und wahrscheinlich in ein paar weiteren anhand von Beispielen beschreiben.
Die Software ist kostenpflichtig und muss anhand der vorhanden Clients im Enteo lizenziert werden. Beim Verbinden mit einem Enteo Server liest es die Clientanzahl aus und würde melden, wenn die lizenzierte Anzahl die tatsächliche um eine Toleranzgrenze hinaus überschreitet.
Das Powershell Snapin kann über
Add-PSSnapin NwcServices.BlsAdministration
in einem Script geladen werden.
Eine Verbindung wird mittels
$server="\\enteowebservice.server" New-PSDrive -Name emdb -psProvider BlsEmdb -Root $server
aufgebaut werden.
Danach kann mittels
cd "emdb:\rootdse"
auf das neu eingehängt Enteo Laufwerk gewechselt werden.
Ein einfacher Befehl wie
get-EmdbComputer –recurse "computername"
sucht in allen Unterordnern nach einem Computer mit dem Namen computernamen und gibt das Objekt zurück.
Auch detailiertere Suchen sind problemlos möglich. Ein neuer Computer, der sich per PXE Boot gemeldet hat, steht zuerst nur mit seiner MAC-Adresse im System und ist ungemanaged. Um bei der Anpassung eines Rechners herauszufinden, ob ein gemanagetes oder ungemanagtes Objekt schon besteht, ist es am einfachsten nach der Initialen MAC-Adresse zu suchen.
$filter="Computer.InitialMACAddress="+$Mac $pc=Get-EmdbComputer -recurse -filter $filter
Hier zeigt sich meiner Meinung nach schon das Problem der Zwei-Hersteller-Strategie: NWC hat seine Powershell Kommandos in zwei Hilfedateien ausreichend gut beschrieben. Der Filter wird aber an die WebServices weitergereicht und ist somit nicht mehr in der Verantwortung des Powershell Herstellers, sondern bei Enteo. Bei Enteo habe ich aber keine passenden Beschreibungen gefunden, sondern habe mich herantasten müssen. Dazu habe ich den einen oder anderen möglichen Filter ausprobiert. Als Fehlermeldung kam dann die verwendete SQL Abfrage zurück. Mit dieser bin ich in die Datenbank gegangen und habe anhand des Datenbankaufbaues die passende Tabelle und Tabellenspalte herausgefunden. Kennt jemand einen eleganteren Weg?
Soweit im ersten Blog Eintrag. In den nächsten Posts möchte ich zeigen, wie Organisationseinheiten angelegt, Computerobjekte da hineinverschoben werden und Zuordnungen zu statischen Gruppen durchgeführt werden. Danach eventuell noch ein Exkurse wie man mit Powershell eine OS-Neuinstallation weitestgehen automatisieren kann (erkennen ob Rechner an ist, ob ein User angemeldet ist, Rechnerneustart oder Wake-on-Lan, OS-Installation anstoßen und überwachen).
Hallo Markus,
wegen deiner Frage mit den Filtern: in der Online-Hilfe gibt’s unter
“Arbeiten mit den PowerShell Extensions für FrontRange DSM 7” > “Allgemeines” > “Arbeiten mit Filtern” eine Anleitung, wie man recht einfach die Filterkriterien ermitteln kann…
Bei Fragen, einfach melden
Viel Spaß und Erfolg weiterhin beim Scripten
Frank
@Frank Scholer
Stimmt. Den Abschnitt in der Hilfe habe ich auch gefunden. Soweit ich mich erinnern kann, hat er mir bei diesem konkreten Problem nicht weitergeholfen. Sobald ich wieder Zugriff auf die CHM habe, schau ich ihn mir nochmals an.
Grüße Markus