使用powershell创建计划任务并且不存储密码

2024-03-12

我正在尝试制作一个 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

这对于设置任务来说效果很好,我唯一想要的就是能够从管理组中的任何用户运行该任务,而管理员(任务运行的身份)未登录并且我不希望来存储密码。当我通过 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      :

我发现的唯一区别是登录类型是 S4U 与密码。所以在我的powershell中我添加了

$principal = New-ScheduledTaskPrincipal -UserId Administrator -LogonType S4U -RunLevel Highest

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

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

Mack.


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

试试这个:

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

如果失败,请尝试将主体放入行中并将其从 InputObject 中取出:

Register-ScheduledTask -TaskName $taskName -Action $action -Principal $Principal
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用powershell创建计划任务并且不存储密码 的相关文章

随机推荐

  • AudioQueue内存播放示例

    有人知道使用 AudioQueue 从内存源播放的任何示例吗 我可以从文件中找到播放的所有示例 使用 AudioFileReadPackets 但在我的特定情况下 我自己实时生成数据 因此理想情况下 我想自己将数据排入队列 而不是使用回调将
  • 在开发期间清除 Rails 会话

    如何清除 Rails 会话以便我可以重新开始 我知道我可以用以下方法使每个会话变量无效session my var nil 但是是否有 rake 任务或知道如何将会话数据恢复为其最基本形式的任务 我在用着Spree http demo sp
  • phpMyadmin 数据库导入错误 #1046 - 未选择数据库

    我有一个从另一台计算机上的 phpmyadmin 导出的 sql 文件 我尝试在此计算机上导入该文件 但收到此错误 Error SQL查询 Database phplogin Table structure for table people
  • 如何让div居中对齐?

    我想要一个垂直和水平居中的 div 即位于页面的中心 我尝试了position absolute并将div的右上角左下角设置为0 但问题是 当我放大页面时 它与其他标题和其他 div 重叠 请帮我 如何在放大页面时将 div 定位在页面中心
  • C# 控制台应用程序 - 如何始终从控制台读取输入?

    我目前正在编写一个使用大量多线程的控制台应用程序 我希望能够始终允许用户在控制台中输入内容 但是 线程会定期输出到控制台 但我希望用户始终能够在控制台中输入内容 并由我来处理输入 我将如何实现这一目标 我在网上没有找到任何相关内容 先谢谢了
  • 如何使用 Java 将 JPEG 图像读入 BufferedImage 对象

    这不是一个重复的问题 因为我已经在Google和StackOverflow中寻找解决方案很长时间了 但仍然找不到解决方案 我有这两张图片 这是来自同一网站的两张图像 具有相同的前缀和相同的格式 唯一的区别是尺寸 第一个较大 而第二个较小 我
  • 导航栏链接到子文件夹

    每当我有一个指向子文件夹中页面的链接时 它就会冻结子文件夹中的导航栏 以便浏览器链接保留在子文件夹中并且无法找到 在 Visual Studio Express 中使用母版页 母版页如下所示
  • EAGL:它到底代表什么?

    我忘了 但是 EAGL 代表什么具体的东西吗 或者它只是核心动画 OpenGL 命名约定的一部分 CAEAGLLayer 等 AGL 是苹果 OS X 的 OpenGL 扩展的名称 我相信 EAGL 是 Embedded AGL 或 ES
  • 为什么使用map、forEach和for循环插入数据库时​​数组的顺序不同

    我有一个数组 1 2 3 4 5 当插入数据库时 我除了收到数据库中的 1 2 3 4 5 这样的结果之外 但只有循环 for 才能给我预期的结果 map 和 forEach 总是给我无序数组 如 1 3 4 5 2 或 4 3 2 5 1
  • EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

    我真的不明白为什么我有这个错误 首先 调试器停在机器代码处 该线程也没有显示任何内容 程序实际上没有代码就停止了 所以和 dispatch worker thread有关系 那是什么 有什么办法我可以调试这个吗 我应该回滚吗 当您运行 CP
  • pip ImportError:无法从“集合”导入名称“映射”

    pip 尝试访问的 python 库似乎存在冲突 如以下错误所示 root fedora user pip Traceback most recent call last File usr local bin pip line 5 in
  • Format-Table 根据输出缓冲区宽度设置列宽

    我有一个使用的 cmdletFormat Table输出可能很长的字符串 例如注册表路径 我想将每列宽度设置为输出缓冲区宽度除以列数 Example function Write Something CmdletBinding param
  • cassandra 列族数量的增加对堆利用率有什么影响?

    我们使用的是 cassandra 1 1 出于某些优化目的 我们决定增加键空间中的列族数量 对堆利用率有影响吗 Cassandra 是否有可能耗尽内存 根据 Cassandra Wiki 每个节点 消耗的堆大小定义为 memtable th
  • 无法读取 Angular 2 嵌套调用中未定义的属性“订阅”

    我想订阅company list component on getCompanies 来自company service 但是我收到以下错误 无法读取未定义的属性 订阅 这是代码 公司 service ts getCompaniesOfUs
  • 修复同时包含 UTF-8 和 Windows-1252 的文件

    我有一个生成 UTF 8 文件的应用程序 但某些内容的编码不正确 一些字符被编码为 iso 8859 1 又名 iso latin 1 或 cp1252 又名 Windows 1252 有没有办法恢复原文 Yes 显然 最好修复创建文件的程
  • 跨模块单例

    我正在尝试实现单例 但在导入模块时遇到了困难 我的设置如下 我正在使用Python 2 7 MODULE 1 class SingletonClass object def new self args kwargs if not self
  • Perl 部分匹配

    请考虑下面的脚本 我想将 b 与 a 匹配 即使 b 是部分匹配 这件事能做得到吗 a MCF 7 b MCF if b m a i print FOUND 虽然正则表达式可以做到这一点 但听起来您的问题也可以通过index功能 say i
  • 创建目录符号链接时出现问题

    我一直致力于开发一个程序来管理文件夹的符号链接 该程序运行良好 直到我转向在 Windows 8 计算机 从 Windows 7 上继续工作 自从这样做以来 我的CreateSymbolicLink 方法返回错误代码 2 这是我想要链接目录
  • 通过 Parse 检索我的 Android 应用程序中与我的电话联系人列表匹配的用户列表

    我正在使用 Parse 开发一个 Android 聊天消息应用程序 在我已成功完成的注册过程中保存用户的电话号码 用户名和密码 现在 我想获取已保存在 电话联系人 列表下与其电话号码匹配的用户列表 并在列表视图中显示用户 我一直坚持编写解析
  • 使用powershell创建计划任务并且不存储密码

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