2016-12-03 7 views
-3

私は最近自分の雇用場所に2016ボックスを展開し始めました。現在、私が処理しようとしているプロセスの一部は、ユーザープロファイルを可能な限りユーザーフレンドリーにしています。フォルダ削除バッチファイルから予期しない結果が発生しました。サーバ2016

Server 2016にはWindows 10のスタートメニューの設定がありますが、残念なことに私の特定の状況では、管理ツール、PowerShellなどは、実行できないクライアントにとっては非常に簡単ですこれらのショートカットを実行しようとすると、サーバーに何か問題がある可能性があるという否定的な印象/誤解を避けたいと考えています。

バッチファイルを取得しようとしていますこれらのショートカットを含むローカルのappdataローミングとappdataからフォルダを削除することができます....私の仲間のドメイン管理者のショートカットだけを削除したくないクライアントの

これまで私がこれまで行ってきたことは完全には機能しません。これらのコードを作成するのは比較的経験が不十分なので、私は様々なスクリプトからこのファイルをまとめました。私はそれが起こっていたことを認識していませんでしたが、それは実際には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 
+3

コードが混乱しています。正しくフォーマットするには[編集]してください。方法がわからない場合は、をクリックします。テキスト領域の右上隅の上に表示され、提供された情報を読んでください。また、FWIW、あなたのアプローチは完全に間違っています。代わりにこれにはグループポリシーを使用する必要があります。手動で何も削除せずに管理者以外のユーザーのためのメニュー項目を削除します。また、これらのメニュー項目を管理者が利用できるようにします。 –

+0

グループポリシーアプローチを使用して問題を明確にする:ユーザーがこれらのショートカットを実行できないようにするためのポリシーは既に設定されています。それができないのは、視界から取り除く/開始から解除することです。手動で固定解除して手動で移動し、ショートカットを含むフォルダのNTFSアクセス許可を変更するか、または削除して、クライアントに対抗しようとしている環境を提供できるようにする必要があります。想像しているように、各サーバー上で30人以上のユーザーが時間を費やすことになります。 – therealslimbrady

+0

あなたは答えがない、または何が問題なのか、私の質問にすべて否定的に投票していますか? – therealslimbrady

答えて

0

私は、icaを使って当面の間働く解決策を見いだすことができましたcls。ショートカットフォルダからアクセス許可を削除すると、それらが消滅します。私は、PowerShellで入力を必要としないものを取り上げることができると確信していますが、私は経験や時間がありません。これは私の状況ではうまくいきますし、他の誰かに助けてくれることを願っています。

@echo off 

echo Press the Enter Key To Begin 
pause > NUL 


::first I had to use takeown for just this folder as it was denying any modification of permissions I was attempting with icacls 

takeown /f "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /R /A 

::Next I go in and set the permissions for the shortcuts in ProgramData which are not profile specific and have "Everyone" and "Users" included by default. 
::I have used asterisks for security reasons but they are not part of the live code. 

icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /inheritance:r /remove:g Everyone 
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /remove:g Users 
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /grant "Administrators:(CI)(OI)(F)" 
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /grant "*****\Domain Admins:(CI)(OI)(F)" 
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /grant "*****\Domain Admins:(CI)(OI)(F)" 
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /grant "*****\*** Support:(CI)(OI)(M)" 

cls 

goto Second 

:Second 

set /p USER=What is the name of the Userprofile being modified? 
del "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Server Manager.lnk" 
icacls "C:\Users\%USER%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /inheritance:r /remove:g %USER% 
icacls "C:\Users\%USER%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools" /inheritance:r /remove:g %USER% 
icacls "C:\Users\%USER%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" /inheritance:r /remove:g %USER% 
icacls "C:\Users\%USER%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools" /inheritance:r /remove:g %USER% 
icacls "C:\Users\%USER%\AppData\Local\Microsoft\Windows\WinX\Group3" /inheritance:r /remove:g %USER% 
del "C:\Users\%USER%\AppData\Local\Microsoft\Windows\WinX\Group2\4 - Control Panel.lnk" 


echo. 
echo. 
echo Operation completed. 

goto Second 

End 

おかしいちらほらは、私ははっきりとショートカットの名前を記載したコントロールパネルのショートカットのプロパティ内のすべてにもかかわらず....混乱のイライラ10分の期間の後に発見された「コントロールPanel.lnk」実際ですショートカットの名前は "4 - Control Panel.lnk"です。その命名体系はどのくらい普遍的であるかはわかりませんが、それは私が作業していたサーバー上のもので、後続のサーバーの名前と思われます。上にファイル。

関連する問題