Freigeben über


Windows-Befehle – CMD und PowerShell

Gilt für: ✔️ Windows-VMs

Dieser Abschnitt enthält Beispielbefehle für allgemeine Aufgaben in Szenarios, in denen Sie ggf. über die spezielle Verwaltungskonsole (Special Administration Console, SAC) auf den virtuellen Windows-Computer zugreifen müssen, um beispielsweise Probleme mit RDP-Verbindungsfehlern zu behandeln.

SAC ist seit Windows Server 2003 in allen Windows-Versionen enthalten, standardmäßig aber deaktiviert. SAC basiert auf dem Kernel-Treiber sacdrv.sys, dem Dienst Special Administration Console Helper (sacsvr) und dem Prozess sacsess.exe. Weitere Informationen finden Sie unter Emergency Management Services Tools and Settings (Tools und Einstellungen für die Notverwaltungsdienste).

Mit SAC können Sie über den seriellen Port eine Verbindung mit dem aktiven Betriebssystem herstellen. Wenn Sie CMD über SAC starten, wird cmd.exe von sacsess.exe innerhalb Ihres aktiven Betriebssystems gestartet. Dies ist im Task-Manager zu sehen, wenn Sie eine RDP-Verbindung mit Ihrem virtuellen Computer herstellen, während über die serielle Konsole eine Verbindung mit SAC besteht. Bei der CMD-Instanz, auf die Sie über SAC zugreifen, handelt es sich um die Instanz von cmd.exe, die Sie auch verwenden, wenn Sie über RDP eine Verbindung herstellen. Ihnen stehen die gleichen Befehle und Tools zur Verfügung – einschließlich der Möglichkeit, PowerShell über diese CMD-Instanz zu starten. Dies ist ein entscheidender Unterschied zwischen SAC und der Windows-Wiederherstellungsumgebung (Windows Recovery Environment, WinRE), da Sie mit SAC Ihr aktives Betriebssystem verwalten können. Im Gegensatz dazu startet WinRE mit einem anderen, minimalen Betriebssystem. Virtuelle Azure-Computer unterstützen zwar den Zugriff auf WinRE nicht, können mit der seriellen Konsole aber über SAC verwaltet werden.

Da SAC auf einen 80x24-Bildschirmpuffer ohne Scrollback beschränkt ist, sollten Sie Befehle mit | more versehen, damit die Ausgabe seitenweise erfolgt. Verwenden Sie <spacebar>, um die nächste Seite anzuzeigen, oder <enter>, um die nächste Zeile anzuzeigen.

SHIFT+INSERT ist im Fenster der seriellen Konsole die Tastenkombination für „Einfügen“.

Aufgrund des eingeschränkten Bildschirmpuffers von SAC empfiehlt es sich bei der Eingabe längerer Befehle, diese in einen lokalen Text-Editor einzugeben und sie anschließend in SAC einzufügen.

Anzeigen und Bearbeiten von Windows-Registrierungseinstellungen mit CMD

Überprüfen, ob RDP aktiviert ist

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDenyTSConnections

Der zweite Schlüssel (unter „\Policies“) ist nur vorhanden, wenn die relevante Gruppenrichtlinieneinstellung konfiguriert ist.

Aktivieren von RDP

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDenyTSConnections /t REG_DWORD /d 0

Der zweite Schlüssel (unter „\Policies“) ist nur erforderlich, wenn die relevante Gruppenrichtlinieneinstellung konfiguriert wurde. Der Wert wird bei der nächsten Gruppenrichtlinienaktualisierung umgeschrieben, sofern dies in der Gruppenrichtlinie konfiguriert ist.

Verwalten von Windows-Diensten mit CMD

Anzeigen des Dienststatus

sc query termservice

Anzeigen des Anmeldekontos für den Dienst

sc qc termservice

Festlegen des Anmeldekontos für den Dienst

sc config termservice obj= "NT Authority\NetworkService"

Nach dem Gleichheitszeichen muss sich ein Leerzeichen befinden.

Festlegen des Starttyps für den Dienst

sc config termservice start= demand

Nach dem Gleichheitszeichen muss sich ein Leerzeichen befinden. Mögliche Startwerte: boot, system, auto, demand, disabled, delayed-auto

Festlegen von Dienstabhängigkeiten

sc config termservice depend= RPCSS

Nach dem Gleichheitszeichen muss sich ein Leerzeichen befinden.

