LAM v4.0 Local Admin Manager

In den letzten Wochen war ich natürlich nicht untätig. Ich habe unseren LAM v3.x auf die neue Version v4.0 gebracht.

Die Software wurde komplett in VB2005.NET geschrieben und basiert auf dem .Net 2.0 Framework. Einige Funktionen wurden endlich überarbeitet und dem neuen Look&Feel angepasst. Somit ist der LAM für Windows Server 2008 gut gerüstet.

Screenshot:

LAMv4.0 Administration an der Workstation LAM v4.0 Search

Zugriffe auf Active Directory mit PowerShell

Auf Objekte im ADS kann wie folgt zugegriffen werden:

$MyObject = [ADSI]“LDAP://OU=Benutzer,DC=Domain,DC=int
$MyObject = New-Object System.DirectoryServices.DirectoryEntry
$MyObject.PSBase.Path = „
LDAP://OU=Benutzer,DC=Domain,DC=int

oder

$MyObject = New-Object System.DirectoryServices.DirectoryEntry(„LDAP://OU=Benutzer,DC=Domain,DC=int„)

Auf die Attribute kann so zugegriffen werden:

write-host $MyObject.PSBase.Name
write-host $MyObject.PSBase.InvokeGet(„name“)
write-host $MyObject.PSBase.Properties.name
write-host $MyObject.PSBase.Properties.Item(„name“)

Werte setzen mit:

$MyObject.PSBase.InvokeSet(„adminDescription“,“MeineAdminDescription“)
$MyObject.PSBase.CommitChanges()

Matze

 

Powershell Funktion mit [ref] Parameter aufrufen

Habe schon lange nichts mehr gepostet, liegt daran, dass ich zur Zeit nichts erwähnenswertes habe. Seit kurzem Beschäftige ich mich mit der Powershell. Anfangs eher skeptisch, bin ich nun totaler Freund der PS!

Ein wenig Erfahrung in Programmierung und .Net-Framework kann übrigens nicht schaden 🙂 

Eine Funktion kann mit „call by reference“ aufgerufen werden. Wichtig ist dabei, dass sowohl in der Funktion, als auch imAufruf der Parameter [ref] verwendet wird.

Funktionen werden einfach per Namen angegeben und deren Parameter übergeben.
Beispiele:
MyFunction($x,$y,$z)
MyFunction($x)($y)($z)
(ist identisch mit der vorherigen Variante)

Bei Verwendung von referenzierten Werten (auch wenn nur ein Ref-Wert dabei ist), müssen alle Aufrufparameter so angegeben werden:
MyFuntion([ref]$x)($y)($z)

Der Aufruf mit
MyFunction([ref]$x, $y, $z) geht nicht!!!!

Da würde dann folgender Fehler auftreten:
Reference type is expected in argument. MyFunction(< <<<<  )

Auf den Referenzierten Wert kann man innerhalb der Funktion nur über $Variable.Value zugreifen. Alles andere geht schief.

(Das funktioniert auch bei referenzierten Objekten.)

Beispiel:

FUNCTION ChangeValue([ref]$a) {
$a.Value=“Neuer Wert in Function“
}

Aufruf: 

$Input=“Grundwert“
changevalue([ref]$Input)
Write-host $Input

liefert „Neuer Wert in Function“

Übergabe mehrerer Parameter muss explizit angegeben werden. Das sieht dann in etwa so aus:

FUNCTION Swap([ref]$Var1, [ref] $var2) {
$var1.Value=“Neuer Wert Variable1″
$var2.Value=“Neuer Wert Variable2″
}

Aufruf erfolgt dann so:

Swap([ref]$In1)([ref]$In2)