관리자 권한이 있거나없는 네트워크 공유에서 exe를 실행 하시겠습니까?


1

네트워크 공유 (Linux CIFS 서버)에있는 Win7 exe를 실행하려고합니다. 공유는 비 관리자가 생성했습니다 (참조 공유 폴더에 액세스하는 Windows 7 문제 ). exe가 들어있는 폴더에서 파일을 읽고 편집하고 쓸 수 있습니다. 나는 exe를 읽을 수있다.

하지만 내가하려고하면 운영 UAC 대화 상자를 두 번 클릭하고 확인을 클릭하거나 "관리자 권한으로 실행"을 마우스 오른쪽 버튼으로 클릭하여 EXE를 실행하면 얻을 수있는 작업은 다음과 같습니다.

Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.

exe를 실행하기 전에 로컬 디스크에 복사해야합니까?

나는 (아직 받아 들여지지 않은 답에 대한) 조리법을 따라 갔다. 네트워크 공유에서 EXE를 실행하려면 어떻게해야합니까? ,하지만 그것은 exe 권한이 아니라 읽기 권한 만 부여하는 것으로 보입니다.

(멀리 관련 : 네트워크 드라이브에서 .exe를 실행할 수 없다 .)

답변:


0

이것은 (비록 비정상적인) 행동이 예상됩니다.