Dienst starten

net start termservice

oder

sc start termservice

Dienst beenden

net stop termservice

oder

sc stop termservice

Verwalten von Netzwerkfeatures mit CMD

Anzeigen der NIC-Eigenschaften

netsh interface show interface

Anzeigen der IP-Eigenschaften

netsh interface ip show config

Anzeigen der IPsec-Konfiguration

netsh nap client show configuration

Aktivieren der NIC

netsh interface set interface name="<interface name>" admin=enabled

Konfigurieren der NIC für die DHCP-Verwendung

netsh interface ip set address name="<interface name>" source=dhcp

Für weitere Informationen netshklicken Sie hier.

Virtuelle Azure-Computer müssen im Gastbetriebssystem immer so konfiguriert werden, dass sie eine IP-Adresse über DHCP beziehen. DHCP wird auch bei Verwendung der Azure-Einstellung für statische IP-Adressen verwendet, um die statische IP-Adresse für den virtuellen Computer zu vergeben.

Ping

ping 8.8.8.8

Pingen eines Ports

Installieren des Telnet-Clients

dism /online /Enable-Feature /FeatureName:TelnetClient

Testen der Konnektivität

telnet bing.com 80

Entfernen des Telnet-Clients

dism /online /Disable-Feature /FeatureName:TelnetClient

Wenn Sie auf die standardmäßig in Windows verfügbaren Methoden beschränkt sind, empfiehlt es sich ggf., die Portkonnektivität mithilfe von PowerShell zu testen. Entsprechende Beispiele finden Sie weiter unten im PowerShell-Abschnitt.

Testen der DNS-Namensauflösung

nslookup bing.com

Anzeigen einer Windows-Firewallregel

netsh advfirewall firewall show rule name="Remote Desktop - User Mode (TCP-In)"

Deaktivieren der Windows-Firewall

netsh advfirewall set allprofiles state off

Mit diesem Befehl können Sie die Windows-Firewall bei der Problembehandlung vorübergehend deaktivieren. Sie wird beim nächsten Neustart wieder aktiviert (oder nach Verwendung des im Anschluss angegebenen Befehls). Beenden Sie nicht den Windows-Firewalldienst (MPSSVC) oder den BFE-Dienst (Base Filtering Engine, Basisfiltermodul), um die Windows-Firewall zu deaktivieren. Wenn Sie MPSSVC oder BFE beenden, werden sämtliche Verbindungen blockiert.

Aktivieren der Windows-Firewall

netsh advfirewall set allprofiles state on

Verwalten von Benutzern und Gruppen mit CMD

Erstellen eines lokalen Benutzerkontos

net user /add <username> <password>

Hinzufügen eines lokalen Benutzers zu einer lokalen Gruppe

net localgroup Administrators <username> /add

Überprüfen, ob ein Benutzerkonto aktiviert ist

net user <username> | find /i "active"

Bei virtuellen Azure-Computern, die auf der Grundlage eines generalisierten Images erstellt wurden, wird der Name des lokalen Administratorkontos auf den Namen festgelegt, der im Rahmen der VM-Bereitstellung angegeben wurde. Er lautet also in der Regel nicht Administrator.

Aktivieren eines Benutzerkontos

net user <username> /active:yes

Anzeigen der Eigenschaften des Benutzerkontos

net user <username>

Beispiele für interessante Zeilen aus einem lokalen Administratorkonto:

Account active Yes

Account expires Never

Password expires Never

Workstations allowed All

Logon hours allowed All

Local Group Memberships *Administrators

Anzeigen lokaler Gruppen

net localgroup

Verwalten des Windows-Ereignisprotokolls mit CMD

Abfragen von Ereignisprotokollfehlern

wevtutil qe system /c:10 /f:text /q:"Event[System[Level=2]]" | more

Geben Sie für /c:10 die Anzahl zurückzugebender Ereignisse an, oder entfernen Sie die Angabe, um alle dem Filter entsprechenden Ereignisse zurückzugeben.

Abfragen des Ereignisprotokolls nach Ereignis-ID

wevtutil qe system /c:1 /f:text /q:"Event[System[EventID=11]]" | more

Abfragen des Ereignisprotokolls nach Ereignis-ID und Anbieter

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-Hyper-V-Netvsc'] and EventID=11]]" | more

