我断开与Powershell中的ALL设备断开连接:
Invoke-Expression -Command "net use * /delete /y"
我需要为特定设备执行此操作,而不是从ALL断开连接。
问题: 如果存在与特定网络位置的连接并且已断开连接(删除连接),我该如何测试?
我想要实现的目标是:
IF (there is already a connection to a network drive with below details)
"\\poooh.fooo.boo.com\MyFolder" user="FOO\winnie" password="12345678"
THEN
{
Disconnect from this network drive #via NET USE I guess
And CREATE a PS-DRIVE to the same network location
}
答案 0 :(得分:1)
你可以试试这个:
$nc = gwmi Win32_NetworkConnection
if (( $nc | select -expa remotename ) -contains '\\poooh.fooo.boo.com\MyFolder' )
{
$u = $nc | ? { $_.remotename -eq '\\poooh.fooo.boo.com\MyFolder' } | select -expa localname
$netobj=New-Object -ComObject WScript.Network
$netobj.RemoveNetworkDrive($u)
}
如果连接已打开文件,则删除可能会失败。
答案 1 :(得分:0)
使用Test-Path
cmdlet。如果路径无效,它将返回$false
。也就是说,路径不存在或用户权限不足以阻止访问。像这样,
PS C:\> test-path k: # There is no k: drive
False
PS C:\> test-path \\ServerWithoutPermissions\c$
False
PS C:\> test-path \\NonExistingHost\share
False