K.inc Tec Blog

Mein kleines EDV Logbuch

PowerShell User zu SID und SID zu User

SID anhand eines Active Directory Benutzernamens

$objUser = New-Object System.Security.Principal.NTAccount("DOMÄNEN-NAME", "BENUTZERNAME")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

Benutzernamen anhand einer SID

$objSID = New-Object System.Security.Principal.SecurityIdentifier `
("SID")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value

SID für einen lokalen Benutzer

$objUser = New-Object System.Security.Principal.NTAccount("LOKALER-BENUTZER")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

VMware PowerCLI installieren

Eine entsprechende PowerShell Version wird vorausgesetzt. Zur Zeit dieses Beitrags war die PowerCLI in Version 6.5.2 aktuell. Diese benötigte mindest die PowerShell in Version 3.

Inspect

PS> Save-Module -Name VMware.PowerCLI -Path <path>

Install

PS> Install-Module -Name VMware.PowerCLI

Linux Netzwerk manuell konfigurieren

Konfiguration für DHCP

auto eth0
iface dhcp eth0 dhcp

Manuelle Konfiguration

iface lan inet static
  address 192.168.1.2/24
  gateway 192.168.1.1
  dns-nameservers 192.168.1.1 192.168.1.254
  dns-search test.de

Gruppenrichtlinie für lokalen Benutzer ausrollen

Die GPO werden für lokale Benutzer trotz der Loopback Einstellung nicht gezogen. Das ist kein Bug, sondern by Design. Mit ein paar Tricks kann man eine Gruppenrichtlinie trotzdem lokal ausrollen, ohne die Einstellungen manuell vornehmen zu müssen.

1. Gruppenrichtlinie identifizieren
In der Gruppenrichtlinienverwaltung die ID der Gruppenrichtlinie (Reiter Details) notieren
2. Gruppenrichtlinie kopieren
Unter
C:\Windows\SYSVOL\\Policies
die Gruppenrichtlinie anhand der ID identifizieren, den Inhalt aus dem Ordner kopieren.
3. Lokale Computerkonfiguration
Die lokale Computerkonfiguration wird unter C:\Windows\System32\GroupPolicy gespeichert. Einfach den kopierten Inhalt dort einfügen.
4. Lokale Benutzerkonfiguration
Die lokale Benutzerkonfiguration wird unter einem Unterordner von C:\Windows\System32\GroupPolicyUsers gespeichert. Genauer gesagt entspricht der Name des Unterordners der SID des Benutzers. Um hier einen Ordner mit dieser SID von Windows anlegen zu lassen kann man die MMC starten, Gruppenrichtlinienobjekt-Editor wählen, hinzufügen klicken, in dem aufpeppenden Fenster Durchsuchen wählen, Reiter Benutzer anklicken, Benutzer auswählen, Ok. Nun eine Einstellung in den Gruppenrichtlinien vornehmen, die sowieso vorgenommen werden soll. Dann die unter Punkt 2 kopierten Dateien nach C:\Windows\System32\GroupPolicyUsers unterhalb des Ordners mit der Benutzer SID kopieren.

Fehlende ADMX Dateie, wie z.B. bei Office sollten vorher nach C:\Windows\PolicyDefinitions kopiert werden.

Windows Dienst löschen

Um einen Dienst zu löschen benötigt man den service Namen. Diesen Namen findet man, wenn man in die Eigenschaften von einem Dienst geht. Oder durch folgende Befehler, falls die Eigenschaftsseite nicht mehr aufrufbar ist.

Alle Dienste auflisten

sc queryex type= service state= all

Nach Dienst mit bestimmten Namen suchen

sc queryex type= service state= all | find /i "Exchange"

Dienst löschen

sc delete "service name"

PowerShell Ausgaben loggen

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"

# Debug
#$DebugPreference = "SilentlyContinue"
$DebugPreference = "Continue"
#$DebugPreference = "Stop"

Start-Transcript -path ("C:\log.txt") -append

#### Code Hier einfügen ####

Stop-Transcript

NetPhone Call Routing – PowerShell Script ausführen

Man kann im Call Routing von NetPhone zwar VBScript nutzen, ist mit den Möglichkeiten jedoch sehr eingeschränkt. Mit Hilfe von PowerShell lassen sich alle erdenklichen Szenarien abbilden.

PowerShell NetworkCredentials

Um sich gegenüber einer Webseite zu identifizieren

$webclient = new-object System.Net.WebClient
$webclient.Credentials = new-object System.Net.NetworkCredential($username, $password, $domain)
$webpage = $webclient.DownloadString($url)

PowerShell Securestring

Einen Securestring benötigt man z.B. um ein Credential Object zu erstellen. Man kann den String in einer Datei speichern oder direkt im Script mit angeben (aus Sicherheitsgründen ungut).

PowerShell Remoteinstallation starten

Aus mir unbekannten Gründen funktioniert das Starten von Remoteinstallationsprozessen mit dem PowerShell CMDlet invoke-command nicht. Man kann einen Prozess aber auch per WMI starten. Hier die entsprechende Funktion dafür.

Seite 18 von 24

Präsentiert von WordPress & Theme erstellt von Anders Norén