MS PowerShell: Unterschied zwischen den Versionen
Aus Vosp.info
F (Diskussion | Beiträge) |
F (Diskussion | Beiträge) (→Powershell Programmierung) |
||
Zeile 33: | Zeile 33: | ||
Set-ExecutionPolicy RemoteSigned | Set-ExecutionPolicy RemoteSigned | ||
</source> | </source> | ||
+ | |||
+ | |||
+ | == Simples Beispiel Skript == | ||
+ | |||
+ | <source lang=powershell> | ||
+ | # Hello World - BOF | ||
+ | Write-Host "Hello, World!" | ||
+ | # Hello World - EOF | ||
+ | |||
+ | |||
+ | # Kopiere calc.exe nach test - BOF | ||
+ | $MethodDefinition = @' | ||
+ | |||
+ | |||
+ | [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] | ||
+ | |||
+ | public static extern bool CopyFile(string lpExistingFileName, string lpNewFileName, bool bFailIfExists); | ||
+ | |||
+ | '@ | ||
+ | $Kernel32 = Add-Type -MemberDefinition $MethodDefinition -Name 'Kernel32' -Namespace 'Win32' -PassThru | ||
+ | $Kernel32::CopyFile("$($Env:SystemRoot)\System32\calc.exe", "$($Env:USERPROFILE)\test\calc.exe", $False) | ||
+ | # Kopiere calc.exe nach test - EOF | ||
+ | |||
+ | |||
+ | # Vergrößere und Minimiere das 3CXWin8Phone Fenster - BOF | ||
+ | $ancShowWindowAsync = @' | ||
+ | |||
+ | |||
+ | [DllImport("user32.dll", CharSet = CharSet.Unicode)] | ||
+ | |||
+ | public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); | ||
+ | |||
+ | '@ | ||
+ | |||
+ | $minWindow = Add-Type -MemberDefinition $ancShowWindowAsync -Name 'minWindow' -Namespace 'Win32' -PassThru | ||
+ | |||
+ | $procname = '3CXWin8Phone' | ||
+ | |||
+ | echo $procname | ||
+ | Get-Process -Name $procname | ||
+ | (Get-Process -Name $procname).MainWindowHandle | ||
+ | |||
+ | # maximize | ||
+ | [void]$minWindow::ShowWindowAsync((Get-Process -Name $procname).MainWindowHandle, 3) | ||
+ | |||
+ | Start-Sleep -s 1 | ||
+ | |||
+ | # minimize | ||
+ | [void]$minWindow::ShowWindowAsync((Get-Process -Name $procname).MainWindowHandle, 11) | ||
+ | # Vergrößere und Minimiere das 3CXWin8Phone Fenster - EOF | ||
+ | </source> | ||
+ | |||
+ | * Wichtig warum auch immer, die Zeilenumbrüche in den Methoden Definitionen $MethodDefinition und $ancShowWindowAsync sind wichtig |
Version vom 8. Januar 2022, 14:46 Uhr
windows | windows cleaning | windows server | MS PowerShell
Inhaltsverzeichnis
Anzeigen der Dienste:
Get-Service
Systemkonfiguration
msconfig
keine Microsoft Dienste anzeigen
Reiter Dienste: Checkbox Alle Microsoft Dienste ausblenden
neustarten
shutdown /r /t 0
Powershell Programmierung
- Hello World Beispiel
- https://devblogs.microsoft.com/scripting/use-powershell-to-interact-with-the-windows-api-part-1/
- https://administrator.de/forum/fenster-mini-maximieren-batch-befehl-335979.html
- about_Execution_Policies
- Skripte für lokalgeschriebende die Berechtigung erteilen
Set-ExecutionPolicy RemoteSigned
Simples Beispiel Skript
# Hello World - BOF
Write-Host "Hello, World!"
# Hello World - EOF
# Kopiere calc.exe nach test - BOF
$MethodDefinition = @'
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
public static extern bool CopyFile(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);
'@
$Kernel32 = Add-Type -MemberDefinition $MethodDefinition -Name 'Kernel32' -Namespace 'Win32' -PassThru
$Kernel32::CopyFile("$($Env:SystemRoot)\System32\calc.exe", "$($Env:USERPROFILE)\test\calc.exe", $False)
# Kopiere calc.exe nach test - EOF
# Vergrößere und Minimiere das 3CXWin8Phone Fenster - BOF
$ancShowWindowAsync = @'
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@
$minWindow = Add-Type -MemberDefinition $ancShowWindowAsync -Name 'minWindow' -Namespace 'Win32' -PassThru
$procname = '3CXWin8Phone'
echo $procname
Get-Process -Name $procname
(Get-Process -Name $procname).MainWindowHandle
# maximize
[void]$minWindow::ShowWindowAsync((Get-Process -Name $procname).MainWindowHandle, 3)
Start-Sleep -s 1
# minimize
[void]$minWindow::ShowWindowAsync((Get-Process -Name $procname).MainWindowHandle, 11)
# Vergrößere und Minimiere das 3CXWin8Phone Fenster - EOF
- Wichtig warum auch immer, die Zeilenumbrüche in den Methoden Definitionen $MethodDefinition und $ancShowWindowAsync sind wichtig