2013-06-05 2 views
0

는이 같은 PowerShell의 모든 장치에서 분리합니다.PowerShell에서 네트워크 위치에 대한 기존 연결을 끊으려면 어떻게합니까?</p> <pre><code>Invoke-Expression -Command "net use * /delete /y" </code></pre> <p>그리고 내가 대신 ALL에서 분리의 특정 장치에 대해이를 수행해야합니다

질문 :이 경우 가 어떻게 이미 특정 네트워크 위치와 DISCONNECT에 대한 연결이있는 경우 테스트 할 수 있습니다 (연결 삭제)?

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 

    } 

답변

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) 

} 

제거에 실패 할 수 있습니다.

+0

if 절에서 테스트합니다. 공유 위치에 대한 열린 연결. 알았다. 그리고 다음 줄에서 매핑 된 드라이브 이름을 $ u로 가져오고 그 후에야 제거 할 수 있습니까? 나 맞아? – pencilCake

+0

@pencilCake 예, 열려있는 파일이 있는지 테스트하고 결과에 따라 매핑 된 드라이브를 제거하거나 다른 작업을 수행합니다. –

+0

Ok. 감각을 일으키지 만 로컬 이름이 비어있는 경우는 무엇입니까? – pencilCake

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 
+0

그러나 "\\ poooh.fooo.boo.com \ MyFolder"에 매핑 된 문자는 모르겠다. user = "FOO \ winnie"password = "12345678" – pencilCake