Windows 服务器启动脚本上的 PSExec
PSExec on Windows Server Startup Script
我正在使用启动脚本以编程方式启动 Google 云计算实例 运行 Windows Server 2016。
启动脚本中的可执行文件需要以特定用户身份启动,因此我尝试使用 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 云计算引擎实例中作为 windows-startup-script-cmd
提供)导致未写入任何文件。
有什么解决办法?是否有更有效的方式以特定用户身份执行启动脚本?
看顾虑,不推荐使用PSEXEC。
通常,我们使用 PSExec 来调用远程系统中的 GUI,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
,这也应该从元数据键中获取它
注意:我没有考虑 accepteula -w "c:/app" 部分。请相应地合并占位符。
希望对您有所帮助...!!!
我正在使用启动脚本以编程方式启动 Google 云计算实例 运行 Windows Server 2016。
启动脚本中的可执行文件需要以特定用户身份启动,因此我尝试使用 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 云计算引擎实例中作为 windows-startup-script-cmd
提供)导致未写入任何文件。
有什么解决办法?是否有更有效的方式以特定用户身份执行启动脚本?
看顾虑,不推荐使用PSEXEC。
通常,我们使用 PSExec 来调用远程系统中的 GUI,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
,这也应该从元数据键中获取它注意:我没有考虑 accepteula -w "c:/app" 部分。请相应地合并占位符。
希望对您有所帮助...!!!