1.Adding Code Repository Listing in Order to copy code to clipboard from PowerShell Directly
Invoke-RestMethod -Uri https://tinyurl.com/codeAusBuch -UseBasicParsing | New-Item -Path function: -Name L -Force | Out-Null
2. Installing PowerShell
Invoke-RestMethod -Uri https://aka.ms/install-powershell.ps1 -UseBasicParsing | New-Item -Path function: -Name Install-PowerShell | Out-Null
or
Install-PowerShell -Destination c:\ps7test -AddToPath
or
Install-PowerShell -UseMSI
3. Checking which PowerShell has been started
[Environment]::CommandLine
4. Path to started PS
(Get-Process -Id $pid).Path
5. Install Chocolatey (Listing 1.5)
Invoke-RestMethod -UseBasicParsing -Uri 'https://chocolatey.org/install.ps1' | Invoke-Expression
6. Install Scoop (Listing 1.6)
Invoke-RestMethod -UseBasicParsing -Uri 'https://get.scoop.sh' | Invoke-Expression
scoop install git
scoop bucket add extras
7. Allow installing Scripts in PowerShell
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
11. View Execution Policy
Get-ExecutionPolicy -List
8. Console Grid Installation (For machines with no GUI – such us WinServer Core)
Install-Module -Name Microsoft.Powershell.ConsoleGuiTools -Scope CurrentUser
9. Process Listing (Listing 1.7)
Get-Process |
>> Where-Object MainWindowHandle |
>> Select-Object -Property Name, Id, Description |
>> Sort-Object -Property Name |
>> Out-ConsoleGridView -Title 'Prozesse' -OutputMode Multiple |
>> Stop-Process -WhatIf # Delete WhatIf to end simulation
10. Extending PowerShell Help
Update-Help -UICulture EN-US -Force -Scope CurrentUser #delet Scope CurrentUser - for Windows Power Shell
Useful Scripts
1. Script for Changing Power Shell appearance – display warnings blue, – powershall path at the top, -adding Listing as standard to powershell (Listing 1.15)
$host.PrivateData.ErrorForegroundColor = 'Blue'
Invoke-RestMethod -Uri https://tinyurl.com/codeAusBuch |
New-Item -Path function: -Name L -Force |
Out-Null
2. Script for duplicating profiles for both WinPS and PS. Once executed Copy the above script (listing 1.15) in the opened notepad and save to default location
– can be executed with: L 1.16 -run
#requires -RunAsAdministrator
# Hardlinks können nur als Administrator angelegt werden
# dieses Skript macht nur Sinn, wenn das Betriebssystem "Windows" ist:
if ($isWindows -eq $false)
{
Write-Warning "Spiegeln der Profile ist nur bei Windows möglich."
Write-Warning "Andere Betriebssysteme verfügen über kein Windows PowerShell"
return
}
# sicherstellen, dass die Windows PowerShell Profildatei existiert
if ($PSVersionTable.PSEdition -eq 'Core')
{
# Pfad zum Windows PowerShell Profilskript berechnen:
$winprofile = $profile.CurrentUserAllHosts -replace '\\PowerShell\\', '\WindowsPowerShell\'
$coreprofile = $profile
}
else
{
# Pfad steht bei Windows PowerShell schon in $profile:
$winprofile = $profile.CurrentUserAllHosts
$coreprofile = $profile -replace '\\WindowsPowerShell\\','\PowerShell\'
}
# Datei anlegen, wenn noch nicht vorhanden
$exists = Test-Path -Path $winprofile
if ($exists -eq $false)
{
$null = New-Item -Path $winprofile -ItemType File -Force
Write-Warning "Profilskript für Windows PowerShell angelegt."
}
else
{
Write-Warning "Profilskript für Windows PowerShell war vorhanden."
}
# testen, ob Profilskript für PowerShell existiert
$exists = Test-Path -Path $coreprofile
if ($exists)
{
# ist die Profildatei vielleicht bereits gespiegelt?
$datei = Get-Item -Path $coreprofile
if ($datei.LinkType -eq 'HardLink')
{
# wir sind fertig
Write-Warning 'Profildatei von Windows PowerShell wird bereits mitgenutzt (keine Änderungen).'
# Profilskript im Editor öffnen:
Invoke-Item -Path $winprofile
Return
}
else
{
# wenn PowerShell bereits eine eigene Profildatei verwendet, muss diese
# gelöscht werden, um stattdessen auf das Windows Profil zu verweisen
# also nachfragen, ob der User das will:
Write-Warning 'Profilskript für PowerShell ist bereits als separate Datei vorhanden.'
Write-Warning 'Soll dieses Profil gelöscht und stattdessen das Profil der Windows PowerShell verwendet werden?'
# Frage stellen und 20 Sekunden warten, danach "NEIN" wählen:
choice.exe /C JN /M "Drücken Sie J für Ja oder N für Nein" /T 20 /D N
# choice.exe liefert einen ErrorLevel in $LastExitCode zurück, der
# Zahlenwert entspricht der Auswahl (1=Ja, 2=Nein)
if ($LASTEXITCODE -eq 2) { return }
# Profildatei löschen
Remove-Item -Path $coreprofile -Force
}
}
# Hardlink anlegen (erfordert Adminrechte)
$null = New-Item -Path $coreprofile -ItemType HardLink -Value $winprofile
Write-Warning 'Profildatei von Windows PowerShell wird nun mitgenutzt.'
Write-Warning "Um die Spiegelung aufzuheben, einfach die $profile löschen und von Hand oder im Editor neu angelegen."
# Profilskript im Editor öffnen:
Invoke-Item -Path $winprofile
GIT HUB Desktop
this is a good tool to download all or divers spripts all at once:
Clone the Repository with the following address
https://github.com/TobiasPSP/OReilly
Power Shell updating
1. Check Power Shell Version
$PSVersionTable.PSVersion
2. Check PowerShellGet version
Get-Module -Name PowerShellGet -ListAvailable
3. Conduct update on both PowerShellGet & PowerShell
Install-Module -Name PowerShellGet -Scope CurrentUser -Force -AllowClobber
Install-Module -Name Packagemanagement -Scope CurrentUser -Force -AllowClobber