Windows PowerShell (powershell.exe) ist eine von Microsoft entwickelte Alternative zum Windows-Kommandozeilenprogramm cmd.exe und zum Windows Script Host. Die technischen Möglichkeiten besonders in Verbindung mit der IT Automatisierung werden in diesem Bereich aufgezeigt.

PowerShell Module als DLL in C# erstellen

In den Anfangstagen von PowerShell meinten wir mit PowerShell Cmdlets immer die PowerShell Funktionen, die mit einer DLL importiert werden. Zu diesem Zeitpunkt war das quasi der Standard. Das hat sich heute erheblich geändert. In den seltensten Fällen sehe ich heute Module, die als DLL erstellt wurden. Nun wollte ich gerade einige hardwarenahe Funktionen in PowerShell nutzen, die in der Kernal32 DLL hinterlegt sind. Natürlich kann man das auch alles direkt in PowerShell integrieren aber leider ist mein Antivirus bei einigen Ausdrücken mit einmal recht aggressiv geworden. Klar, als C++ Programm sind hardwarenahen Geschichten ok nur wurden diese Funktionen scheinbar in letzter Zeit in PowerShell für böse Dinge genutzt. Daher habe ich mich entschlossen, alles in eine C# DLL zu verpacken. Dieser Blog beschriebt nun, wie man so etwas macht. Also ein PowerShell Modul als C# DLL.

 

 

Weiterlesen
  12708 Aufrufe

PowerShell Codesignaturen und Upload in die PowerShell Gallerie

Letzten Freitag habe ich bei der PowerShell Usergroup Hannover kurz etwas zum Thema CodeSignieren für PowerShell Module zum Upload in die PowerShell Gallery erzählt. Nun, dass Interesse meine Kollegen war größer als gedacht und auch einige Frage ungeklärt. Hier hat sich auch einiges geändert. Fakt ist, die meisten Module auch in der Gallery sind unsigniert. Letztlich stellt sich auch immer die Frage, warum überhaupt signieren, wenn doch die PowerShell Executionpolicy so leicht ausgehebelt werden kann?

Beispielsweise ist es möglich, mit Powershell.exe -ExecutionPolicy Bypass -File <PathToPowershellSkript.ps1> beliebigen Code auszuführen.

Weiterlesen
  14146 Aufrufe

PowerShell enable and disable autologon with a generated local user

PowerShell to enable and disable the Windows autologon with an automatic generated password.

 In the automation, we have is often the case that an interactive desktop is required. This can be achieved with an autologon. Here is a PowerShell script for automating this function.

Weiterlesen
  23018 Aufrufe

Die ultimative Methode um mit Powershell .lnk Verknüpfung mit Icon zu erzeugen

posh 180x180Mir ist aktuell keine direkte Methode bekannt, mit der man mit einem einzigen Befehl eine Verknüpfung mit Parametern in Powershell erstellen kann. Jedoch kann man Objekte wie das WScript.Shall auch in PowerShell benutzen. Ich erinne mich zumindest wage, dass es in diesem Bereich eine Neuerung gab, konnte aber nichts finden. Hier nun dennoch die ultimativen Powershell Funktionen zur Erstellung von Shortcus. Dabei u.a. auch die Möglichkeit, administrative Shortcuts zu erzeugen, die eine Elevation der Anwendung bewirken. Als Parameter kann ein "ico" Icon File angegeben werden und ansonsetn wird versucht, mit den "Special Folders" zu arbeiten.

Weiterlesen
  48391 Aufrufe

Erstellung langjähriger Zertifikate zur Nutzung mit Citrix

Star 180x180Die gesamte Architektur einer XenDesktop 7.x Umgebung baut auf die Nutzung interner Zertifikate auf. Für die interne Nutzung, zum Beispiel für Verbindungen des StoreFront Servers mit dem Desktop Devlivery Controller möchte man Zertifikate nutzen, die nicht jedes Jahr ausgetauscht werden müssen. Ein Jahr ist die Standardeinstellung der Microsoft CA für Webserver Zertifikate. Zusätzlich soll gezeigt werden, dass auch eine Microsoft CA mit Powershell installiert werden kann. Die Microsoft CA, kann über die Windows Rollen einem jeden Windows Serversystem hinzugefügt werden. Mit der CA können sehr leicht Zertifikate erstellt werden, die zum Beispiel für eine Serverauthentifizierung gültig sind. Neuen Anforderungen entsprechend werden heute in Terminalserverumgebungen fast alle Datenwege verschlüsselt. Also auch die Kommunikation mit der Citrix STA sollte verschlüsselt erfolgen. Nun bietet die Microsoft CA im Standard nur Zertifikate für zwei Jahre an. Es ist jedoch möglich, ein eigenes Template zu erstellen, um langjährige Zertifikate zu generieren. Hier eine Beschreibung, wie das zu erreichen ist. Zuerst die Installation der Microsoft CA mit Powershell. Einige Einstellungen sollten unbedingt genau kontrolliert werden. Diese Konfiguration ist für die Erstellung eines schnellen Zertifikates gut. Das kann auch in einer Testumgebung erfolgen und anschließend werden die Zertifikate für die Produktionsumgebung nur auf den Servern importiert, wo diese benötigt werden. Jedoch sollte so keinesfalls für die Gesamtstruktur eines Unternehmens installiert werden. Eine CA, für E-Mail Verschlüsslung ist sorgfältig zu planen. Das Root Zertifikate der Installation wird automatisch im Active Directory repliziert. Ist also nach einiger Zeit auf allen Domänenmitgliedern verfügbar (Server/Clients). Es ist daher zu empfehlen, die „ValidityPeriod“ der Root kürzer zu halten, falls es einmal zu kritischen Sicherheitsproblemen kommt.

