도메인 사용자를 위한 설치 프로그램 만들기

도메인 사용자를 위한 설치 프로그램 만들기

나는 꽤 오랫동안 뭔가로 어려움을 겪고 있습니다. 상사는 우리 파일 서버에 프로그램 설치 파일을 넣을 디렉터리를 원합니다. 이 디렉터리에는 모두 읽을 수 있고 자신만 수정할 수 있습니다.

그는 클라이언트 워크스테이션에 디렉토리를 읽고 사용자에게 어떤 파일이 있는지 보여주는 스크립트가 있기를 원합니다. 그런 다음 아무 것도 설치할 수 없는 일반 도메인 사용자인 사용자가 설치를 클릭하면 설치할 수 있습니다.

그 뒤에 있는 아이디어는 사용자 스테이션에 로컬 관리자를 두고 스크립트가 로컬 관리자의 비밀번호를 알게 한 다음 해당 로컬 관리자 자격 증명을 사용하여 사용자 컴퓨터에 프로그램을 설치하는 것입니다.

이는 스크립트 내부에 로컬 관리자 비밀번호를 저장하지 않고 어떻게 보안을 유지할 수 있는지 알 수 없기 때문에 매우 문제가 되는 문제입니다. 이는 매우 나쁜 일입니다.

어떻게든 비밀번호를 암호화하고 스크립트를 실행 파일로 변환하는 방법을 생각해 보았지만 컴퓨터에 대해 조금 아는 사용자가 실행 파일을 디컴파일하지 못할 방법은 보이지 않습니다. PowerShell 암호화를 사용하면 하나의 컴퓨터와 한 명의 사용자에게만 적합합니다.

그런 다음 다른 방법을 생각했습니다. 클라이언트 워크스테이션에서 파일러를 호출한 다음 파일러가 psexec를 다시 사용자에게 사용하도록 만드는 것이었지만 이는 너무 스파게티가 되는 것이었습니다.

그런 다음 Invoke-command를 사용하여 사용자 컴퓨터에서 파일러로 호출한 다음 파일러에서 다시 사용자에게 호출하는 방법을 고려했지만 모든 클라이언트에 WinRM을 허용해야 합니다.

이를 위해 PowerShell을 사용하고 있습니다. 어쩌면 여기 누군가가 비슷한 일을 했고 그것을 안전하게 수행하는 방법에 대해 나에게 조언해 줄 수 있을 것입니다.

첫 번째 옵션은 훌륭하게 작동했기 때문에 가능하면 계속 사용하고 싶지만 사용자 컴퓨터에 있는 PowerShell 스크립트에 자격 증명을 넣는 것뿐만 아니라 이 옵션을 보호하는 방법을 찾아야 합니다.

답변1

나는 두 가지 접근 방식을 봅니다.

  1. 다른 상사를 만나세요. 그는 자신이 요구하는 작업이 실제로 얼마나 복잡한지 전혀 모르고 항상 세부적인 부분을 살펴봤는지 의심스럽습니다. Windows 설치를 자세히 익히는 것은 매우 까다롭습니다.

아직도 읽고 있나요? 좋아요. 그것은 할 수 있습니다.

  1. 핵심은 백그라운드에서 "예약된 작업"으로 스크립트를 실행하는 것입니다. 머신별로 새로운 "예약된 작업"을 설정하면 이 작업에서 사용해야 하는 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다. 여기에서 설치 계정 자격 증명을 전달합니다. 비밀번호는 추후 복구가 불가능하므로 안전하다고 볼 수 있습니다. 이 "예약된 작업"에는 이제 전체 관리 권한이 있으며, 도메인 사용자 계정을 사용하는 경우(클라이언트에 관리자 권한을 부여하고 서버에 사용자 권한만 부여) 스크립트는 네트워크를 통해 설치 파일에 쉽게 액세스하여 트리거할 수 있습니다. 설치.

그러나 많은 설치 프로그램은 다소 멍청하므로 포그라운드에 로그인한 사용자가 아닌 프로그램을 설치하는 사용자(예: 설치 프로그램 사용자)가 사용할 프로그램을 설치한다는 점에 유의하십시오. 일부 설치 프로그램은 "모든 사용자"에게 설치하도록 매개변수화할 수 있으며, 다른 설치 프로그램의 경우 "필요한 모든 설정, 라이센스(!), 아이콘 등 프로그램에 필요한 모든 것을 추가할 수 있도록 스크립트를 더 똑똑하게 만들어야 합니다." 소프트웨어 설치 프로그램이 완료된 후 포그라운드 사용자 프로필에 "기능"을 추가합니다.

