{"id":8036,"date":"2020-04-16T15:50:01","date_gmt":"2020-04-16T13:50:01","guid":{"rendered":"https:\/\/blog.via-internet.de\/?p=6366"},"modified":"2023-08-07T17:34:33","modified_gmt":"2023-08-07T15:34:33","slug":"powershell-cookbook","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2020\/04\/16\/powershell-cookbook\/","title":{"rendered":"Power Shell | Cookbook"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Scripts<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Parameter in a Powershell Script<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">param (\n    [Parameter(Mandatory=$true)]  [string] $folder = \"\",\n    [Parameter(Mandatory=$false)] [string] $type,\n    [Parameter(Mandatory=$false)] [switch] $migrate,\n    [Parameter(Mandatory=$false)] [switch] $help\n)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Call the Script<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\\script.ps1 foldername\n.\\script.ps1 foldername -type=folder\n\n.\\script.ps1 foldername -type=folder -migrate<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Parameter Debug and Verbose<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This parameter could not be defined in a script, because they are already present.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">param (\n    [Parameter(Mandatory=$false)] [switch] $debug\n)<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\\using_parameter.ps1 : Ein Parameter mit dem Namen \"Debug\" wurde mehrfach f\u00fcr den Befehl definiert.\nIn Zeile:1 Zeichen:1\n+ .\\using_parameter.ps1\n+ ~~~~~~~~~~~~~~~~~~~~~\n    + CategoryInfo          : MetadataError: (:) [], MetadataException\n    + FullyQualifiedErrorId : ParameterNameAlreadyExistsForCommand<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To access their values, use<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">param (\n    [Parameter(Mandatory=$false)] [switch] $help\n)\n\n$debug   = $PSBoundParameters.ContainsKey('Debug')\n$verbose = $PSBoundParameters.ContainsKey('Verbose')\n\nWrite-Host \"help    = $help\"\nWrite-Host \"debug   = $debug\"\nWrite-Host \"verbose = $verbose\"<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"1,5,9\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">> .\\using_parameter.ps1  -debug -help\nhelp    = True\ndebug   = True\nverbose = False\n> .\\using_parameter.ps1  -debug \nhelp    = False\ndebug   = True\nverbose = False\n> .\\using_parameter.ps1  -debug -verbose\nhelp    = False\ndebug   = True\nverbose = True<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">String<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Converting String to TitleCase<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function toTitleCase($string) {\n    return $string.substring(0,1).toupper()+$string.substring(1).tolower()\n\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Filesystem<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">List of Files in a Folder<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Command<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Get-ChildItem<\/code><\/td><td>Folders and Files<\/td><\/tr><tr><td><code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -Directory<\/code><\/td><td>Only Folders<\/td><\/tr><tr><td><code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -File<\/code><\/td><td>Only Files<\/td><\/tr><tr><td><code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -Recurse -Directory<\/code><\/td><td>Only Folders, Recursive<\/td><\/tr><tr><td><code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -Recurse -File<\/code><\/td><td>Only Files, Recursive<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(ls -r *.txt).fullname<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ChildItem -recurse -Filter .editorconfig -path . | \n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dir -Path . -Filter ProfileInformationController* -Recurse | \n\n\n\n<h3 class=\"wp-block-heading\">Counting Files<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Command<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">(Get-ChildItem | Measure-Object).Count<\/code><\/td><td>Count the files and folders<\/td><\/tr><tr><td>(<code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -Directory<\/code> | Measure-Object).Count<\/td><td>Only Folders<\/td><\/tr><tr><td>(<code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -File<\/code> | Measure-Object).Count<\/td><td>Only Files<\/td><\/tr><tr><td>(<code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -Recurse -Directory<\/code> | Measure-Object).Count<\/td><td>Only Folders, Recursive<\/td><\/tr><tr><td>(<code data-enlighter-language=\"powershell\" class=\"EnlighterJSRAW\">Get-ChildItem -Recurse -File<\/code> | Measure-Object).Count<\/td><td>Only Files, Recursive<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Using \u00a0Scripting.FileSystemObject<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$objFSO = New-Object -com \u00a0Scripting.FileSystemObject\n$objFSO.GetFolder($folder).Files.Count<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Find a  Folders within a Folder (not recursive)<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(Get-ChildItem --Attributes Directory).Name<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Run Command for each Folder<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(Get-ChildItem  -Attributes Directory).Name | \n\n\n\n<h4 class=\"wp-block-heading\">With Enumerator<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[IO.Directory]::EnumerateFiles($folder) | ForEach-Object {\n    Write-Host $_\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Find all folders with Pattern <\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ChildItem -recurse -depth 2 -directory -path ..\\packages_flutter | `\nWhere-Object { $_.FullName -match 'example' }                        | `\n\n\n\n\n\n<h3 class=\"wp-block-heading\">Delete files with pattern<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ChildItem *.code -recurse | foreach { Remove-Item -Path $_.FullName }<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ChildItem -Path C:Temp -Include *.* -File -Recurse | foreach { $_.Delete()}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Files<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Filename and Extension of File with <a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.management\/split-path?view=powershell-7.3\" data-type=\"link\" data-id=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.management\/split-path?view=powershell-7.3\">Split-Path<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Filename<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Split-Path -Path &lt;PATH> -Leaf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Folder<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Split-Path -Path &lt;PATH><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Extension<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Split-Path -Path &lt;PATH> -Extension<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Create File<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">New-Item new.txt -type file<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Loop through entries of a textfile<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-Content list-of-folders | Where-Object {$_ -NotMatch \"#.*\" } | ForEach-Object { \n    .\\check_folder.ps1$_\n    # Write-Host \"Weiter -->\" -NoNewLine\n    # $key = $Host.UI.RawUI.ReadKey()\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Loop through results from Select-String<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here is an example that greps for a string and uses the results in a loop to determine if some action should be taken<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$pattern = \"powershell\"\n$files = Select-String -Path \"d:\\script\\*.txt\" -Pattern $pattern\nforeach ($file in $files) {\n   $filename=$file.Filename\n   $item = get-item $file.Path\n    \"File '{0}' matches the pattern '{1}'\" -f $item.FullName, $pattern\n    \"It was last modified on {0}\" -f $item.LastWriteTime\n \n   $response = Read-Host -Prompt \"Set the archive bit on this file?\" \n   If ($response -eq 'Y') {\n      $item.attributes=\"Archive\"\n   }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Check if a file exist<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Test-Path $PROFILE<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Searching in Files<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ChildItem -Recurse | Select-String \"dummy\" -List | Select Path<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ChildItem -Recurse *.sql | Select-String \"create .*_tab_\" | Select-Object -Unique Path<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Select-String -path *.txt -pattern PowerShell\n\nSelect-String -path *.txt -pattern PowerShell -notmatch<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Parsing Files<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Get first line of output<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$eventResult.Split([Environment]::NewLine) | Select -First 1<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Web<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Download Web-Page<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Invoke-WebRequest -Uri &lt;link><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">List all Links<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$response = Invoke-WebRequest -Uri &lt;link>\n$response.links | Select -Expand href<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">List all Links with filtering href by RegEx<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$response.Links | Where-Object {$_.href -like \"*videos*\" } | ForEach-Object { $_.href }<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">List all Links with filtering class name by RegEx<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$response.Links | Where-Object {$_.class -eq \"page-numbers\"} | Format-List innerText, href<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Download and Install Visual Studio Code in portable Mode<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$FOLDER=Get-Date -Format \"yyyy-MM-dd-HH-mm\"\n\nWrite-Host \"Create link for folder $FOLDER\"\n\n\n# Download\n# https:\/\/code.visualstudio.com\/sha\/download?build=stable&amp;os=win32-x64-archive\n# https:\/\/code.visualstudio.com\/sha\/download?build=insider&amp;os=win32-x64-archive\n\n$LINK=\"https:\/\/code.visualstudio.com\/sha\/download?build=insider&amp;os=win32-x64-archive\"\n$FILE=\"vscode-insider.zip\"\n\nif (Test-Path \"$FILE\") {\n\tRemove-Item \"$FILE\"\n}\n\nInvoke-WebRequest \"$LINK\" -OutFile \"$FILE\"\n\nExpand-Archive \"$FILE\" \"$FOLDER\"\n\nif (Test-Path $FOLDER\\data)\n{\n\tRemove-Item $FOLDER\\data\n}\n\n\nif (Test-Path code) { Remove-Item code }\n\n# Using junction from SysInternalsSuite to create symlinks\n\njunction code $FOLDER\njunction code\\data data<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Environment<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Show env variables<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">gci env:* | Sort-Object Name<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Show env variables with name pattern<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">gci env: | Where name -like '*HOME<\/pre>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\">Processes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">List Processes and Path<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-Process | Select-Object Path<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Show processes using a specific port<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere).OwningProcess<\/pre>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\">Network<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"><\/pre>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\">Pipeline<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Parse out from command<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$REPOSITORY=&lt;URL of Repository>\ngit branch -r | ForEach-Object { Write-Output \"git clone -b $_ $REPOSITORY $_\" } | Out-File -FilePath .clone-all-branches<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Permissions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Show current policy<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Get-ExecutionPolicy<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Allow custom scripts to execute<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Set-ExecutionPolicy -Scope CurrentUser unrestricted<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Security<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"self-sign-script\">Self-Sign a script<\/h3>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-left\">Step 1: Create your code signing certificate<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">New-SelfSignedCertificate -DnsName user@via-internet.de `\n                          -CertStoreLocation Cert:\\currentuser\\my  `\n                          -Subject \"CN=Local Code Signing\"  `\n                          -KeyAlgorithm RSA  `\n                          -KeyLength 2048  `\n                          -Provider \"Microsoft Enhanced RSA and AES Cryptographic Provider\"  `\n                          -KeyExportPolicy Exportable  `\n                          -KeyUsage DigitalSignature  `\n                          -Type CodeSigningCert<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"144\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/image-6-1024x144.png\" alt=\"\" class=\"wp-image-8757\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/image-6-1024x144.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/image-6-300x42.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/image-6-768x108.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/image-6.png 1297w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-left\">Step 2: Open the Certificate Manager for Current User<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">certmgr \/s my<\/pre>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-left\">Step 3: Copy the new certificate to the appropriate cert stores<\/h4>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">From <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Personal folder<\/code> into <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Trusted Root Certification Authorities<\/code> and into <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Trusted Publishers stores<\/code>.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">German: Von <code>Eigene Zertifikate<\/code> nach <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Vertrauensw\u00fcrdige Stammzertifizierungsstellen<\/code> und <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Vertrauensw\u00fcrdige Herausgeber<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"210\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/show_cert-1-1024x210.png\" alt=\"\" class=\"wp-image-8759\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/show_cert-1-1024x210.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/show_cert-1-300x61.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/show_cert-1-768x157.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/show_cert-1.png 1470w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"254\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/copy_cert_to_trusted-1024x254.png\" alt=\"\" class=\"wp-image-8760\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/copy_cert_to_trusted-1024x254.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/copy_cert_to_trusted-300x74.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/copy_cert_to_trusted-768x191.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/copy_cert_to_trusted.png 1470w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/cert_stores-1024x300.png\" alt=\"\" class=\"wp-image-8764\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/cert_stores-1024x300.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/cert_stores-300x88.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/cert_stores-768x225.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/04\/cert_stores.png 1470w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-left\">Step 4: Sign your PowerShell script with the new cert<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$CERT=@(Get-ChildItem cert:\\CurrentUser\\My -CodeSigning)[1]\nSet-AuthenticodeSignature .\\HelloWorld.ps1 $CERT<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Or<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f Set-AuthenticodeSignature -FilePath .\\HelloWorld.ps1 -Certificate (Get-ChildItem -Path Cert:CurrentUserMy -CodeSigningCert)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Final Check<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f Get-AuthenticodeSignature .\\HelloWorld.ps1<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Github<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Download Repositories<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">gh repo list &lt;github username> --limit 1000 | \n\n\n\n<h2 class=\"wp-block-heading\">Profiles<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"six-count-em-six-different-powershell-profiles\">Different PowerShell profiles<\/h3>\n\n\n\n<table class=\"wp-block-advgb-table advgb-table-frontend\"><tbody><tr><td><strong>Description<\/strong><\/td><td><strong>Path<\/strong><\/td><\/tr><tr><td>Current User, Current Host \u2013 console<\/td><td>$Home[My ]DocumentsWindowsPowerShellProfile.ps1<\/td><\/tr><tr><td>Current User, All Hosts&nbsp;&nbsp;&nbsp;<\/td><td>$Home[My ]DocumentsProfile.ps1<\/td><\/tr><tr><td>All Users, Current Host \u2013 console&nbsp;&nbsp;&nbsp;<\/td><td>$PsHomeMicrosoft.PowerShell_profile.ps1<\/td><\/tr><tr><td>All Users, All Hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/td><td>$PsHomeProfile.ps1<\/td><\/tr><tr><td>Current user, Current Host \u2013 ISE<\/td><td>$Home[My ]DocumentsWindowsPowerShellMicrosoft.P owerShellISE_profile.ps1<\/td><\/tr><tr><td>&nbsp;All users, Current Host \u2013 ISE&nbsp;&nbsp;<\/td><td>$PsHomeMicrosoft.PowerShellISE_profile.ps1<\/td><\/tr><\/tbody><\/table>\n\n\n\n<h3 class=\"wp-block-heading\">Show Path for all profiles<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$PROFILE | Format-List * -Force<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Create a new profile<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">New-Item $PROFILE.CurrentUserAllHosts -ItemType file -Force<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Customizing<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Theming<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/ohmyposh.dev\/\">https:\/\/ohmyposh.dev\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Install Posh-Git and Oh-My-Posh.<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Install-Module posh-git   -Scope CurrentUser\nInstall-Module oh-my-posh -Scope CurrentUser<\/pre>\n<\/div>\n<\/div>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then run &#8220;notepad $PROFILE&#8221; and add these lines to the end:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Import-Module posh-git\nImport-Module oh-my-posh\n\nSet-Theme Paradox<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Set a custom theme<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Import-Module posh-git\nImport-Module oh-my-posh\nSet-Theme Paradox<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Show current theme settings<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ThemeSettings<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ThemeSettings.CurrentThemeLocation<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Customize Prompt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Show current Path<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function prompt\n{\n    \"PS \" + $(get-location) + \"> \"\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Randor Color<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function prompt\n{\n    $random = new-object random\n    $color=[System.ConsoleColor]$random.next(1,16)\n    Write-Host (\"PS \" + $(get-location) +\">\") -nonewline -foregroundcolor $color\n    return \" \"\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Display current time at the end of prompt line (this will mess up you console buffer)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function prompt\n{\n    $oldposition = $host.ui.rawui.CursorPosition\n    $Endline = $oldposition\n    $Endline.X+=60\n    $host.ui.rawui.CursorPosition = $Endline\n    Write-Host $(get-date).Tostring(\"yyyy-MM-dd HH:mm:ss\")\n    $host.ui.rawui.CursorPosition = $oldposition\n    Write-Host (\"PS \" + $(get-location) +\">\") -nonewline -foregroundcolor Magenta\n    return \" \"\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Show current user, host, current line number<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$global:CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()\nfunction prompt\n{\n    $host.ui.rawui.WindowTitle = $CurrentUser.Name + \" \" + $Host.Name + \" \" + $Host.Version + \" Line: \" + $host.UI.RawUI.CursorPosition.Y\n    Write-Host (\"PS \" + $(get-location) +\">\") -nonewline -foregroundcolor Magenta\n    return \" \"\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Weitere Anpassungsm\u00f6glichkeiten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.norlunn.net\/2019\/10\/07\/powershell-customize-the-prompt\/\">https:\/\/www.norlunn.net\/2019\/10\/07\/powershell-customize-the-prompt\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Security<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f New-SelfSignedCertificate -DnsName user@via-internet.de -CertStoreLocation Cert:CurrentUserMy -Type CodeSigning\n\n   PSParentPath: Microsoft.PowerShell.SecurityCertificate::CurrentUserMy\n\nThumbprint                                Subject              EnhancedKeyUsageList\n----------                                -------              --------------------\n4AED871E6DB5FF3E85EB1625C5369DBDB3E120FD  CN=user@via-interne\u2026 Codesignatur<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f Set-AuthenticodeSignature -FilePath demo.ps1 -Certificate (Get-ChildItem -Path Cert:CurrentUserMy -CodeSigningCert)\n\n    Directory: D:TMP\n\nSignerCertificate                         Status                               StatusMessage                     Path\n-----------------                         ------                               -------------                     ----\n4AED871E6DB5FF3E85EB1625C5369DBDB3E120FD  Valid                                Signature verified.               demo.ps1<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Final Check<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f Get-AuthenticodeSignature .demo.ps1\n\n    Directory: D:CLOUDEnvironmentsKeycloakKeycloak12.0.1bin\n\nSignerCertificate                         Status                                StatusMessage                    Path\n-----------------                         ------                                -------------                    ---\n4AED871E6DB5FF3E85EB1625C5369DBDB3E120FD  Valid                                 Signature verified.              demo.ps1<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">From Bash to Powershell<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/mathieubuisson.github.io\/powershell-linux-bash\/\">https:\/\/mathieubuisson.github.io\/powershell-linux-bash\/<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Alias for WHICH command<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f (get-command FILE.EXE).Path<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f Set-Alias where Get-Command\n\u276f where FILE.EXE<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Snippets<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Formatting<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">0..31 | ForEach-Object { \n    \"{0,6}`t{1,6}`t{2,5}`t0x{0:X4}\" -f $_,[Convert]::ToString($_,2), [Convert]::ToString($_,8) \n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Select a Service By Name (Partial Match)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">> Get-Service | Select-Object -ExpandProperty Name | Select-String -pattern 'ws'<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CURL For Powershell<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">> (Invoke-WebRequest www.google.com).Content<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">List Environment Variables<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">> gci env: | sort name<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Get PS Version<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">> $PSVersionTable<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">List Installed Programs<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">> Get-WmiObject -Class Win32_Product<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Colored Header in Output<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$prefix =\"$prefix                   \".Substring(0,6)\n$title  =\"$title                    \".Substring(0,15)\n\n$line = \"$prefix ${title}: ${line}\"\n$fill = \" \" * ([Console]::WindowWidth - $line.length)\nWrite-Host \"${line}${fill}\"  -ForegroundColor White -BackgroundColor Blue -NoNewline<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scripts Parameter in a Powershell Script Call the Script Parameter Debug and Verbose This parameter could not be defined in a script, because they are already present. To access their values, use String Converting String to TitleCase Filesystem List of Files in a Folder Command Description Get-ChildItem Folders and Files Get-ChildItem -Directory Only Folders Get-ChildItem -File Only Files Get-ChildItem -Recurse -Directory Only Folders, Recursive Get-ChildItem -Recurse -File Only Files, Recursive Counting Files Command Description (Get-ChildItem | Measure-Object).Count Count the files and folders (Get-ChildItem -Directory | Measure-Object).Count Only Folders (Get-ChildItem -File | Measure-Object).Count Only Files (Get-ChildItem -Recurse -Directory | Measure-Object).Count Only Folders, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8828,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[16,102],"tags":[],"class_list":["post-8036","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cookbook","category-power-shell"],"jetpack_featured_media_url":"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/05\/powershell.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/8036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/comments?post=8036"}],"version-history":[{"count":42,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/8036\/revisions"}],"predecessor-version":[{"id":9635,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/8036\/revisions\/9635"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media\/8828"}],"wp:attachment":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media?parent=8036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=8036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=8036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}