Abfragen des Ereignisprotokolls nach Ereignis-ID und Anbieter für die letzten 24 Stunden

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-Hyper-V-Netvsc'] and EventID=11 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"

Verwenden Sie 604800000, um den Zeitraum von 24 Stunden auf sieben Tage zu verlängern.

Abfragen des Ereignisprotokolls nach Ereignis-ID, Anbieter und Ereignisdaten in den letzten sieben Tagen

wevtutil qe security /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4624 and TimeCreated[timediff(@SystemTime) <= 604800000]] and EventData[Data[@Name='TargetUserName']='<username>']]" | more

Anzeigen oder Entfernen installierter Anwendungen mit CMD

Auflisten der installierten Anwendungen

wmic product get Name,InstallDate | sort /r | more

Durch sort /r werden die Elemente absteigend nach Installationsdatum sortiert. So können Sie ganz einfach erkennen, was zuletzt installiert wurde. Verwenden Sie <spacebar>, um die nächste Seite der Ausgabe anzuzeigen, oder <enter>, um die nächste Zeile anzuzeigen.

Deinstallieren einer Anwendung

wmic path win32_product where name="<name>" call uninstall

Ersetzen Sie <name> durch den Namen, der im obigen Befehl für die Anwendung zurückgegeben wurde, die Sie entfernen möchten.

Dateisystemverwaltung mit CMD

Abrufen der Dateiversion

wmic datafile where "drive='C:' and path='\\windows\\system32\\drivers\\' and filename like 'netvsc%'" get version /format:list

Dieses Beispiel gibt die Dateiversion des virtuellen NIC-Treibers zurück (je nach Windows-Version entweder „netvsc.sys“, „netvsc63.sys“ oder „netvsc60.sys“).

Überprüfen des Dateisystems auf Beschädigungen

sfc /scannow

Siehe auch: Repair a Windows Image (Reparieren eines Windows-Images)

Überprüfen des Dateisystems auf Beschädigungen

dism /online /cleanup-image /scanhealth

Siehe auch: Repair a Windows Image (Reparieren eines Windows-Images)

Exportieren von Dateiberechtigungen in eine Textdatei

icacls %programdata%\Microsoft\Crypto\RSA\MachineKeys /t /c > %temp%\MachineKeys_permissions_before.txt

Speichern von Dateiberechtigungen in einer ACL-Datei

icacls %programdata%\Microsoft\Crypto\RSA\MachineKeys /save %temp%\MachineKeys_permissions_before.aclfile /t

Wiederherstellen von Dateiberechtigungen aus einer ACL-Datei

icacls %programdata%\Microsoft\Crypto\RSA /save %temp%\MachineKeys_permissions_before.aclfile /t

Bei Verwendung von /restore muss als Pfad der übergeordnete Ordner des Ordners angegeben werden, den Sie bei Verwendung von /save angegeben haben. In diesem Beispiel ist \RSA der übergeordnete Ordner des Ordners \MachineKeys aus dem obigen Beispiel für /save.

Übernehmen des NTFS-Besitzes eines Ordners

takeown /f %programdata%\Microsoft\Crypto\RSA\MachineKeys /a /r

Rekursives Gewähren von NTFS-Berechtigungen für einen Ordner

icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)"

Verwalten von Geräten

Entfernen nicht vorhandener Plug & Play-Geräte

%windir%\System32\RUNDLL32.exe %windir%\System32\pnpclean.dll,RunDLL_PnpClean /Devices /Maxclean

Verwalten von Gruppenrichtlinien

Erzwingen einer Gruppenrichtlinienaktualisierung

gpupdate /force /wait:-1

Sonstige Aufgaben mit CMD

Anzeigen der Betriebssystemversion

ver

oder

wmic os get caption,version,buildnumber /format:list

oder

systeminfo find /i "os name"

systeminfo | findstr /i /r "os.*version.*build"

Anzeigen des Installationsdatums des Betriebssystems

systeminfo | find /i "original"

oder

wmic os get installdate

Anzeigen des letzten Systemstarts

systeminfo | find /i "system boot time"

Anzeigen der Zeitzone

systeminfo | find /i "time zone"

oder

wmic timezone get caption,standardname /format:list

Neustarten von Windows

shutdown /r /t 0

Durch Hinzufügen von /f werden aktive Anwendungen ohne Vorwarnung geschlossen.

Erkennen des Starts im abgesicherten Modus

bcdedit /enum | find /i "safeboot"

