gpt4 book ai didi

powershell - 使用powershell创建计划任务而不存储密码

转载 作者:行者123 更新时间:2023-12-03 18:21:28 25 4
gpt4 key购买 nike

我正在尝试制作一个 powershell 脚本来创建计划任务以按需运行命令。以下是我迄今为止的代码。

$taskName = "TestTask"
$taskPath = "<taskdir>"
$user = "$env:USERDOMAIN\$env:USERNAME"
$response = Read-host "What's your password?" -AsSecureString
$password=[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($response))
$action = New-ScheduledTaskAction -Execute "task.cmd"
$settings = New-ScheduledTaskSettingsSet -Compatibility WIN8
$principal = New-ScheduledTaskPrincipal -UserId Administrator -LogonType S4U -RunLevel Highest
$inputObject = New-ScheduledTask -Action $action -Principal $principal - Settings $settings
Register-ScheduledTask -TaskName $taskName -taskpath $taskPath -InputObject $inputObject -user $user -password $Password

这对于设置任务很有效,我唯一要寻找的是能够在管理员(任务运行的身份)未登录且我不想要的情况下从 admin 组中的任何用户运行任务来存储密码。当我通过 GUI 设置任务时,无论用户是否登录,我都可以选择按钮来运行上面的代码实现的。但它不会选中说不存储密码的框。当我在 powershell 中运行以下命令以查看创建的任务的属性时,输出如下
get-scheduledtask testtask | select -ExpandProperty principal

DisplayName :
GroupId :
Id : Author
LogonType : Password
RunLevel : Highest
UserId : WIN-REH2TQO7H7S\Administrator
ProcessTokenSidType : Default
RequiredPrivilege :
PSComputerName :

如果我对通过 GUI 创建的任务运行相同的命令,并进行不保存密码检查,我会得到以下信息
get-scheduledtask testtask | select -ExpandProperty principal

DisplayName :
GroupId :
Id : Author
LogonType : S4U
RunLevel : Highest
UserId : WIN-REH2TQO7H7S\Administrator
ProcessTokenSidType : Default
RequiredPrivilege :
PSComputerName :

我发现的唯一区别是 LogonType 是 S4U 与密码。所以在我的powershell中我添加了
$principal = New-ScheduledTaskPrincipal -UserId Administrator -LogonType S4U -RunLevel Highest

但即使在代码中将 LogonType 设置为 S4U,它在创建时仍将其设置为密码。我可以进入 GUI 并在 powershell 代码运行后物理更改任务,并检查该框,此时它设置正确。但是有没有人知道为什么代码不会这样做?或者如果我错过了什么?

感谢您的任何帮助,您可以提供,

马克。

最佳答案

我正在寻找类似的东西,使用启用了“不存储密码”的本地管理员帐户。你的帖子让我走上了正轨,我的现在可以工作了。

试试这个:

Register-ScheduledTask -TaskName $taskName -taskpath $taskPath -InputObject $inputObject

如果失败,请尝试将主体放入行中并将其从 InputObject 中取出:
Register-ScheduledTask -TaskName $taskName -Action $action -Principal $Principal

关于powershell - 使用powershell创建计划任务而不存储密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com