bostonrake Posted January 21, 2016 Report post Posted January 21, 2016 Hey all, I'm trying to run a batch file that will uninstall Ultra VNC. When I run it from the computer locally or even from a server location, it works fine. I created the package in SCCM like I would for just about any other install package, but it doesn't work. I have tried several settings... drive letter, unc path, run from distribution point, run locally, etc... and several combinations of those settings. I have read quite a bit on the net, but I'm still at a loss. I think I need to be using %~dp0 Here is what the batch looks like now... if exist "C:\Program Files (x86)" goto 64bit goto 32bit :32bit c: cd \program files\ultravnc unins000.exe /VERYSILENT /NORESTART cd \program files\uvnc bvba\ultravnc unins000.exe /VERYSILENT /NORESTART taskkill /F /IM winvnc.exe :64bit c: cd \program files (x86)\ultravnc unins000.exe /VERYSILENT /NORESTART cd \program files (x86)\uvnc bvba\ultravnc unins000.exe /VERYSILENT /NORESTART taskkill /F /IM winvnc.exe Basically it goes to 2 possible locations and runs the uninstall. Then I added a taskkill because in one test, winvnc.exe was still running even after it uninstalled. Anyway, that's not what this about. I'm just trying to get this batch to run via SCCM 2007. If I do need to use %~dp0, how would I do that with this batch file? I don't understand why that would be needed though... especially if I say to download the batch and run locally. Thanks, Doug Quote Share this post Link to post Share on other sites More sharing options...
Ath3na Posted January 21, 2016 Report post Posted January 21, 2016 Hi Doug, You only need to use %~DP0 when you need to know your current working directory or reference another directory, say a sub directory. an example are some of the adobe applications. Sometimes they have a setup.exe file and you have to reference the full path to a customisation xml. In that case an example would be (both files in package root folder) SETLOCAL SET WORKING=%~dp0 %WORKING%Setup.exe %WORKING%custom.xml This is specifying the full path to the setup.exe and the xml file. If you just had a setup.exe and no custom xml to reference then just setup.exe on it's own as the command line would be fine. another example for a response file: Where the setup.exe is in a sub folder of your package called FOLDER and the response file is in a subfolder called FOLDER2 "%~dp0FOLDER\setup.exe" -s -f1"%~dp0FOLDER2\Setup.iss" In your script I wouldn't bother with CD, there is no need, just put the full path to the file you want to run. There is no need to use ~dp0 in your example. I would tackle your task with something like this:(not tested but might set you on the right path) ECHO off reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT if %OS%==32BIT SET APP_PATH1=C:\Program Files\Ultravnc\unins000.exe if %OS%==32BIT SET APP_PATH2=C:\Program Files\Uvnc bvba\Ultravnc\unins000.exe if %OS%==64BIT SET APP_PATH1=C:\Program Files (x86)\Ultravnc\unins000.exe if %OS%==64BIT SET APP_PATH2=C:\Program Files (x86)\Uvnc bvba\Ultravnc\unins000.exe if exist "%APP_PATH1%" ( "%APP_PATH1%" /VERYSILENT /NORESTART EXIT /B %errorlevel% ) else ( ECHO EXE not found ) if exist "%APP_PATH2%" ( taskkill /F /IM winvnc.exe "%APP_PATH2%" /VERYSILENT /NORESTART EXIT /B %errorlevel% ) else ( ECHO EXE not found ) Have a look at execmgr.log on the client to see why your package fails to install. Another troubleshooting step might be to download psexec and run your script with psexec -i -s cmd.exe this will open a command window under the system account, the system account is the account ConfigMgr uses to do the install so great for testing. Quote Share this post Link to post Share on other sites More sharing options...
bostonrake Posted January 21, 2016 Report post Posted January 21, 2016 Thanks so much for the detailed reply. I made a batch file based off your code and it worked when I ran it from the server. However, like my original batch file, it is not working via SCCM. Here some of the execmgr.log from my test machine. <![LOG[Download content and mapped drive required. SC120145 - UltraVNC Uninstall DD not acceptable by client]LOG]!><time="15:43:52.693+360" date="01-21-2016" component="execmgr" context="" type="2" thread="5060" file="softdistpolicy.cpp:825"> <![LOG[OnPolicyActivation FindUserOrSystemPolicy returns invalid policy]LOG]!><time="15:43:52.693+360" date="01-21-2016" component="execmgr" context="" type="2" thread="5060" file="execreqmgr.cpp:7154"> <![LOG[Mandatory execution requested for program UltraVNC Uninstall DD and advertisement SC120145]LOG]!><time="15:43:52.694+360" date="01-21-2016" component="execmgr" context="" type="1" thread="4776" file="execreqmgr.cpp:3317"> <![LOG[Creating mandatory request for advert SC120145, program UltraVNC Uninstall DD, package SC1000AF]LOG]!><time="15:43:52.694+360" date="01-21-2016" component="execmgr" context="" type="1" thread="4776" file="execreqmgr.cpp:3440"> <![LOG[Download content and mapped drive required. SC120145 - UltraVNC Uninstall DD not acceptable by client]LOG]!><time="15:43:52.708+360" date="01-21-2016" component="execmgr" context="" type="2" thread="4776" file="softdistpolicy.cpp:825"> <![LOG[CreateMandatoryRequestRecursively reject invalid policy UltraVNC Uninstall DD]LOG]!><time="15:43:52.708+360" date="01-21-2016" component="execmgr" context="" type="2" thread="4776" file="execreqmgr.cpp:3480"> <![LOG[Download content and mapped drive required. SC120145 - UltraVNC Uninstall DD not acceptable by client]LOG]!><time="15:43:52.712+360" date="01-21-2016" component="execmgr" context="" type="2" thread="4776" file="softdistpolicy.cpp:825"> <![LOG[RaisePolicyStateStatusMessage - invalid policy received]LOG]!><time="15:43:52.712+360" date="01-21-2016" component="execmgr" context="" type="2" thread="4776" file="execreqmgr.cpp:368"> "mapped drive required" is some of the messages I was seeing yesterday before I started this thread. I'm missing something somewhere when I'm creating the package in sccm. Thanks, Doug Quote Share this post Link to post Share on other sites More sharing options...
bostonrake Posted January 21, 2016 Report post Posted January 21, 2016 I think I finally got it working. I will post the details tomorrow. Quote Share this post Link to post Share on other sites More sharing options...
Ath3na Posted January 21, 2016 Report post Posted January 21, 2016 Cool, no need for a mapped drive in the package. Just stick your bat or .cmd in a folder. Make that folder the source for the package and it will cache down to each machine. Your command to run the bat is just the name of the .bat or .cmd Hope you got it sorted. Quote Share this post Link to post Share on other sites More sharing options...
bostonrake Posted January 22, 2016 Report post Posted January 22, 2016 OK, I got this one working. I "think" it is working now because I told it to run from the distribution point and use unc path. Although I don't know for sure because I don't understand all those settings and the restrictions of each in regards to batch files. Now I have another one I'm trying today and it doesn't seem to run. This one is to uninstall Office 2010 and to install Office 2013 (365). The batch works fine in our testing when we run it manually. Once again, my ccm package doesn't seem to work. Here is the batch file... --------------------- setlocal :DeployOffice call cscript \\servername\pkg\office365\OffScrub10.vbs ProPlus /bypass 1 /q /s /NoCancel start /wait \\servername\pkg\office365\setup.exe /configure \\servername\pkg\office365\proplus.xml :End Endlocal --------------------- Everyone has access to the server. The execmgr.log doesn't offer much help... I don't see anything that looks like an error, but I do see it calling for the package. Any suggestions on how I should set this one up? Run from distribution? Run locally? UNC or drive letter needed? Thanks, Doug Quote Share this post Link to post Share on other sites More sharing options...
Ath3na Posted January 24, 2016 Report post Posted January 24, 2016 Hi, Is there any reason you don't want to allow the content to cache down to each machine? It's been years since I looked at 2007 but I would always set 'this package contains source files' and browse to the directory that contains the setup files, then distribute the content to DPs. This will then cache the package down to each machine and run it locally when you target a device.. No server access headache issues, and it's the way Configuration Manager is designed to run. It's all via bits so should be fine. 99.99999999999 % of the time I go with a standard program. Run = hidden weather or not a user is logged on. runs with a UNC name for office though I would set to run only when no user is logged on. If the user is running office it will fail or a user might try and look for office while it's in the process of installing \ removing. I would create 2 or 3 separate programs for this. 1 cscript.exe OffScrub10.vbs ProPlus /bypass 1 /q /s /NoCancel 2 setup.exe /configure \\server\share\office365\proplus.xml I rolled out this change sometime last year and found 20 % of the devices failed to run the scrub properly. So I had the full content for office 2010 cache down locally set to fully remove the product, then it ran the office scrub, then it ran a 3rd program to install the new office, each was set to reboot the machine after. Each was chained via the program advanced tab, run other program first without the 'Always run this program first' checked (as you only want it to run once and not every time that program runs) Quote Share this post Link to post Share on other sites More sharing options...
bostonrake Posted January 25, 2016 Report post Posted January 25, 2016 I think my issue has more to do with the system account not having access to \\servername\pkg\office365\ I'm not sure how to change the process. I guess I will try letting it copy the content to the dp and then cache it locally to run from there. Thanks, Doug Quote Share this post Link to post Share on other sites More sharing options...
bostonrake Posted January 25, 2016 Report post Posted January 25, 2016 Hey all, I've been working on this all day and I still can't get it to run. I have changed it to run locally instead of from the dp. I moved the batch file to the folder containing all the contents. Here is a look at the folder... You can ignore the "Batch for SCCM" folder as that was my testing folder for awhile. I'm now trying to run sccm_remove2010_install_2013.bat. The contents are... echo cd %~dp0 setlocal :DeployOffice call cscript OffScrub10.vbs ProPlus /bypass 1 /q /s /NoCancel start /wait setup.exe /configure proplus.xml :End Endlocal When I manually run this from c:\windows\syswow64\ccm\cached\packagefolder, it runs fine. However, I cannot get SCCM to run it. When I run it manually it changes the directory to the package folder located in c:\windows\syswow64\ccm\cached so it is able to run the files in the batch. I cannot figure out for the life of me why it doesn't run in SCCM... and I've looked at execmgr.log and it appears to call it fine, but nothing ever happens on the machine. Any ideas? Thanks, Doug Quote Share this post Link to post Share on other sites More sharing options...