Blog-Kategorie
Data Center

Hier bloggen sepago Experten über: Data Center

| |

PowerShell: Sprachkonstrukte (Flusssteuerung mit CMDLets) – Part 17.5

4.4.8     Flusssteuerung mit CMDLets

Die Flusssteuerung kann auch mit Hilfe von CMDLets vorgenommen werden. Sie können prinzipiell die gleichen Aufgaben erledigen wie die Sprachkonstrukte, es gibt jedoch einige wichtige Unterschiede. Die am häufigsten für die Flusssteuerung verwendete CMDLets sind ForEach-Object und Where-Object.

4.4.8.1     ForEach-Object

Das ForEach-Objekt CMDLet arbeitet ähnlich wie die Foreach-Schleife. Es wird eine Reihe von Objekten aus einer Collection nacheinander in einem Anweisungsblock abgearbeitet. Der Unterschied zu der Foreach-Schleife besteht darin,

| |

Step by Step Anleitung für das Upgrade von einer produktiven System Center 2012 R2 Configuration Manager Umgebung auf die „current branch“ Version 1602:

Seit System Center Configuration Manager 1511 gibt es einen Unterschied beim Updaten, Microsoft Update Pack Versionen sind anders als Service Packs und kumulativen Updates. Das Herunterladen und die Aktualisierung geschieht jetzt direkt von der Konsole aus. Wenn Sie ein Update von der Version 2012 R2 auf die neue ConfigMgr Version 1602 vorhaben, müssen Sie zuerst auf die Version 1511updaten, bevor Sie auf die Version 1602 updaten können. Die Version 1511 ist die Basisversion, auch wenn Sie diese von Grund auf neu installieren müssen.

| |

System Center Configuration Manager v1511 to v1602 upgrade issue

This is a quick one as I wanted to update my System Center Configuration Manager v1511 to v1602.

I encountered the well-known behavior of having the “Configuration Manager 1602” Update in state “Downloading” without any progress.

The common workaround is mentioned in the Description of said update but simply restarting the SMS_EXECUTIVE service did not do the trick for me.

I had a look at my dmpdownloader.log file in which the following error was being logged:
Failed to call AdminUIContenDownload.error = Invalid pointer

So what to do,

| |

PowerShell Exception 0x800A01B6 while using getElementsByTagName, getElementsByName or getElementByID

To put an Azure Web-App service under heavy load I make use of the com-object „InternetExplorer.Application“ to automate an internet explorer session.

1
2
3
4
5
6
7
8

$xe = New-Object -com „InternetExplorer.Application“
$xe.visible = $true
$xe.silent = $true

$xe.Navigate($IURL)
while ($xe.Busy) {
    [System.Threading.Thread]::Sleep(10)
}

Using $xe.Document.getElementsByTagName(„Input“) enables me to enumerate the form fields and buttons. This works for the first website that I am visiting. If I then navigate to another site,

| |

PowerShell: Sprachkonstrukte (Foreach- und While Schleife) – Part 17.3

4.4.3     Foreach-Schleife

Die Foreach-Schleife eignet sich, im Gegensatz zur For-Schleife, für die Verarbeitung von Sammlungen (Collections), welche eine unbekannte Anzahl von Elementen aufweisen. Für jedes Element der Sammlung kann innerhalb der Foreach-Schleife ein Anweisungsblock ausgeführt werden.

Foreach   
 (   
Foreach Schlüsselwort

<Varlable> 
In   
SchleifenvariableIn
Schlüsselwort

<Pipeline>  
)   
{   
Pipeline zur Verarbeitung

<StatementList>  

| |

WSUS Service stopped – do not install KB3148812 on Configuration Manager or WSUS servers

Last week Microsoft released Patch KB3148812 on Windows update. So this week we installed it on a customer ConfigMgr Sites (1x CAS, 2x Primary) due to an maintenance job.
The KB article says something about enabling ESD encryption for WSUS:

https://support.microsoft.com/en-us/kb/3148812

So here is my advice:

DO NOT INSTALL THIS UPDATE on WSUS or SCCM Servers!!!

At our environment it broke the WSUS Service completely.

| |

PowerShell: Sprachkonstrukte (For-Schleife) – Part 17.2

4.4.2     For-Schleife

Die For-Schleife ist eine einfache numerische Schleife. In der PowerShell ist sie als eine ausdrucksorientierte Schleife implementiert. Das hört sich kompliziert an, bedeutet aber nur, dass sie auch Pipelines verarbeiten kann. Die For-Schleife hat die folgende Syntax:

For
(

For Schlüsselwort

<Pipeline1>;
<Pipeline2>;
Initialisierungspipeline
Testpipeline

<Pipeline3>   
)   
{
Inkrementpipeline

<StatementList>

| |

PowerShell: Rückgabewerte von Funktionen, Kommentare und Hilfe – Part 16

Solange eine Funktion Befehle enthält, welche eine Bildschirmausgabe tätigen (und das tun fast alle Befehle), ist eine dedizierte Rückgabe von Werten aus einer Funktion nicht notwendig:

?

1
2
3
4
5
6
7
8

1.  PS X:\Temp> function Get-Density([Int32]$Mass, [Int32]$Volume)
2.  >> {$Mass/$Volume}
3.  >>
4.  Get-Density 40 100
0,4
5.  $a = Get-Density 33 50
6.  $a
0,66

 

Eine direkte Zuweisung einer Funktion zu einer Variablen speichert dort die Ausgabe der Funktion (ausgenommen sind hier Ausgaben,

| |

PowerShell: Die Parametersets – Part 15.3

4.1.6     Parametersets

Die erweiterte Parameterdefinition erlaubt es auch, sogenannte Parametersets zu definieren. Parametersets können mit dem Überladen von Funktionen in C# verglichen werden. Das Überladen von Funktionen hat zur Folge, dass eine Funktion unterschiedliche Signaturen*  haben kann, wobei jede Signatur ein abweichendes (oder zum Teil auch ein völlig anderes) Verhalten der Funktion bewirkt. Viele CMDLets der PowerShell verwenden diese Funktionalität (z.B. Invoke-Command implementiert sieben Parametersets, Test-Connection drei, etc.). Die erweiterte Parameterdefinition wird daher auch als CMDLet-Binding bezeichnet.