관리자로 실행중인 PowerShell에서 네트워크 드라이브에 액세스 할 수 없습니다.
Windows 7 x64 가상 머신에서 PowerShell을 실행하고 있습니다. 네트워크 드라이브 (Z :)로 매핑 된 호스트에 공유 폴더가 있습니다. PS를 정상적으로 실행하면 해당 드라이브에 제대로 액세스 할 수 있지만 "관리자 권한"으로 실행하면 다음과 같이 표시됩니다.
Set-Location : Cannot find drive. A drive with the name 'Z' does not exist.
At line:1 char:13
+ Set-Location <<<< Z:
+ CategoryInfo : ObjectNotFound: (Z:String) [Set-Location], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
관리자로 네트워크 드라이브에 액세스하려면 어떻게합니까?
결국 수정은 관리자로 실행하는 동안 드라이브 문자를 다시 매핑하는 것입니다 .
net use Z: "\\vmware-host\Shared Folders"
동일한 PowerShell 인스턴스 (또는 PowerShell에서)에서 수행 할 필요가 없습니다. 전체 로그온 세션에 대해 한 번만 수행하면됩니다.
제 경우에는 드라이브 매핑 대신 UNC 경로를 간단히 사용할 수 있었고 제대로 작동했습니다.
따라서 예에 따라 매핑 된 드라이브 Z : \를 사용하는 대신 "\\ vmware-host \ Shared Folder"를 경로로 사용했습니다.
나에게했다 또 다른 해결 방법 나이를 찾기 위해 실행하는 net use
예약 된 작업에서 신약 AUTHORITY \ SYSTEM에 같은 계정. 분명히 이 계정으로 매핑 된 드라이브는 모든 사용자와 모든 고도 수준 표시 .
나는 이것을 테스트했으며 NFS 공유에서도 작동합니다 (조금 까다로울 수 있음). 시스템 시작시 실행되도록 예약 된 작업 세트를 만들고 일반적인 명령을 지정하기 만하면됩니다.
net use Z: \\server\share /persistent:no
을 사용하여 한 번만 실행해도 될 수 /persistent:yes
있지만 시도하지 않았습니다. 물론 "다시 매핑"도 작동하지만 다른 컨텍스트에서 실행되는 예약 된 작업에는 해당 드라이브가 여전히 표시되지 않습니다. 단점은 모든 실제 사용자도 볼 수 있으므로 다중 사용자 설정에는 좋지 않습니다.
Powershell이 관리자 모드에서 실행될 때 profile.ps1에서 "누락 된"PSDrive를 다시 만드는 다음 해키 솔루션을 사용하고 있습니다.
# Reconnect PSDrives for network connections when running with elevated privileges
$elevated = (([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
if( $elevated ) {
net use | ?{ $_ -match ":\s+\\\\" -and !$_.StartsWith("Unavailable") } | %{
$tokens = $_.split(":")
$psdrivename = $tokens[0][$tokens[0].length-1]
$path = $tokens[1].trim().split(" ")[0].trim()
if( !(get-psdrive | ?{ $_.Name -eq $psdrivename } )) {
write-host ( "Restoring PSDrive for {0}: {1}" -f $psdrivename, $path )
new-psdrive $psdrivename FileSystem $path | out-null
}
}
}
새 psdrive 를 해당 데이터에 액세스하는 것은 어떻습니까? PSDrive는 스크립트를 작성하거나 powershell에서 네트워크 데이터 저장소에 액세스 할 때 시스템 매핑 된 드라이브보다 낫지는 않지만 잘 작동합니다.
New-PSDrive cmdlet 사용 지침 은 다음과 같습니다. Technet : New-PSDrive
관리자와 사용자 계정 모두에 대한 프로필에 새 psdrive를 추가 할 때마다 새 psdrive를 만들 필요가없는 경우 powershell을 열 때마다 자동으로 사용할 수 있습니다.
~ 댄
Vista 이후로 Microsoft에 알려진 문제인 것 같습니다.
마이크로 소프트 Knowled 자료 문서 와 안전하지 않은 레지스트리 수정.
우리 직원 중 일부는이 후에 기계가 시작되지 않을 수도 있다는 느낌을 가지고 있기 때문에 현재이 접근법을 평가하고 있습니다 ;-)
다른 답변 중 어느 것도 나를 위해 일하지 않았습니다. 그러나 @TimothyLeeRussell의 대답 은 나를 올바른 방향으로 가리 켰습니다.
제 경우 .bat
에는 네트워크 드라이브에 파일이 있습니다. 관리자 권한으로 실행하면 명령 프롬프트 창만 깜박이고 즉시 사라집니다. 관리자 권한 명령 프롬프트에서 파일의 내용을 실행하면 제대로 작동했습니다.
마지막으로 .bat
매핑 된 네트워크 드라이브에서 파일을 실행 해 보았습니다 . UNC 경로를 사용하도록 파일 실행을 변경했는데 제대로 작동했습니다.
'UFO ET IT' 카테고리의 다른 글
C #의 유창한 인터페이스 및 상속 (0) | 2020.12.30 |
---|---|
Drupal 행동 (0) | 2020.12.30 |
C에서 불투명 포인터는 무엇입니까? (0) | 2020.12.30 |
Python에서 함수를 중첩 할 때 오버 헤드가 있습니까? (0) | 2020.12.30 |
Java 직렬화-java.io.InvalidClassException 로컬 클래스가 호환되지 않습니다. (0) | 2020.12.30 |