Windows-Befehle – PowerShell

Wenn Sie PowerShell in SAC ausführen möchten, geben Sie an einer CMD-Eingabeaufforderung Folgendes ein:

powershell <enter>

Achtung

Entfernen Sie zunächst das PSReadLine-Modul aus der PowerShell-Sitzung, bevor Sie andere PowerShell-Befehle ausführen. Es gibt ein bekanntes Problem, durch das beim Einfügen von Text aus der Zwischenablage unter Umständen zusätzliche Zeichen eingefügt werden, wenn „PSReadLine“ in einer PowerShell-Sitzung in SAC ausgeführt wird.

Überprüfen Sie zunächst, ob „PSReadLine“ geladen ist. Dies ist unter Windows Server 2016 sowie unter Windows 10 und höheren Versionen von Windows standardmäßig der Fall. Bei älteren Windows-Versionen ist das Modul nur vorhanden, wenn es manuell installiert wurde.

Wenn dieser Befehl nichts zurückgibt, war das Modul nicht geladen, und Sie können die PowerShell-Sitzung in SAC wie gewohnt verwenden.

get-module psreadline

Falls der obige Befehl die Version des PSReadLine-Moduls zurückgibt, führen Sie den folgenden Befehl aus, um es zu entladen. Durch diesen Befehl wird das Modul nicht gelöscht oder deinstalliert, sondern lediglich aus der aktuellen PowerShell-Sitzung entladen.

remove-module psreadline

Anzeigen und Bearbeiten von Windows-Registrierungseinstellungen mit PowerShell

Überprüfen, ob RDP aktiviert ist

get-itemproperty -path 'hklm:\system\curRentcontrolset\control\terminal server' -name 'fdenytsconNections'

get-itemproperty -path 'hklm:\software\policies\microsoft\windows nt\terminal services' -name 'fdenytsconNections'

Der zweite Schlüssel (unter „\Policies“) ist nur vorhanden, wenn die relevante Gruppenrichtlinieneinstellung konfiguriert ist.

Aktivieren von RDP

set-itemproperty -path 'hklm:\system\curRentcontrolset\control\terminal server' -name 'fdenytsconNections' 0 -type dword

set-itemproperty -path 'hklm:\software\policies\microsoft\windows nt\terminal services' -name 'fdenytsconNections' 0 -type dword

Der zweite Schlüssel (unter „\Policies“) ist nur erforderlich, wenn die relevante Gruppenrichtlinieneinstellung konfiguriert wurde. Der Wert wird bei der nächsten Gruppenrichtlinienaktualisierung umgeschrieben, sofern dies in der Gruppenrichtlinie konfiguriert ist.

Verwalten von Windows-Diensten mit PowerShell

Anzeigen von Dienstdetails

get-wmiobject win32_service -filter "name='termservice'" | format-list Name,DisplayName,State,StartMode,StartName,PathName,ServiceType,Status,ExitCode,ServiceSpecificExitCode,ProcessId

Get-Service kann verwendet werden, beinhaltet aber das Dienstanmeldekonto nicht. Get-WmiObject win32-service dagegen schon.

Festlegen des Anmeldekontos für den Dienst

(get-wmiobject win32_service -filter "name='termservice'").Change($null,$null,$null,$null,$null,$false,'NT Authority\NetworkService')

Geben Sie bei Verwendung eines Dienstkontos, bei dem es sich nicht um NT AUTHORITY\LocalService, NT AUTHORITY\NetworkService oder LocalSystem handelt, das Kontokennwort als letztes (achtes) Argument nach dem Kontonamen ein.

Festlegen des Starttyps des Diensts

set-service termservice -startuptype Manual

Set-service akzeptiert Automatic, Manual oder Disabled als Starttyp.

Festlegen von Dienstabhängigkeiten

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\TermService' -Name DependOnService -Value @('RPCSS','TermDD')

Dienst starten

start-service termservice

Dienst beenden

stop-service termservice

Verwalten von Netzwerkfeatures mit PowerShell

Anzeigen der NIC-Eigenschaften

get-netadapter | where {$_.ifdesc.startswith('Microsoft Hyper-V Network Adapter')} | format-list status,name,ifdesc,macadDresS,driverversion,MediaConNectState,MediaDuplexState

oder

get-wmiobject win32_networkadapter -filter "servicename='netvsc'" | format-list netenabled,name,macaddress

