MS PowerShell: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
+
[[windows]] | [[windows cleaning]] | [[windows server]] | [[MS PowerShell]]
  
 
==Anzeigen der Dienste:==
 
==Anzeigen der Dienste:==
Zeile 12: Zeile 12:
 
=== keine Microsoft Dienste anzeigen===
 
=== keine Microsoft Dienste anzeigen===
 
Reiter Dienste: Checkbox Alle Microsoft Dienste ausblenden
 
Reiter Dienste: Checkbox Alle Microsoft Dienste ausblenden
 +
 +
 +
== neustarten ==
 +
 +
shutdown /r /t 0
 +
 +
 +
= Powershell Programmierung =
 +
 +
* Hello World Beispiel
 +
** https://www.pdq.com/blog/writing-your-first-powershell-script/?utm_medium=cpc&utm_source=google_ads&utm_term=&utm_source=adwords&utm_medium=ppc&utm_campaign=S-Global-Generic&hsa_cam=15146127828&hsa_grp=133962886920&hsa_mt=&hsa_src=g&hsa_ad=570924038857&hsa_acc=2336542827&hsa_net=adwords&hsa_kw=&hsa_tgt=dsa-415351799881&hsa_ver=3&gclid=EAIaIQobChMI5KTf3Kii9QIVGs93Ch2UAgIeEAAYASAAEgJVxfD_BwE
 +
* 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
 +
** https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2
 +
 +
 +
* Skripte für lokalgeschriebende die Berechtigung erteilen
 +
<source lang=powershell>
 +
Set-ExecutionPolicy RemoteSigned
 +
</source>
 +
 +
== Varianblen ==
 +
 +
https://www.windows-faq.de/2017/07/10/windows-umgebungsvariablen-benutzerdefiniert-systemvariablen-bearbeiten/
 +
 +
<source lang=powershell>
 +
echo $env:computername
 +
</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

Aktuelle Version vom 11. Januar 2022, 13:58 Uhr

windows | windows cleaning | windows server | MS PowerShell

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


  • Skripte für lokalgeschriebende die Berechtigung erteilen
Set-ExecutionPolicy RemoteSigned

Varianblen

https://www.windows-faq.de/2017/07/10/windows-umgebungsvariablen-benutzerdefiniert-systemvariablen-bearbeiten/

echo $env:computername

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