Mit Exchange 2010 kann man pro Benutzer maximal 10 Mobile Geräte registrieren, die per Activesync auf Exchange zugreifen dürfen. Wenn diese Zahl bei einem Benutzer erreicht ist gilt es normalerweise Altlasten zu entfernen. Mit ein paar Powershell Befehlen kann man alte Geräte aufspüren, die sich eine bestimmte Zeit nicht mehr synchronisiert haben. Diese können Anschließend entfernt werden.
Category: Powershell (Page 3 of 5)
Es gibt 2 Methoden, um ein Powershell Script im Taksplaner zu starten. Wenn zum Ausführen des Scripts ein „elevated prompt“, als das Ausführen als Administrator nötig ist, muss im Reiter General der Haken bei „Mit höchsten Privilegien ausführen“ gesetzt sein.
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
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
$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
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.
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)
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).
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.
Um eine Liste der installierten Updates anzuzeigen:
wmic qfe list
Um das Update zu deinstallieren:
wusa /uninstall /kb:<kbnumber> /quiet