1

私のスクリプトは、外部モジュールに保存されている個人用関数を使用して、マウントされたボリュームを操作Mount-VHDおよび使用しようとするまでは正常に機能していました。Get-ChildItem

私のスクリプトは次のことを行います:

import-module create-vm.psm1 -force

このモジュール内に VHD ファイルをマウントし、Get-ChildItemいくつかのシステム ファイル (この場合はpagefile.sys) の存在を確認するために使用しています。

しかし、Get-ChildItemまれなエラーで失敗します。これは、パラメーターを-hidden認識しない、ドライブ文字を認識しないなど、または他のパラメーターで失敗するためです。

回避策として、本体スクリプトに関数をコピーしたところ、機能しました。

その後、ご覧のとおり、外部モジュールからロードされたときに関数を使用しようとしたときにのみ問題が発生します。

その理由を知っていますか?そしてそれを修正する方法は?

4

1 に答える 1

0

次のモジュールではこれを再現できません。

test.psm1

#requires -Modules Hyper-V
#requires -RunAsAdminstrator

$vhd = 'E:\VirtualMachines\PowerShellDscExp\Virtual Hard Disks\PowerShellDscExp.vhdx'

function ListHiddenVhdFileSystemEntry {
    $disks = Hyper-V\Mount-VHD $vhd -PassThru | Get-Disk
    $disks | Get-Partition | Foreach {Get-ChildItem "$($_.DriveLetter):" -hidden}
}

次の結果が得られます。

30# Import-Module .\test.psm1
31# ListHiddenVhdFileSystemEntry


    Directory: L:\


Mode           LastWriteTime       Length Name
----           -------------       ------ ----
d--hs     7/20/2014  3:13 PM        <DIR> Boot
d--hs     7/20/2014  1:16 PM        <DIR> Recovery
d--hs     12/3/2014  7:39 PM        <DIR> System Volume Information
-arhs     3/18/2014  4:14 AM       398356 bootmgr
-a-hs     6/18/2013  6:18 AM            1 BOOTNXT
-arhs     7/20/2014  3:13 PM         8192 BOOTSECT.BAK


    Directory: m:\


Mode           LastWriteTime       Length Name
----           -------------       ------ ----
d--hs     3/18/2014  4:46 AM        <DIR> $Recycle.Bin
d--hs     8/22/2013  8:45 AM   <JUNCTION> Documents and Settings [C:\Users]
d--h-     8/22/2013  8:45 AM        <DIR> ProgramData
d--hs     7/20/2014  2:45 PM        <DIR> System Volume Information
-arhs     3/18/2014  4:14 AM       398356 bootmgr
-a-hs     6/18/2013  6:18 AM            1 BOOTNXT
-a-hs     7/20/2014  4:20 PM   1207959552 pagefile.sys
-a-hs     7/20/2014  4:20 PM    268435456 swapfile.sys
于 2014-12-04T02:56:01.873 に答える