Weiterlesen
  17867 Aufrufe

Automatic Download and Install all Visual C++ Runtimes

Powershell Switch 180x180Here are two simple Powershell scripts to automatic download and install all Visual C++ Runtimes for X86 and X64 Systems (2005, 2008, 2010, 2012, 2013, 2015).

Download All VisualCRuntimes

Download the Visual C++ Runtime Modules:

Weiterlesen
  38050 Aufrufe
Markiert in:

Powershell Spielereien

Powershell Switch 180x180Im Laufe der Zeit haben sich einige Skripte, meist zu Testzwecken angesammelt, die aber durchaus nützlich sein können. An dieser Stelle eine veröffentlichung meiner Snipets. Dieser Beitrag kann später noch ergänzt werden.

Weiterlesen
  13572 Aufrufe

Powershell Backup mit Winrar

WRar180x180Vor einiger Zeit hatte ich das Problem, dass ich gerne Einzelbackups aller Spiele von Uplay und Origin haben wollte. Also einige löschen und später, bei Bedarf wieder recovern. Dafür habe ich dann ein kurzes Powershell Skript geschrieben, dass in Verbindung mit Winrar genau das erledigt. Ein Recovery habe ich nie getestet. Jedoch das Backup.

Hier das Skript dazu. WinRar muss installiert sein. Besonders die Nutzung von Winrar zur Archivierung mit Powershell dürfte auch für viele andere Zwecke Interessant sein.

Ich plane dafür ein Tool zu Bauen. Also ein Backup und Recovery Tool für Origin, UPlay und Steam. Hätte daran jemand interesse?

Weiterlesen
  14059 Aufrufe

Erster App-V Anwendungsstart unter Citrix XenDesktop 7 dauert ungewöhnlich lange

Powershell


In den letzten beiden XenDesktop 7 Projekten hatten wir das Problem, dass der erste Start einer veröffentlichten App-V Anwendung ungewöhnlich lange dauerte, aber jeder weitere Start in der Sitzung schnell ging. Meine erste Vermutung war, dass es unter Umständen eine Zeit dauert bis die virtuelle Umgebung für den Anwender geladen ist.

Es stellte sich jedoch heraus, dass in diesen ca. 25 sek. Verzögerung beim Erststart 81 Dateien durch Powershell ins Profil des Anwenders geschrieben werden, bevor die App-V Anwendung startet.


Wenn sie nicht da sind, werden sie erstellt, sind sie da wird nur eine dieser Dateien angefasst und der Start geht schnell. Die Dateien lassen sich auch zwischen verschiedenen Usern austauschen, da sie identisch sind.

Weiterlesen
  15783 Aufrufe
Markiert in:

mit Powershell die Gruppen und die SIDs der Gruppen holen

Hier ein kleines Skript, dass neben dem Gruppennamen über "Get-ACL" auch die SID holt. Das ist dann sinnvoll, wenn mehrsprachige Systeme voeliegen. Zumindest die lokalen SIDs sind eindeutig, auch wenn sich die Systemsprache unterscheidet.

# Andreas Nick 2015
param ([String] $Folder)

[System.Reflection.Assembly]::LoadWithPartialName("System.Security.Principal") | Out-Null

$List = get-acl $Folder

$List.Access | ForEach-Object {
    #[System.Security.AccessControl.FileSystemAccessRule] $r = $_; !
   
    $AdObj = New-Object System.Security.Principal.NTAccount -ArgumentList $_.IdentityReference
    $strSID = $AdObj.Translate([System.Security.Principal.SecurityIdentifier])
    
    Write-Host "Group :" $_.IdentityReference "     SID:" $strSID.Value
    
}




 

PS C:\Users\Andreas\Desktop> & .\GetACL-SID.ps1  -Folder C:\temp
Group : Jeder      SID: S-1-1-0
Group : VORDEFINIERT\Administratoren      SID: S-1-5-32-544
Group : NT-AUTORITÄT\SYSTEM      SID: S-1-5-18
Group : VORDEFINIERT\Benutzer      SID: S-1-5-32-545
Group : NT-AUTORITÄT\Authentifizierte Benutzer      SID: S-1-5-11
Group : NT-AUTORITÄT\Authentifizierte Benutzer      SID: S-1-5-11

 

 

 

Weiterlesen
  19414 Aufrufe
Markiert in:

Nick Informationstechnik GmbH
Dribusch 2
30539 Hannover

+49 (0) 511 165 810 190
+49 (0) 511 165 810 199

infonick-it.de

Newsletter

Anmeldung zum deutschen M.A.D. Newsletter mit Informationen zur Anwendungsvirtualisierung!

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.