Get-NetAdapter ist ab 2012 verfügbar. Für 2008R2 muss Get-WmiObject verwendet werden.

Anzeigen der IP-Eigenschaften

get-wmiobject Win32_NetworkAdapterConfiguration -filter "ServiceName='netvsc'" | format-list DNSHostName,IPAddress,DHCPEnabled,IPSubnet,DefaultIPGateway,MACAddress,DHCPServer,DNSServerSearchOrder

Aktivieren der NIC

get-netadapter | where {$_.ifdesc.startswith('Microsoft Hyper-V Network Adapter')} | enable-netadapter

oder

(get-wmiobject win32_networkadapter -filter "servicename='netvsc'").enable()

Get-NetAdapter ist ab 2012 verfügbar. Für 2008R2 muss Get-WmiObject verwendet werden.

Konfigurieren der NIC für die DHCP-Verwendung

get-netadapter | where {$_.ifdesc.startswith('Microsoft Hyper-V Network Adapter')} | Set-NetIPInterface -DHCP Enabled

(get-wmiobject Win32_NetworkAdapterConfiguration -filter "ServiceName='netvsc'").EnableDHCP()

Get-NetAdapter ist ab 2012 verfügbar. Für 2008R2 muss Get-WmiObject verwendet werden. Virtuelle Azure-Computer müssen im Gastbetriebssystem immer so konfiguriert werden, dass sie eine IP-Adresse über DHCP beziehen. DHCP wird auch bei Verwendung der Azure-Einstellung für statische IP-Adressen verwendet, um die IP-Adresse für den virtuellen Computer zu vergeben.

Ping

test-netconnection

Notiz

Das Write-Progress-Cmdlet funktioniert möglicherweise nicht mit diesem Befehl. Als Abhilfemaßnahme können Sie $ProgressPreference = "SilentlyContinue" in PowerShell ausführen, um die Statusanzeige zu deaktivieren.

oder

get-wmiobject Win32_PingStatus -Filter 'Address="8.8.8.8"' | format-table -autosize IPV4Address,ReplySize,ResponseTime

Bei Verwendung von Test-Netconnection ohne Parameter wird versucht, internetbeacon.msedge.net zu pingen. Diese Option ist ab 2012 verfügbar. Für 2008R2 muss wie im zweiten Beispiel Get-WmiObject verwendet werden.

Pingen eines Ports

test-netconnection -ComputerName bing.com -Port 80

oder

(new-object Net.Sockets.TcpClient).BeginConnect('bing.com','80',$null,$null).AsyncWaitHandle.WaitOne(300)

Test-NetConnection ist ab 2012 verfügbar. Für 2008R2 muss Net.Sockets.TcpClient verwendet werden.

Testen der DNS-Namensauflösung

resolve-dnsname bing.com

oder

[System.Net.Dns]::GetHostAddresses('bing.com')

Resolve-DnsName ist ab 2012 verfügbar. Für 2008R2 muss System.Net.DNS verwendet werden.

Anzeigen einer Windows-Firewallregel nach Name

get-netfirewallrule -name RemoteDesktop-UserMode-In-TCP

Anzeigen einer Windows-Firewallregel nach Port

get-netfirewallportfilter | where {$_.localport -eq 3389} | foreach {Get-NetFirewallRule -Name $_.InstanceId} | format-list Name,Enabled,Profile,Direction,Action

oder

(new-object -ComObject hnetcfg.fwpolicy2).rules | where {$_.localports -eq 3389 -and $_.direction -eq 1} | format-table Name,Enabled

Get-NetFirewallPortFilter ist ab 2012 verfügbar. Für 2008R2 muss das COM-Objekt hnetcfg.fwpolicy2 verwendet werden.

Deaktivieren der Windows-Firewall

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

Set-NetFirewallProfile ist ab 2012 verfügbar. Für 2008R2 muss netsh advfirewall wie im obigen CMD-Abschnitt angegeben verwendet werden.

Verwalten von Benutzern und Gruppen mit PowerShell

Erstellen eines lokalen Benutzerkontos

new-localuser <name>

Überprüfen, ob ein Benutzerkonto aktiviert ist

(get-localuser | where {$_.SID -like "S-1-5-21-*-500"}).Enabled

oder

(get-wmiobject Win32_UserAccount -Namespace "root\cimv2" -Filter "SID like 'S-1-5-%-500'").Disabled

