Invoke-WebRequestのエラー Invoke-WebRequestを実行した際に一部のサーバーで下記エラーが発生しました。
Invoke-WebRequest : 接続が切断されました: 送信時に、予期しないエラーが発生しました。 エラーの原因 対象サイトがTLS 1.2を要求していたが、該当のサーバーがTLS 1.2を使用する設定がされていなかったためでした。
はじめに PowerShellスクリプトで認証を伴う処理を実施する際に、パスワードを暗号化して保持する方法のメモです。
パスワードファイルの作成 以下、ユーザー名「User1」、ファイル名「passwd.dat」でパスワードファイルを作成するサンプルです。(※ユーザー名、ファイル名は環境に合わせて適宜変更してください。)
PowerShellはメソッドの戻り値が標準出力に表示される PowerShellでArrayList.Add()などの戻り値のあるメソッドを実行すると、標準出力に戻り値が表示されます。
1 2 3 4 5 6 $array = New-Object System.Collections.ArrayList $array.Add('A') $array.Add('B') $array.Add('C') $array.Add('D') > .\sample1.ps1 0 1 2 3 標準出力への表示を抑制する方法 標準出力への表示を抑制するには下記のいずれかの対応を行います。
はじめに Windows PowerShell 5.1からPowerShell 7に変更したところ、CSVを取り込むバッチ処理で文字化けが発生。
文字化けの原因 原因は、PowerShell 5.1ではデフォルトエンコードがShift_JISでしたが、PowerShell 7のデフォルトエンコードがUTF-8に変更されたため。
リソースの開放について StreamReaderなどでファイルをOpenした場合、Close()を忘れたり、Close()前にエラーで処理が終了してしまうとファイルがオープンされたままになります。
1 2 3 4 5 6 7 8 9 # Close()を実行していない例 $filePath = "C:\test.txt" $sr = New-Object System.IO.StreamReader($filePath) while(($line = $sr.ReadLine()) -ne $null) { Write-Host $line } # $sr.Close() 上記スクリプト実行後、テキストエディターで該当ファイルを開こうとするとエラーメッセージが表示されます。
PowerShellスクリプトの拡張子 PowerShellスクリプトファイルの拡張子は「.ps1」
Hello World Write-Hostでコンソールに文字を表示します。
Write-Host "Hello, World!" 実行結果 Hello, World! コメント文 行コメント「#」、複数行コメントは「<#...#>」で囲います。
PowerShellの実行ポリシーについて PowerShellの実行ポリシーは、スクリプトを実行する条件を制御する安全機能です。
Windowsクライアントマシンでは悪意のあるスクリプトの実行を防止のため、デフォルトでスクリプトファイルが実行できない設定となっています。