用Get-SmbOpenFile做直到

时间:2018-04-24 09:01:25

标签: powershell powershell-v4.0 powershell-v5.0

我正在尝试检查是否在使用PowerShell的服务器上打开了任何文件。 我有以下脚本哪种工作

如果我在没有打开文件时启动它,则首先检查,等待10秒,然后打印消息“没有打开文件”。如果我打开任何文件并启动脚本,它会显示“文件已打开,请稍候......”但是当我关闭所有文件并断开所有会话时,它仍然会显示相同的

Clear-Host
$CheckOpenfiles = Get-SmbOpenFile
Do
    {
     "$(get-date) Files are opened, please wait..."
     Start-Sleep 10
     } Until (!$CheckOpenfiles) 
     "No files are opened"

1 个答案:

答案 0 :(得分:1)

正如LotPings在评论中注明的那样,在开始循环之前,您将值分配给$CheckOpenfiles。这意味着它不会在您的直接条件中重新评估。

Do {
    "$(get-date) Files are opened, please wait..."
    Start-Sleep 10
} Until (!(Get-SmbOpenFile)) 
"No files are opened"