Get-LocalUser ist ab 2012 verfügbar. Für 2008R2 muss Get-WmiObject verwendet werden. Dieses Beispiel zeigt das integrierte lokale Administratorkonto, welches immer die SID S-1-5-21-*-500 besitzt. Bei virtuellen Azure-Computern, die auf der Grundlage eines generalisierten Images erstellt wurden, wird der Name des lokalen Administratorkontos auf den Namen festgelegt, der im Rahmen der VM-Bereitstellung angegeben wurde. Er lautet also in der Regel nicht Administrator.

Hinzufügen eines lokalen Benutzers zu einer lokalen Gruppe

add-localgroupmember -group Administrators -member <username>

Aktivieren eines lokalen Benutzerkontos

get-localuser | where {$_.SID -like "S-1-5-21-*-500"} | enable-localuser

Dieses Beispiel aktiviert das integrierte lokale Administratorkonto, welches immer die SID S-1-5-21-*-500 besitzt. Bei virtuellen Azure-Computern, die auf der Grundlage eines generalisierten Images erstellt wurden, wird der Name des lokalen Administratorkontos auf den Namen festgelegt, der im Rahmen der VM-Bereitstellung angegeben wurde. Er lautet also in der Regel nicht Administrator.

Anzeigen der Eigenschaften des Benutzerkontos

get-localuser | where {$_.SID -like "S-1-5-21-*-500"} | format-list *

oder

get-wmiobject Win32_UserAccount -Namespace "root\cimv2" -Filter "SID like 'S-1-5-%-500'" | format-list Name,Disabled,Status,Lockout,Description,SID

Get-LocalUser ist ab 2012 verfügbar. Für 2008R2 muss Get-WmiObject verwendet werden. Dieses Beispiel zeigt das integrierte lokale Administratorkonto, welches immer die SID S-1-5-21-*-500 besitzt.

Anzeigen lokaler Gruppen

(get-localgroup).name | sort (get-wmiobject win32_group).Name | sort

Get-LocalUser ist ab 2012 verfügbar. Für 2008R2 muss Get-WmiObject verwendet werden.

Verwalten des Windows-Ereignisprotokolls mit PowerShell

Abfragen von Ereignisprotokollfehlern

get-winevent -logname system -maxevents 1 -filterxpath "*[System[Level=2]]" | more

Geben Sie für /c:10 die Anzahl zurückzugebender Ereignisse an, oder entfernen Sie die Angabe, um alle dem Filter entsprechenden Ereignisse zurückzugeben.

Abfragen des Ereignisprotokolls nach Ereignis-ID

get-winevent -logname system -maxevents 1 -filterxpath "*[System[EventID=11]]" | more

Abfragen des Ereignisprotokolls nach Ereignis-ID und Anbieter

get-winevent -logname system -maxevents 1 -filterxpath "*[System[Provider[@Name='Microsoft-Windows-Hyper-V-Netvsc'] and EventID=11]]" | more

Abfragen des Ereignisprotokolls nach Ereignis-ID und Anbieter für die letzten 24 Stunden

get-winevent -logname system -maxevents 1 -filterxpath "*[System[Provider[@Name='Microsoft-Windows-Hyper-V-Netvsc'] and EventID=11 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"

Verwenden Sie 604800000, um den Zeitraum von 24 Stunden auf sieben Tage zu verlängern. |

Abfragen des Ereignisprotokolls nach Ereignis-ID, Anbieter und Ereignisdaten in den letzten sieben Tagen

get-winevent -logname system -maxevents 1 -filterxpath "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4624 and TimeCreated[timediff(@SystemTime) <= 604800000]] and EventData[Data[@Name='TargetUserName']='<username>']]" | more

Anzeigen oder Entfernen installierter Anwendungen mit PowerShell

Auflisten der installierten Software

get-wmiobject win32_product | select installdate,name | sort installdate -descending | more

Deinstallieren von Software

(get-wmiobject win32_product -filter "Name='<name>'").Uninstall()

Dateisystemverwaltung mit PowerShell

Abrufen der Dateiversion

(get-childitem $env:windir\system32\drivers\netvsc*.sys).VersionInfo.FileVersion

Dieses Beispiel gibt die Dateiversion des virtuellen NIC-Treibers zurück, der je nach Windows-Version entweder „netvsc.sys“, „netvsc63.sys“ oder „netvsc60.sys“ heißt.

