自动执行Windows组策略计划任务首选项不起作用

62lalag4  于 2023-06-24  发布在  Windows
关注(0)|答案(1)|浏览(143)

我正在尝试在不使用组策略管理gui/mmc.exe的情况下,在我的域中自动创建计划任务,并且我非常接近。我正在运行Windows Server 2019数据中心。我手动创建一个完全有效的XML文件在\\$domain\sysvol\$domain\policies\$policy_guid\preferences\machine\scheduledtasks\scheduledtasks.xml,它是在一个适当的GPO,和GPO链接到域,但这里是踢球;除非我编辑它,否则它不会显示在GPO视图中。将创建.xml文件,但它不会显示在mmc.exe中的GPO中,除非我手动打开GPO,右键单击->编辑->转到编辑器中的计划任务位置,然后它将显示在编辑器中,但我必须打开计划任务的属性(所有属性都正确填充)并关闭它。一旦我这样做了,计划的任务将在刷新时填充在GPO中。GPO编辑在幕后做了什么我没有做的?我决定使用Procmon.exe来看看是否能捕捉到它在做什么,但唯一似乎可信的是对IPC$共享的一系列调用,我不确定如何从那里分析它。
之后,我开始使用PowerShell的Backup-GPO和Import-GPO来查看是否可以重新创建GPO。我创建了一个GPO的备份,其中包含一个手动创建的有效计划任务和一个未在mmc.exe中显示的自动任务。当我导入GPO并从备份目录中重新创建它时,它完全恢复了最初的状态,其中一个功能性的Scheduled Task项目和一个不工作的项目。由于导入是从一个目录完成的,这个目录是GPO的一个副本,带有一些额外的备份文件,我在目录中挖掘,试图看看Import-GPO如何正确地创建一个Scheduled Task项目,因为差异必须在该目录中。除非它是从存储在目录中的GPOReport中创建的,否则我找不到答案。唯一可疑的是在策略目录下有一堆对“adm”目录的引用,而“adm”目录似乎不存在。
所以我终于要给予了。我已经尝试做了我能想到的所有其他事情,以使.xml文件中的计划任务显示在mmc.exe中并填充到域上的主机上(是的,在MMC中显示或不显示与更新到主机之间存在直接相关性)。我有各种各样的编辑GPO和注册表键值与PowerShell,重新启动活动目录服务的DC。我唯一能从逻辑上想到的是MMC中的设置和属性编辑器更新某个标志、文件或键,然后告诉MMC,当您刷新MMC时,GPO中有新的数据。
即使你没有一个解决方案,更多的想法尝试将是欢迎的。

but5z9lq

but5z9lq1#

我设法做了一些类似的事情,使用一些XML争论来创建新的驱动器MapGPO,所以我认为这可以适应您在这里所做的事情。在我的例子中,我创建了一个模板GPO,然后将其复制到新名称,设置所需的权限,检索我刚刚创建的策略的GUID,然后用它查找并编辑刚刚创建的XML为我的新设置。完整的代码块是:

# Copy an existing drive mapping GPO, set permissions and link it to the OU
$null=Copy-GPO -SourceName "TEMPLATE - Map network drive" -TargetName "$targetGPOname"
"Map network drive GPO copied"
$null=Set-GPPermissions -Name "$targetGPOname" -PermissionLevel GpoApply -TargetName "$targetUserGroup" -TargetType Group
"Map network drive GPO permission 1 done (add $targetUserGroup)"

$null=Set-GPPermissions -Name "$targetGPOname" -PermissionLevel GpoRead -TargetName "$domain\Domain Computers" -TargetType Group
"Map network drive GPO permission 2 done (add $domain\Domain Computers)"

$null=Set-GPPermissions -Name "$targetGPOname" -PermissionLevel None -TargetName "Authenticated Users" -TargetType Group
"Map network drive GPO permission 3 done (remove authenticated users)"
$null=New-GPLink -Name "$targetGPOname" -Target "OU=myOU,DC=mydomain,DC=co,DC=uk" -LinkEnabled Yes
"New Map network drive GPO linked to target OU"
# Find the ID of the newly created GPO
$guid = get-gpo -name "$targetGPOname"
$policy_guid=$guid.Id.ToString()

# Read the drives.xml file containing the newly created GPP settings, amend them with the correct COMPAN details and update it
$drivesxml=new-object XML
$drivesxml.load("\\$domain\sysvol\$domain\policies\$policy_guid\preferences\{$policy_guid}\User\Preferences\Drives\drives.xml")
$path=$drivesxml.SelectNodes('/Drives/Drive/Properties')
$path[0].path = $path[0].path -replace 'oldString$',$newString
$path[0].label = $path[0].label -replace '^oldstring',$newString
$drivesxml.save("\\$domain\sysvol\$domain\policies\$policy_guid\preferences\{$policy_guid}\User\Preferences\Drives\drives.xml")
"Group Policy $targetGPOname amended for new path"

因此,如果您在计划任务中更改的一个或多个设置可以类似地找到并替换以完成您所需的任务,那么您可能能够根据您的需要进行调整。
或者,使用现有的设置,您可能会发现,只需使用上面的New-GPLink cmdlet,或者加载并保存XML,就足以使其正确显示。

相关问题