Powershell 스크립트를 한 줄씩 실행하면 작동하지만 스크립트 파일 실행에서는 동일하게 작동하지 않는 이유는 무엇입니까?

Powershell 스크립트를 한 줄씩 실행하면 작동하지만 스크립트 파일 실행에서는 동일하게 작동하지 않는 이유는 무엇입니까?

Windows 7 Prof에서 Windows Powershell_ISE(관리자 권한)에서 Powershell(버전 3) 명령을 실행하면 예상되는 결과(도메인 사용자를 로컬/머신 관리자 그룹에 추가)가 생성되지만 폴더의 스크립트 .ps1 파일에서 실행하면 C:\Users\myDomainUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup그렇지 않습니다. !?

$objGroup = [ADSI]("WinNT://myComputerName/Администраторы")'Administrators in Russian
$objUser = [ADSI]("WinNT://myDomainName/myDomainUser")
$objGroup.PSBase.Invoke("Add", $objUser.PSBase.Path)

왜?
Windows 7 재부팅 시 로컬 관리자 그룹에 도메인 사용자를 더 잘 추가하는 방법은 무엇입니까?

답변1

보안상의 이유로(그리고 스크립트 실행 정책 외에도) Microsoft는 메모장을 사용하여 열 수 있도록 .ps1 파일을 설정했습니다. (어리석은 Microsoft.) 예약된 작업이 더 나은 솔루션일 수 있지만 시작 폴더에서 스크립트를 시작하려면 시작 시 스크립트에 대한 바로가기를 배치하고 스크립트를 다른 곳에 저장하는 것이 좋습니다. 저는 다음과 같은 단축키를 사용합니다.C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "C:\Scripts\Powershell\Tool.ps1"

이 구문을 사용하는 경우 powershell에 전달하려는 추가 옵션은 -file 옵션 앞에 와야 합니다. -file 뒤의 모든 내용은 스크립트 경로 또는 스크립트에 전달될 옵션/인수로 해석됩니다.

답변2

작업 스케줄러를 사용하여 실행해 볼 수도 있습니다.

작업 스케줄러(시작 메뉴, 모든 프로그램, 액세서리, 시스템 도구, 작업 스케줄러)를 시작합니다. 오른쪽 패널에서 "작업 생성"을 선택합니다. 작업 이름을 입력합니다. 원하는 경우 사용자를 변경하십시오. "가장 높은 권한으로 실행"을 선택하십시오. 트리거 탭에서 원하는 항목에 따라 "로그온 시" 또는 "시작 시"에 대한 트리거를 만듭니다. 작업 탭에서 스크립트를 가리키는 새 작업을 만듭니다.

관련 정보