假设我在服务器上有一个文件
-rw-r--r--. dev Jun 28 06:51 test1.log
我有3个用户可以访问我的服务器,[dev,dev1,dev2]
我明白我们可以通过使用下面的代码来检查文件是否可重写
-w test1.log
但我想检查文件是否可重写为其他用户,即使我登录到我的服务器作为dev而不是dev1
当前的方法我正在做的是使用下面的脚本,但是这种方法会有问题,如果它突然创建为dev2用户
if [ -w test1.log ]
then "True"
else echo "not rewritable"
fi
Dev用户将返回True
Dev1用户将返回false
是否有一种方法可以检查文件类型,如果是-rw-r--r--
?
使用Invoke-Command
,您可以通过命令凭据相当容易地运行。您可以放入一个凭证循环来测试所需的每个用户。将它包装在Try/Catch中可以很容易地看到进程中是否有任何错误。您可以使用简单的$Error
来显示错误。
下面是该类及其方法的文档。https://learn.microsoft.com/en us/dotnet/api/system.io.file?view=net - 6.0
Try {
Invoke-Command -ScriptBlock {[io.file]::OpenWrite(".test1.log").close()} -ComputerName $env:COMPUTERNAME -Credential $(Get-Credential)
return $true
} Catch {
Write-Warning "not rewritable"
return $false
}