あなたが開いているファイルを表示するためにこれを使用することができます:
$adsi = [adsi]"WinNT://./LanmanServer"
$resources = $adsi.psbase.Invoke("resources") | Foreach-Object {
New-Object PSObject -Property @{
ID = $_.gettype().invokeMember("Name","GetProperty",$null,$_,$null)
Path = $_.gettype().invokeMember("Path","GetProperty",$null,$_,$null)
OpenedBy = $_.gettype().invokeMember("User","GetProperty",$null,$_,$null)
LockCount = $_.gettype().invokeMember("LockCount","GetProperty",$null,$_,$null)
}
}
$resources
次に閉じたいものをフィルタリング:
$resources | Where-Object { $_.Path -like 'c:\apps\*'} |
Foreach-Object { net files $_.ID /close }
:私はそれをPowerShellののイディオムである、パイプライン上でより依存していることを好みます。ネットワークファイルを閉じるのが一般的です。私はちょうど同じ正確なものが必要でした。この質問は、誰かが古いバッチファイルを変換することを要求するのではなく、以前のバッチファイルの変換方法を示しています。 – Knox
私は同意する、この質問は閉じてはならない。それは私が必要としているものです。 –
http://superuser.com/に適しています。 –