我正在创建一个 PowerShell 脚本(将在最后发布该脚本),目的是自动化目录中多个 vhdx 文件的优化过程。总结一下脚本,我目前有它提示用户输入 vhdx 文件的目录位置,然后它将找到的文件存储在单个变量中。从那里我不确定如何从目录中找到每个文件并在脚本移动到目录中的下一个文件之前对每个文件运行两个命令。第一个命令是查看文件是否被锁定(如果它被锁定,则跳过,如果不继续执行第二个命令)。第二个命令是优化 vhdx 文件。一旦所有文件都完成,它将显示脚本已完成并且跳过了 X 数量的文件。
到目前为止我的脚本:
<# Welcome message to the script. #>
Write-Host "This script will go through the process of shrinking RDS VHDX files that have increased in size. Please follow the prompts to complete the process." -ForegroundColor Green
<# prompt for user to enter the file directory that the VHDX files live in: #>
[string]$pathname = Read-Host -Prompt 'Please enter full path directory to vhdx files.'
<# Output to user to show input was entered. #>
echo "Scanning vhdx files from $pathname."
<# Action to gather all vhdx files from the provided path: #>
$filesFound = Get-ChildItem -Path $pathname* -Exclude UVHD-template*
Read-Host "Please review the vhdx files above. If correct press any key to continue." -ForegroundColor Green
ForEach-Object ($filesFound){
}