네트워크 공유에서 프로그램을 실행하면 몇 가지 방법으로 수행 할 수 있습니다.

  1. 공유가 네트워크 드라이브에 매핑됩니다 (예 : g: & gt; \\server\share
  2. 공유에 직접 액세스 할 수 있습니다. \\server\share

첫 번째 문제는 관리자 권한으로 프로그램을 실행할 때 이미 문제가 발생할 수 있습니다. 이에 대해서는 아래에서 설명합니다.

관리자 권한으로 프로그램을 실행하면 어떻게됩니까?

관리자로 프로그램을 실행하면 새로운 환경이 생성되고 관리자 프로필이로드됩니다. 사용자가 보유한 권한을 사용 하긴하지만 분명히 관리자 권한이 있습니다. 결과적으로 네트워크 드라이브에 대한 매핑이 생성되지 않으므로 관리자 사용자에게는 프로필에 추가 네트워크 매핑이 없으므로 g :가 존재하지 않습니다.

공유의 보안 설정이 매우 엄격한 경우에도 관리자 사용자에게 권한이 없어도 가능합니다.

문제를 해결하고 극복하는 방법?

분명히 파일을 로컬로 복사 한 다음 실행할 수는 있지만이 작업을 원하지 않는다고 가정 할 수 있습니다.

먼저 관리자로 명령 프롬프트를 시작할 수 있습니다. 거기에서 다음 명령을 입력하십시오 :

net use g: \\server\share

드라이브를 교체하고 기존 공유와 일치하도록 공유하십시오.

이 명령 프롬프트 창이 열려있는 한 실행 파일을 관리자로 실행할 수 있으며 보장 할 수 있습니다.

귀하의 사용자에게 \\server\sharenet use는 오류를 표시하여 정확히 실패 할 것이므로이 문제가 어디에 있는지 알 수 있습니다.

권한이 좋은 경우에는 다음으로 이동하여 실행 파일에 액세스 할 수 있습니다. \\server\share 실행 파일을 관리자로 실행하십시오. 따라서 다른 환경에서 네트워크 공유를 처음으로 수행 할 필요가 없습니다.


1
관리자 수준 명령 프롬프트에서, net use g: \\server\share 성공 : 드라이브 G가 나타나고 해당 폴더에서 읽고 쓸 수 있습니다. 하지만 그 프롬프트에서 exe를 실행하면, 나는 Access is denied. 같은 일이 발생합니다. \\server\share\...\foo.exe.
Camille Goudeseune

1
그런 다음 실행 파일은 해당 폴더와 다른 보안 설정을가집니다.
LPChip

물론입니다. Linux 서버에서, chmod a+x foo.exe Windows에서 실행 가능하게 만들었습니다.
Camille Goudeseune

약간 exes는 명령 프롬프트와 Windows 탐색기에서 잘 실행됩니다. 다른 사용자는 즉시 실행 한 다음 아무런 오류없이 명령 프롬프트로 돌아갑니다. 콘솔 출력이 있기 때문일 수 있습니다. 어쨌든, 그냥 코멘트, 더 많은 조사가 필요; 주요 질문에 대한 답이 남아 있습니다.
Camille Goudeseune

1

이 기술 자료 문서에서 설명한대로 EnableLinkedConnections 값을 1로 설정해야합니다.

Windows에서 UAC가 "자격 증명 확인"으로 구성되어 있으면 매핑 된 드라이브를 관리자 권한의 프롬프트에서 사용할 수 없습니다.
https://support.microsoft.com/en-us/kb/3035277

  1. 레지스트리 편집기에서 다음 레지스트리 하위 키를 찾아 누릅니다.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System

  2. 오른쪽 창에서 새로 만들기를 마우스 오른쪽 단추로 누른 다음 DWORD (32 비트) 값을 누릅니다.

  3. 새 레지스트리 항목의 이름을 EnableLinkedConnections.
  4. 두 번 클릭하십시오. EnableLinkedConnections 레지스트리 항목.
  5. DWORD 값 편집 대화 상자에서 값 데이터 필드에 1을 입력 한 다음 확인을 누릅니다.
  6. 레지스트리 편집기를 끝내고 컴퓨터를 다시 시작하십시오.

1
이 일을 마친 후에도 Windows cannot access the specified.... (맞춤법 검사 후 EnableLinkedConnections 다시 시작하면됩니다.)
Camille Goudeseune

exe를 실행하려고 시도하는 동안 백그라운드에서 프로세스 모니터를 실행하십시오. channel9.msdn.com/Shows/Defrag-Tools/...
magicandre1981

나는이 레지스트리 변경을 취소하기에는 너무 게으른 편이지만, 의심의 이익을 줄 것이며 문제를 해결하는 데 도움이되었다고 생각합니다. +1. 그러나 나는 LPChip의 대답이 작동하도록 exe를 얻었음을 직접적으로 관찰했다. 그래서 LPChip의 대답은 받아 들여진다.
Camille Goudeseune

1

일부 설치 프로그램은에서 액세스 할 수 있어야합니다. NT AUTHORITY\SYSTEM네트워크 드라이브는 사용자별로 다릅니다. EnableLinkedConnections 이 경우에는 도움이되지 않습니다.

기존 네트워크 드라이브를 삭제하고 시스템 수준에서 다시 매핑하십시오. 이를 위해 작업이 포함 된 예약 된 작업을 만듭니다. net.exe 인수 : use z: \\host\share\ (필요한 경우 암호 제공)이 작업을 실행하는 계정을 다음으로 변경하십시오. NT AUTHORITY\SYSTEM. /PERSISTENT:yes 작동하지 않는 것 같아서 부팅 할 때 실행하도록 예약해야합니다.

당신이 그것을 실행하면, 전체 시스템은 네트워크 드라이브를 볼 것입니다. Windows 탐색기에서는 연결이 끊긴 것으로 표시되지만 그래도 작동합니다.


나는 GUI를 사용하여이 특별한 사용자를 설정할 수 없었기 때문에 cmd와 같은 태스크를 만들어야했다. schtasks /Create /RU "NT AUTHORITY\SYSTEM" /TR "net use z: \\192.168.1.1\share" /TN "map share" /SC ONLOGON. 다시 부팅 한 후 작업이 성공적으로 완료되었다고하지만 결과는 다음과 같습니다. (0x2) 드라이브가 매핑되지 않았습니다.
Elliott B

@ElliottB는 stdout과 stderr를 캡쳐하거나 리다이렉션하는 작업을 변경하고 그것이 무엇을 출력하는지 봅니다.
basin

@ElliottB 재부팅 할 필요없이 수동으로 작업을 실행하십시오.
basin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.