我有一個應用程序需要一個本地帳戶才能進行配置。我創建了內部的模塊我有2個文件夾:Puppet PowerShell執行
files
manifests
下表現init文件我有下面的代碼:
class xyz {
exec { ' app_config':
command => ' C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe -file c:\provisioning\modules\xyz\files\config1.ps1 '
}
}
下的文件夾中有是2個文件:
config1.ps1
app_execute.bat
在config1.ps1
我創建一個本地用戶:
$user = $env:COMPUTERNAME/Testing
$Credentials = New-Object -TypeName System.Management.Automation.PScredential -ArgumentList $user, ("[email protected]", | ConvertTo-SecureString -AsPlainText -Force)
Start-Process C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe -Credential $Credentials -ArgumentList " Start-Process C:\Windows\System32\cmd.exe -File c:\provisioning\c:\provisioning\modules\xyz\files\app_execute.bat "
在app_execute.bat
c:\puppet\app.bat -f c:\puppet\responsefile.rsp
的日誌文件顯示PowerShell的文件config1.ps1
得到成功執行,但應用程序離子記錄文件沒有被生成,但是當手動執行config1.ps1
應用程序將被配置。
不確定,在config1.ps1
中,我使用的是Start-Process
,它將使用本地帳戶創建單獨的進程。
我覺得木偶不等待上面config1.ps1
成功完成。
不知道它爲什麼沒有完全執行,是否有任何條件,因爲我們需要在init中只執行一個文件,因爲我正在啓動2個進程。
一個'exec'資源,啓動一個powershell腳本,啓動一個PowerShell進程,啓動一個CMD進程,該進程運行一個批處理文件(具有無效路徑),該文件運行另一個批處理文件,該文件處理某種響應文件。哇。只是... *哇!*我的建議是:扔掉它並重新開始。從頭開始。考慮使用['用戶資源](https://docs.puppet.com/puppet/4.6/reference/resources_user_group_windows.html)這次創建本地用戶。 –
@AnsgarWiechers,非常感謝您的幫助,我會嘗試用戶資源並進行檢查。 – Shivayogi
@AnsgarWiechers,我使用的用戶資源選項,但它是拋出錯誤,我提出了相同的票據http://stackoverflow.com/questions/39653659/puppet-local-account-creation-error – Shivayogi