2012-10-30 2 views
2

그래서 특정 사용자로 배치 파일을 실행하기위한 코드가 있습니다. 이 요리사 : 다른 사용자로 프로세스 만들기

Process.create(:command_line => "C:\\ThisGuysScript.bat ", :domain => "MYServer", :with_logon => "thisguy", :password => "thisguyspassword", :cwd =>"C:\\")

그래서 내가 요리사 및 재해 파업에 조리법에 넣고하려고

runas /user:thisguy "C:\ThisGuysScript.bat" 

은 그래서 루비과 같습니다 다음 구문을 자동화하는 나의 시도였다

require 'win32/process' 

::Process.create(:command_line => "C:\\ThisGuysScript.bat ", :domain => "MYServer", :with_logon => "thisguy", :password => "thisguyspassword", :cwd =>"C:\\") 

다음 오류로 인해 실패했습니다.

[Tue, 30 Oct 2012 15:57:03 +0000] FATAL: ArgumentError: You must supply a name when declaring a user resource 

그래서 win32 flavor 프로세스를 사용하고 싶지 않습니다. 요리사가 win32 모듈을 덮어 버리는 것 같습니다 (요리법은 실제로 루비가 아닌 opscode DSL입니다)

누구나이 작업을 얻을 수 있었습니까? 또는 다른 구현으로 동일한 기능. 창문 요리 책을 체크 아웃했지만 많은 것을 발견하지 못했습니다

답변

2

Windows 컴퓨터에서 프로세스를 생성하기위한 LWRP를 만들고 싶습니다.

당신이지고 오류가 당신이 당신의 요리 책에 이상이없는 경우 올바른 구문이

user "apache" do # or whatever the user name should be 
    # ... 
end 

입니다

user do # Missing name 
    gid 500 
    home "..." 
end 

같은 것을 의미, 포함 된 가능성이 있습니다 파일에 user라는 변수가있어이 문제가 발생할 수도 있습니다.

하위 쿼리에 답하기 위해 Chef는 일부 기능을 사용할 수있는 직선 루비이며 프레임을 실행하여 작업을 수행합니다. 요리사는 여러 단계로 진행됩니다. 나는 당신이 편집 단계에서 문제가 있다고 생각한다.

LWRP를 만드는 것은 길로 보입니다. 당신이 그렇게 멀리 가고 싶지 않다면 당신은 비슷한 것을 할 수 있습니다. 내가 배열 user_details 이름하지만 내 실제 호출에 그냥 사용자를 넣었다 사용하고 있었기 때문에

ruby_block "Firing process lazers" do 
    require 'win32/process' 
    ::Process.create(:command_line => "C:\\ThisGuysScript.bat ", :domain => "MYServer", :with_logon => "thisguy", :password => "thisguyspassword", :cwd =>"C:\\") 
end 
+0

오히려 곤란하게 사용자 오류였다. 하지만 일까지 (주로 나의 이해 도니는 다르게)를 삭제 한 ruby_block이 때문에 수용 위의 대답. 그것의 LWRP 측면에 대해 확실히 놀 것입니다. – PatrickWalker

관련 문제