Premium Partner

Powershell, Karten 91-120

Powershell Grundlagen

Powershell Grundlagen

Nicht sichtbar

Nicht sichtbar

Kartei Details

Karten 13
Sprache Deutsch
Kategorie Informatik
Stufe Berufslehre
Erstellt / Aktualisiert 08.12.2015 / 19.01.2022
Lizenzierung Keine Angabe
Weblink
https://card2brain.ch/box/powershell_karten_91120_
Einbinden
<iframe src="https://card2brain.ch/box/powershell_karten_91120_/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Können Powershell jobs welche von anderen Usern gestartet worden sind angeschaut werden?

Nein, ausser Scheduled Jobs

das folgende Command funktioniert nicht. Wieso und wie kann es erfolgreich umgesetzt werden?
gwmi win32_networkadapterconfiguration -filter "description like '%intel%'" | EnableDHCP()

Objekte können nicht zu Methoden "gepiped" werden. Command Invoke-WmiMethod verwenden:
gwmi win32_networkadapterconfiguration -filter "description like '%intel%'" | Invoke-WmiMethod -name EnableDHCP
Oder besser Get-CimInstance und Invoke-CimMethod verwenden.
Get-CimInstance -classname win32_networkadapterconfiguration -filter "description like '%intel%'" | Invoke-CimMethod -methodname EnableDHCP

Der Output von Invoke-WmiMethod kann verwirrend sein. Es werden viele System Properties Bsp: __GENUS angezeigt (fangen mit 2 _ an). Wichtig ist der ReturnValue, online prüfen was dies bedeuted.
Evtl. gibt es in neueren Powershell Version bereits besser cmdlets (Wrapper) für diese Anwendung.

Wieso gibt dieses command einen Fehler? ($null=ändert den Paramenter nicht, lässt ihn wie er war)
gwmi win32_service -filter "name = 'BITS'" | invoke-wmimethod -name change -arg $null,$null,$null,$null,$null,$null,$null,"P@ssw0rd"

Manchmal ist es auch besser einen anderen Ansatz zu wählen als dem Problem auf den Grund zu gehen.
Get-WmiObject Win32_Service -filter "name = 'BITS'" | ForEach-Object -process { $_.change($null,$null,$null,$null,$null,$null,$null,"P@ssw0rd")}

Was ist der Unterschied zwischen diesen 5 commands?
Get-Service -name *B* | Stop-Service
Get-Service -name *B* | ForEach-Object { $_.Stop() }
Get-WmiObject Win32_Service -filter "name LIKE '%B%' | Invoke-WmiMethod -name StopService
Get-WmiObject Win32_Service -filter "name LIKE '%B%' | ForEach-Object { $_.StopService() }
Stop-Service -name *B*

Kein Unterschied, alle Stoppen den/die Services mit einem B im Namen.

Was ist der Output? Was ist der Unterschied?
$computername = 'SERVER-R2'
$var = 'What does $computername contain?'
$var = "What does $computername contain?"

'' -> varialben werden nicht interpretiert. Durch ein Backtick "`" findet auch keine Interpretation statt.
What does $computername contain?
What does SERVER-R2 contain?

Was macht `n?
Bsp. command. echo "was macht `ndas?"

Output (new line):
was macht
das
help about_escape um mehr solche Spezialfälle zu erhalten.

Was ist der Unterschied? Wie kann das ab Powershell v3 gemacht werden?
Get-Service | ForEach-Object { Write-Output $_.Name }
Get-Service | Select-Object –ExpandProperty Nam

Kein Unterschied, in v3 noch einfacher:
$services = Get-Service
$services.Name

Was ist der Output? Was ist es zu beachten?
$services = get-service
$firstname = "The first name is $($services[0].name)"

Output:
The first name is AeLookupSvc
$() wird interpretiert aber NUR in "".