사용자 계정으로 작업을 수행하는 합법적인 방법은 전혀 없습니다. 사용자가 관리자 암호를 모르거나 관리자로부터 관리 권한을 부여받지 않고 자신의 권한을 관리자로 승격할 수 있는 방법이 있다면 모든 사용자는 언제든지 무엇이든 할 수 있습니다. 이는 항상 모든 사용자 계정을 관리자로 실행하는 것과 거의 동일합니다.

  1. 이제 사용자가 서버의 소프트웨어 중에서 선택하고, 사용자에게 소프트웨어를 설치할 권한이 있는지 확인하고, 사용자의 컴퓨터가 요구 사항을 충족하는지 확인할 수 있는 추가 스크립트, 웹 GUI 등 원하는 것이 무엇이든 필요합니다. 설치(하드웨어? 여유 디스크 공간? ...)가 성공합니다. 그런 다음 백그라운드 설치 프로그램이 읽을 수 있는 위치에 해당 정보를 저장해야 합니다. 서버에 있는 간단한 목록이면 충분합니다.

  2. 마지막으로 백그라운드 스크립트는 주기적으로 해당 목록에 액세스하고 설치 프로그램을 트리거합니다.

완료.

당신이 염두에 두고 있는 것은 자동화된 소프트웨어 배포 시설을 프로그래밍하는 것이라고 말씀드리겠습니다. 이를 수행하는 상용 도구가 있으며 그 중 하나는 Windows Active Directory가 내장되어 있으며 무료로 제공됩니다. 설치 프로그램이 다양한 Windows 소프트웨어에서 사용되는 많은 설치 프로그램 변형 중 다수(대부분? 전부? 일부?)를 마스터하는 지점에 도달하기 위해 개발자가 각각 몇 년과 돈을 투자했는지 모르겠습니다. 처음에는 클라이언트당 비용이 많이 들 수 있지만 Powershell에서 만들 수 있는 모든 항목으로 비용, 안정성, 기능, 문서 및 커뮤니티 지원 측면에서 어떤 상용 솔루션도 능가할 수 있을지 의문입니다.

답변2

이는 그룹 정책 소프트웨어 배포 작업처럼 들립니다. 이는 사용자에게 관리 권한이 없는 문제를 해결합니다.

에 의해출판패키지를 사용하면 사용자가 제어판에서 소프트웨어를 사용할 수 있게 됩니다(자동으로 설치하는 것이 아님).

최종 사용자의 관점에서:

설정

  1. Microsoft 가이드 보기여기(이전 기사이지만 여전히 관련성이 있음). "를 따르십시오.패키지 게시"패키지 할당" 섹션이 아닌 "패키지 할당" 섹션을 참조하세요.
  2. GPO 및 "소프트웨어 저장소" 공유에 대한 적절한 권한을 위임합니다. 이를 위해 특별히 보안 그룹을 생성할 수 있습니다.선택적 소프트웨어 관리자, 예를 들어 상사를 구성원으로 추가합니다. ACE가 다음에 적용되는지 확인하세요.이 개체와 모든 하위 개체: 승인하다수정하다선택적 소프트웨어 관리자를 위한 소프트웨어 폴더에 대한 NTFS 권한:
  3. 관리자 권한으로 다음 PowerShell 명령을 실행하여 상사의 컴퓨터에 그룹 정책 관리 콘솔을 설치합니다.
추가-WindowsCapability -이름 "Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0" -온라인

이제부터 상사는 설치 프로그램을 소프트웨어 공유에 복사하고 이에 따라 소프트웨어 배포 GPO를 수정할 준비가 됩니다. 단, 처음에는 상사의 안내가 필요합니다. 그리고 로컬 컴퓨터나 도메인 관리자 권한이 없으며 관련된 모든 사람에게 (합리적으로) 쉬운 경험이 제공됩니다!

최종 사용자와 상사가 가야 할 곳으로 바로 가기를 직접 푸시하여 작업을 더 쉽게 만들 수도 있습니다. 더 많은 관리 사용자로 확장해야 하거나 상사가 여러 컴퓨터를 돌아다니는 경우 그룹 정책 관리 콘솔 설치를 자동화할 수도 있습니다.

관련 정보