【发布时间】:2017-04-18 15:16:09
【问题描述】:
我们最近开始在我的工作地点推出 2016 年的盒子,我现在正在经历的部分过程是使用户配置文件尽可能“用户友好”。
您可能知道 Server 2016 具有 Windows 10 开始菜单配置,不幸的是,对于我的特殊情况,管理工具、PowerShell 等对于我们无法运行它们的客户来说非常容易获得,但我会如果他们确实尝试运行任何这些快捷方式,那么他们可能会遇到服务器出现问题的可能的负面印象/误解,所以......
我正在尝试获取一个批处理文件,我可以以每个用户身份登录或从我自己的域管理员配置文件中运行该批处理文件,并从包含这些快捷方式的 appdata roaming 和 appdata local 中删除文件夹....I不想只删除客户的域管理员快捷方式。
这是我目前所拥有的,但不能完美运行。我从遇到的各种脚本中拼凑出来,因为我对这些脚本的编码相对缺乏经验……在我的测试环境中,它会影响多个配置文件虽然我没有意识到它会这样做,它实际上只适用于 WinX 快捷方式文件夹......它正在删除它,但其他文件夹仍然存在......
任何帮助我破译我的无能在这里将不胜感激..
@ECHO OFF
:START
cls
cd %USERPROFILE%
cd..
set profiles=%cd%
for /f "tokens=* delims= " %%u in ('dir /b/ad') do (
cls
title Removing %%u Unnecessary shortcuts from roaming. . .
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System" echo Deleting....
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System" cd "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System"
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System" del *.* /F /S /Q /A: R /A: H /A: A
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System" rmdir /s /q "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System"
cls
title Removing %%u More unnecessary shortcuts from roaming. . .
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" echo Deleting....
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" cd "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools"
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" del *.* /F /S /Q /A: R /A: H /A: A
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" rmdir /s /q "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools"
cls
title Removing %%u Even more unnecessary shortcuts from roaming. . .
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" echo Deleting....
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" cd "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell"
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" del *.* /F /S /Q /A: R /A: H /A: A
if exist "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" rmdir /s /q "%profiles%\%%u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell"
cls
title Removing %%u Unnecessary shortcuts from WinX Menu. . .
if exist "%profiles%\%%u\AppData\Local\Microsoft\Windows\WinX\Group3" echo Deleting....
if exist "%profiles%\%%u\AppData\Local\Microsoft\Windows\WinX\Group3" cd "%profiles%\%%u\AppData\Local\Microsoft\Windows\WinX\Group3"
if exist "%profiles%\%%u\AppData\Local\Microsoft\Windows\WinX\Group3" del *.* /F /S /Q /A: R /A: H /A: A
if exist "%profiles%\%%u\AppData\Local\Microsoft\Windows\WinX\Group3" rmdir /s /q "%profiles%\%%u\AppData\Local\Microsoft\Windows\WinX\Group3"
)
cls
goto END
:END
exit
【问题讨论】:
-
你的代码一团糟。请edit 正确格式化。如果您不确定如何操作,请单击?上方文本区域的右上角并阅读提供的信息。另外,FWIW,您的方法完全错误。您应该为此使用组策略;它会为非管理员用户删除菜单项,而无需手动删除任何内容。它还会使这些菜单项再次自动对管理员可用。
-
使用组策略方法来澄清问题:已经制定了阻止用户运行这些快捷方式的策略。它不做的是将它们从可见性中删除/从一开始就取消固定它们。我必须从开始手动取消固定并手动进入并更改包含快捷方式的文件夹的 NTFS 权限或删除它们,以便能够为客户提供我正在努力争取的环境。您可以想象,每台服务器上有 30 多个用户,这会很耗时。
-
你们只是因为没有答案或者问题是什么而对我的问题投了反对票吗?
标签: batch-file user-profile windows-server-2016