0

カスタムクラスを作成したモジュール「XPTO.psm1」を開発しました。

class XPTO {

                [string]$baseurl
                [string]$fileToken
                $session = [Microsoft.PowerShell.Commands.WebRequestSession]::new()

私のメイン スクリプト SCRIPT.ps1 では、次を使用します。

#! /usr/bin/pwsh

Using module '/root/scripts/XPTO.psm1'

次に、コマンド「pwsh」を実行してスクリプトを呼び出すと、すべてが機能します。

[root@XXXXXXXX scripts]# pwsh
PowerShell 6.2.3
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /root/scripts> ./SCRIPT.ps1
True                                                                                
Collecting metrics                                                                  
10/15/19 4:41:57 PM  - Starting collecting metrics from  762 applications               
10/15/19 4:41:57 PM  - Started Multithread

しかし、pwsh の外で実行すると機能しません。次のエラーが表示されます。

[root@XXXXXXXXX scripts]# pwsh ./SCRIPT.ps1
At /root/scripts/XPTO.psm1:198 char:17
+ ...   $session = [Microsoft.PowerShell.Commands.WebRequestSession]::new()
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to find type [Microsoft.PowerShell.Commands.WebRequestSession].
+ CategoryInfo          : InvalidOperation:     (/root/scripts/scrip\u2026ts/XPTO.psm1:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TypeNotFound
4

1 に答える 1