IT-News

Mein IT-Langzeitgedächtnis.
In diesem Blog landen div. Scriptschnipsel die mir mal die Arbeit erleichtert haben.

Objekt via Powershell aus AD-Papierkorb wiederherstellen

Unter Windows 2008R2 ist das Wiederherstellen von gelöschten Objekten aus den AD-Papierkorb noch nicht über die GUI möglich.

Hier eine Kurzanleitung wie dies über die Powershell gelöst werden kann.

 

1. Objekt im Papierkorb suchen:

Get-ADObject -Filter {SamAccountname -like "User.*"} -IncludeDeletedObjects

 

2. Objekt wiederherstellen:

Get-ADObject -Filter {SamAccountname -like "User.xyz"} | Restore-ADObject

 

 

 

Force Delete VM in SCVMM 2012

Nach dem Restore einer VM hatte ich im SystemCenterVirtualMachineManager 2012 (SCVMM) auf einmal die VM doppelt angezeigt.

Einmal war der Status „Running“ und einmal „Failed“.

Leider lies sich die Vm nicht übers GUI löschen.
Dies lässt sich jedoch mittels Powershell lösen.

$VM = Get-VM -Name "zulöschendeVM" Remove-VM -VM $VM -Force

Falls wie in meinem Falle 2 VMs den selben Namen hatten muss zuerst die zu löschende VM gefunden werden.

Get-VM -Name printserver |fl Name,VirtualMachineState,ID
Name                : printserver
VirtualMachineState : Running
ID                  : 52c391ae-f7e5-47de-a291-4247ede69afb
Name                : printserver
VirtualMachineState : Failed
ID                  : DC04a63c-d5e5-12ee-843a-8f45ace34bcd

 

Der Get-VM Befehl musste nun so angepasst werden das nach der ID und nicht nach den Namen der VM gesucht wird.

In meinem Fall war das:

$VM = Get-VM -ID "DC04a63c-d5e5-12ee-843a-8f45ace34bcd" Remove-VM -VM $VM -Force

 

 

Execution Policy Change

Script ausführung ist unter Powershell über die Execution Policy geregelt.

Damit nicht jedesmal die Ausführung eines Scripts bestätigt werden muss, kann die Execution Policy auf Unrestricted gestellt werden.

Abfrage des momentanen Status.

Get-ExecutionPolicy

 

Ändern auf „Unrestricted“

Set-ExecutionPolicy unrestricted

Suchen in der Pipe

Erste Schritte mit Powershell.

Mit dem Befehl  get-service  werden alle Windowsdienste aufgelistet.

get-service

 

 

Es werden hier jedoch nur die Felder: Status, Name und Displayname angezeigt

 

Um alle Felder anzuzeigen kann mit  |FL *   alle verfügbaren Felder anzeigen lassen.

get-service |FL *

get-service02

 

Jetzt sind noch weitere Informationen wie z.B. Status und ServiecType ersichtlich.

 

Möchte man nur alle Ausgeführten Service auslisten, kann man das wie folgt.

Get-Service | ?{$_.Status -eq "Running"}

Alles Dienst mit Status „Running“ werden aufgelistet.

 

Auf die selbe Art kann auch nach allen Diensten mit „Windows“ im Displayname gesucht werden.

get-service | ? {$_.Displayname -like "*Windows*"}