0

我从 Powershell 中的所有设备断开连接,如下所示:

 Invoke-Expression -Command "net use * /delete /y"

而且我需要为特定设备执行此操作,而不是与所有设备断开连接。

问题: 如何测试是否已经与特定网络位置建立了连接,如果存在则断开连接(删除连接)?

我想要实现的一般是这样的:

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

    }
4

2 回答 2

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)

}

如果连接打开了文件,则删除可能会失败。

于 2013-06-05T12:07:35.090 回答
0

使用Test-Pathcmdlet。$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
于 2013-06-05T11:58:23.027 回答