簡體   English   中英

Windows Server 啟動腳本上的 PSExec

[英]PSExec on Windows Server Startup Script

我正在通過啟動腳本以編程方式啟動運行 Windows Server 2016 的 Google 雲計算實例。

啟動腳本中的可執行文件需要以特定用戶身份啟動,因此我嘗試使用psexec啟動它以模擬所述用戶:

C:/psexec.exe \\\\\\\\WIN-SERVER-2016 -u WIN-SERVER-2016\\\\customuser -p custompassword -accepteula -w "c:/app" cmd /c node index.js

c:/app/index.js包含一個簡單的 hello world,它應該寫入一個文件。

如果我以任何用戶身份登錄並從 cmd 啟動此確切命令,則會寫入該文件。 從啟動腳本(在 Google Cloud Compute Engine 實例中作為windows-startup-script-cmd提供) windows-startup-script-cmd不會導致寫入任何文件。

解決辦法是什么? 是否有更有效的方法以特定用戶身份執行啟動腳本?

看着關注,我不建議你使用PSEXEC

通常,我們使用 PSExec 來調用遠程系統中 PS 不支持的 GUI。

在您的情況下,我建議您使用Invoke-Command運行

像這樣的東西:

$username = 'WIN-SERVER-2016\customuser'
$password = "custompassword"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr

$Script_block = {cmd /c  node index.js}

Invoke-Command -ComputerName  WIN-SERVER-2016 -Credential $cred -ScriptBlock $Script_block 

如果您使用windows-startup-script-cmd,這也應該從 Metadata 鍵中獲取

注意:我沒有考慮過accepteula -w "c:/app"部分。 請相應地合並占位符。

希望能幫助到你...!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM