我正在尝试设置PowerShell脚本来更改服务器上的时间,而不会以“本地服务”的身份运行用户的任何交互操作或输入密码,这将查询用户时间的任何更改,日期或时区,然后应用这些更改。
我尝试了多种使用RunAs /u:domain/username
“ powershell -file c:\myscript.ps1
”来运行脚本的方法,但是它不断提示我输入密码,而这不是我所需要的。我也尝试过通过psexec
启动它,但它只是打开了窗口,而不是实际的脚本。
方法1(这将打开窗口,但要求我提供该帐户没有的密码,即使我尝试输入-也没有添加脚本的选项):
RunAs /user:""NT AUTHORITY\LOCAL SERVICE" "powershell -file c:\zeke code\time-change.ps1"
方法2(这可以打开窗口,但是我不知道在password-变量中放什么,或者在start-process命令之后不知道在哪里添加代码来运行脚本)
$username = '"NT AUTHORITY\LOCAL SERVICE'
$password = 'password'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process powershell.exe -Credential $credential
我得到的错误是:
对于第一种RUNAS方法: RUNAS错误:无法获取用户密码
当我尝试使用第二种方法时,出现了以下错误: 无法将术语time-change.ps1识别为cmdlet,函数,脚本文件或可运行程序的名称。
该脚本应该以“本地服务”的身份运行,而不是以管理员身份运行,因为运行所有内容的普通帐户已经是管理员,因此我需要能够将时间更改限制为只能通过此脚本。此限制是由于我们CS指南的安全设置所致。 GPO的更改系统时间设置中唯一允许的条目是管理员(由于具有该级别帐户成员身份的正常登录用户无法使用)和“本地服务”。