저는 PowerShell을 처음 사용합니다. 컴퓨터를 끄기 전에 종료 시 이와 같은 작업을 수행하고 싶습니다. Windows MMC/로컬 그룹 정책 편집기에서 PowerShell 스크립트를 사용하여 이를 수행할 계획입니다.
cmd as admin
echo "SOME COMMAND"
echo "exit"
기본적으로 종료 또는 재부팅 이벤트를 트리거한 후 다음을 수행해야 합니다.
CMD를 관리자로 엽니다(그리고 UAC에서 자동으로 예를 선택합니까?).
일부 명령을 실행하십시오(많은 명령이 있을 것입니다).
CMD를 닫은 다음 Windows 10을 종료/재부팅하도록 허용합니다.
이제 종료 명령이 완료되기 전에 실행할 PowerShell 스크립트를 추가하도록 MMC를 얻는 방법을 알았습니다. 위의 세 단계를 수행하는 방법에 대한 구문을 알아야 합니다.
하지만 명확하게 말하자면:
내 주요 요점은 관리자로 CMD를 열고 명령을 입력한 다음 CMD를 종료할 수 있다는 것입니다. PowerShell은 일반적으로 관리자로서 몇 가지 특정 명령을 올바르게 실행하지 않지만 CMD는 실행합니다. 이런 방식으로 PowerShell 자체에는 관리자 권한이 필요하지 않고 임시 실행 CMD만 필요합니다.
필요할 때 UAC에서 '예'를 클릭해도 괜찮습니다. 문제가 발생하면 sendkey {TAB}{TAB}{ENTER}
등을 사용할 수 있을 것 같기 때문입니다. 인터웹에서 찾을 수 없는 것은 PowerShell 스크립트를 시작하여 저장할 수 있는 방법입니다. 그래도 구문에서 sendkeys를 많이 볼 수 있습니다. Linux의 bash에서는 간단합니다. #!/bin/bash
즉석에서 insta-bash를 수행하지만 Windows는 이와 관련하여 저음이 좋지 않은 것 같습니다.
CMD > Echo "stuff" > Exit CMD보다 더 좋은 방법이 있다면 알려주시기 바랍니다. 각 Echo "항목"(또는 결국 사용하게 되면 sendkeys)에 어떤 항목을 입력하고 싶은지 알고 있지만 관리자 권한으로 CMD를 여는 방법을 모르겠습니다.
감사해요.
답변1
나는 당신이 무엇을 쫓고 있는지 정말로 이해하지 못합니다.
그러나 PowerShell의 목표는 GUI 자동화 도구가 아닙니다. VBScript를 통해 할 수 있는 것처럼 SendKeys를 사용하여 일부 작업을 수행할 수 있습니다.
하지만 초보자이기 때문에 PowerShell을 빠르게 이해하여 이를 사용하는 시기와 이유는 물론, PowerShell을 진정으로 이해하는 것이 중요합니다. YouTube에 접속하여 'Beginning PowerShell'을 검색하고 SendKeys를 사용하여 PowerShell에 대한 웹 검색을 수행합니다. ---예---
사용 사례는 다음과 같습니다.
기본적으로 종료 또는 재부팅 이벤트를 트리거한 후 다음을 수행해야 합니다.
- CMD를 관리자로 엽니다(그리고 UAC에서 자동으로 예를 선택합니까?).
PowerShell을 시작하는 것은 PowerShell 명령 프롬프트입니다. 사용하기 위해 cmd.exe를 열 필요는 없습니다. PowerShell은 cmd.exe가 수행하는 모든 기능을 대체할 수 있습니다. UAC 수락은 관리자 권한 명령을 실행하려는 경우에만 해당됩니다. 관리자 자격 증명을 제공해야 하기 때문에 PowerShell은 UAC를 건너뛰지 않습니다. Windows에서는 이것이 필요합니다.
- 일부 명령을 실행하십시오(많은 명령이 있을 것입니다).
원하는 명령으로 스크립트를 작성하세요.
- CMD를 닫은 다음 Windows 10을 종료/재부팅하도록 허용합니다.
스크립트가 완료되면 기본적으로 PowerShell이 종료됩니다. 특별히 하지 말라고 하지 않는 한.
당신이 원하는 것은 로그오프와 로그온 스크립트입니다. 이를 작성하고 로그온/로그오프 그룹 또는 로컬 컴퓨터 정책 설정에 추가하면 됩니다.
로그온 스크립트에 PowerShell 및 그룹 정책 사용
그룹 정책을 사용하여 Windows PowerShell 로그온 스크립트 배포
*아래 광고 후속 조치를 기반으로 업데이트 *
당신이 원하는 것은 로그오프와 로그온 스크립트입니다. 이를 작성하고 로그온/로그오프 그룹 또는 로컬 컴퓨터 정책 설정에 추가하면 됩니다. 종료에 대해서도 동일한 항목을 설정할 수 있습니다. 재부팅하면 로그온 작업이 수행된다는 점을 기억하십시오. 여기에도 정책 설정이 있습니다. PowerShell 콘솔은 cmd.exe가 수행할 수 있는 모든 명령을 실행합니다. 올바르게 호출해야 합니다. UAC가 문제인 경우 모두 함께 비활성화하십시오. 이는 그렇게 함으로써 모든 보안 위험을 감수한다는 의미입니다.
UAC 수락은 관리자 권한 명령을 실행하려는 경우에만 해당됩니다. 관리자 자격 증명을 제공해야 하기 때문에 PowerShell은 UAC를 건너뛰지 않습니다. Windows에서는 이것이 필요합니다.
이것이 바로 Start-Process -Verb RunAs의 목적이며 자격 증명 스위치가 있지만 여전히 이를 제공해야 합니다. 따라서 여전히 메시지가 표시됩니다. 재사용을 위해 보안 파일에 자격 증명을 저장할 수 있지만 스크립트를 실행하기 전에 그렇게 해야 합니다.
귀하는 자신의 책임 하에 다음을 시도해 볼 수 있습니다.
https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc162321(v=msdn.10)
https://github.com/sushihangover/SushiHangover-PowerShell/tree/master/modules/PSUserTools
(특히 Start-ProcessAsAdministrator.ps1이라는 스크립트)