Powershell, Karten 91-120
Powershell Grundlagen
Powershell Grundlagen
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 "".