Herunterladen und Extrahieren einer Datei

$path='c:\bin';md $path;cd $path;(new-object net.webclient).downloadfile( ('htTp:/'+'/download.sysinternals.com/files/SysinternalsSuite.zip'),"$path\SysinternalsSuite.zip");(new-object -com shelL.apPlication).namespace($path).CopyHere( (new-object -com shelL.apPlication).namespace("$path\SysinternalsSuite.zip").Items(),16)

Dieses Beispiel erstellt den Ordner c:\bin, lädt die Sysinternals-Tools herunter, und extrahiert sie in c:\bin.

Sonstige Aufgaben mit PowerShell

Anzeigen der Betriebssystemversion

get-wmiobject win32_operatingsystem | format-list caption,version,buildnumber

Anzeigen des Installationsdatums des Betriebssystems

(get-wmiobject win32_operatingsystem).converttodatetime((get-wmiobject win32_operatingsystem).installdate)

Anzeigen des letzten Systemstarts

(get-wmiobject win32_operatingsystem).lastbootuptime

Anzeigen der Betriebszeit von Windows

"{0:dd}:{0:hh}:{0:mm}:{0:ss}.{0:ff}" -f ((get-date)-(get-wmiobject win32_operatingsystem).converttodatetime((get-wmiobject win32_operatingsystem).lastbootuptime))

Gibt die Betriebszeit als <days>:<hours>:<minutes>:<seconds>:<milliseconds> zurück (beispielsweise 49:16:48:00.00).

Neustarten von Windows

restart-computer

Durch Hinzufügen von -force werden aktive Anwendungen ohne Vorwarnung geschlossen.

Instanzmetadaten

Sie können Azure-Instanzmetadaten aus Ihrem virtuellen Azure-Computer abfragen, um Details wie Betriebssystemtyp (osType), Standort (location), VM-Größe (vmSize), VM-ID (vmId), Name (name), Ressourcengruppenname (resourceGroupName), Abonnement-ID (subscriptionId), private IP-Adresse (privateIpAddress) und öffentliche IP-Adresse (publicIpAddress) anzuzeigen.

Voraussetzung für das Abfragen von Instanzmetadaten ist eine ordnungsgemäß funktionierende Gastnetzwerkverbindung, da hierzu ein REST-Aufruf über den Azure-Host an den Instanzmetadatendienst gerichtet werden muss. Wenn Sie also Instanzmetadaten abfragen können, kann der Gast über das Netzwerk mit einem von Azure gehosteten Dienst kommunizieren.

Weitere Informationen finden Sie unter Azure-Instanzmetadatendienst.

Instanzmetadaten

$im = invoke-restmethod -headers @{"metadata"="true"} -uri http://169.254.169.254/metadata/instance?api-version=2017-08-01 -method get

$im | convertto-json

Betriebssystemtyp (Instanzmetadaten)

$im.Compute.osType

Standort (Instanzmetadaten)

$im.Compute.Location

Größe (Instanzmetadaten)

$im.Compute.vmSize

VM-ID (Instanzmetadaten)

$im.Compute.vmId

VM-Name (Instanzmetadaten)

$im.Compute.name

Ressourcengruppenname (Instanzmetadaten)

$im.Compute.resourceGroupName

Abonnement-ID (Instanzmetadaten)

$im.Compute.subscriptionId

Tags (Instanzmetadaten)

$im.Compute.tags

Platzierungsgruppen-ID (Instanzmetadaten)

$im.Compute.placementGroupId

Fehlerdomäne der Plattform (Instanzmetadaten)

$im.Compute.platformFaultDomain

Updatedomäne der Plattform (Instanzmetadaten)

$im.Compute.platformUpdateDomain

Private IPv4-IP-Adresse (Instanzmetadaten)

$im.network.interface.ipv4.ipAddress.privateIpAddress

Öffentliche IPv4-IP-Adresse (Instanzmetadaten)

$im.network.interface.ipv4.ipAddress.publicIpAddress

IPv4-Subnetzadresse/Prefix (Instanzmetadaten)

$im.network.interface.ipv4.subnet.address

$im.network.interface.ipv4.subnet.prefix

IPv6-IP-Adresse (Instanzmetadaten)

$im.network.interface.ipv6.ipAddress

MAC-Adresse (Instanzmetadaten)

$im.network.interface.macAddress

Nächste Schritte

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.