我有一个服务器列表,然后是每个服务器上的另一个服务列表。我正在尝试删除它,更改.bat中的一些值,然后再次安装服务。现在我已经使用启动了一个远程Powershell会话
$PSsession = New-PSSession -ComputerName $server -Credential $Credential
Enter-PSSession -Session $PSsession
我主要使用Invoke-Command -ScriptBlock {//somecodehere} -Session $PSsession
来运行到目前为止使用的每个命令。我最初的方法是使用sc.exe config $serviceName obj=$username password=$passwd
,但每次我在远程服务器上进行更改时,它都会告诉我存在NativeCommandError,并且服务存在登录问题。
有没有一种方法可以让我使用用户提供的凭据以安全的方式更改服务的用户名/密码?或者有人对我可以研究的更好的方法有什么建议吗?
所以我自己的问题的解决方案是创建一个脚本并将其复制到服务器上。然后它在机器内部运行sc.exe
命令。由于它是另一台机器,如果凭据是SecureString
,则不能将其作为变量发送。所以我的解决方案就是正常地创建这些变量,然后确保以后删除它们。
如果您正在处理机密数据,请不要忘记,在删除变量之前,通常需要覆盖变量3次。