Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 



Yzöwl

Super Moderator
  • Content count

    4,110
  • Donations

    $140.00 
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Yzöwl

  1. You could probably do this directly using this GetCOMs.cmd file Run as administrator: @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET "_=" FOR /F "SKIP=1TOKENS=2DELIMS=M" %%A IN ('WMIC /NAMESPACE:\\ROOT\WMI PATH^ MSSERIAL_PORTNAME GET PORTNAME') DO FOR %%B IN (%%A) DO SET "_=!_!,%%B" IF DEFINED _ (IF "%_:~,1%"=="," SET "_=%_:~1%" ECHO/"!_!">"%~dp0AllCOMs.txt") PAUSE
  2. To check if system protection is enabled, I would probably use the registry to determine if RPSessionInterval is greater than 0. In a batch file to enable system protection on the OS drive with a maximum 15% size I would try this As administrator: @ECHO OFF SET "rKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" SET "rVal=RPSessionInterval" SET "dVal=" FOR /F "EOL=H Tokens=2*" %%# IN ('REG Query "%rKey%" /V "%rVal%" 2^>NUL' ) DO SET/A "dVal=%%$" IF NOT DEFINED dVal (ECHO ERROR! & PAUSE & EXIT/B) IF %dVal% EQU 0 ( WMIC /NameSpace:\\root\default PATH SystemRestore CALL Enable %SystemDrive%) VSSADMIN Resize Shadowstorage /For=%SystemDrive% /On=%SystemDrive% /MaxSize=15%% This is untested, (I am not telling you to change scripting language, just showing you a method of detection of the state of the mechanism).
  3. @nerio Here's a quick untested rewrite. (I have included code to do this for exe's and msu's containing the string -KB) It should auto create the "kb.txt" file, install only the msu's which were not output in that list before deleting the list. @ECHO OFF SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION IF /I NOT "%~dp0"=="%__CD__%" (PUSHD "%~dp0" 2>NUL && (SET _$=T) || GOTO :EOF) ( FOR /F "EOL=H DELIMS=" %%# IN ('WMIC.EXE QFE GET HOTFIXID') DO FOR %%$ IN ( %%#) DO ECHO=%%$)>"KB.TXT" IF NOT EXIST "KB.TXT" GOTO ENDIT SET "_=T" FOR /F "DELIMS=" %%# IN ('WHERE/F /R . *-KB*.MSU *-KB*.EXE') DO (SET "_N=%%~n#" IF /I "%%~x#"==".MSU" SET "_X=WUSA.EXE" SETLOCAL ENABLEDELAYEDEXPANSION FINDSTR/IBC:"!_N:*-KB=KB!" "KB.TXT">NUL 2>&1 && (ENDLOCAL) || ( ECHO=INSTALLING !_N:*-KB=KB! TIMEOUT 2 /NOBREAK>NUL !_X! "%%#" /quiet /norestart ENDLOCAL & SET "_=")) DEL "KB.TXT" IF DEFINED _ GOTO ENDIT ECHO= == Press any key to restart == PAUSE>NUL SHUTDOWN.EXE /r /t 0 :ENDIT IF "%_$%"=="T" POPD GOTO :EOF Note: The above uses the WHERE and TIMEOUT commands with MSU's which were all post XP, if you are using XP then you'd need to replace: FOR /F "DELIMS=" %%# IN ('WHERE/F /R . *-KB*.MSU *-KB*.EXE') DO (SET "_N=%%~n#" IF /I "%%~x#"==".MSU" SET "_X=WUSA.EXE" SETLOCAL ENABLEDELAYEDEXPANSION FINDSTR/IBC:"!_N:*-KB=KB!" "KB.TXT">NUL 2>&1 && (ENDLOCAL) || ( ECHO=INSTALLING !_N:*-KB=KB! TIMEOUT 2 /NOBREAK>NUL !_X! "%%#" /quiet /norestart ENDLOCAL & SET "_=")) with: FOR /F "DELIMS=" %%# IN ('DIR/B/S/A-D *-KB*.EXE') DO (SET "_N=%%~n#" SETLOCAL ENABLEDELAYEDEXPANSION FINDSTR/IBC:"!_N:*-KB=KB!" "KB.TXT">NUL 2>&1 && (ENDLOCAL) || ( ECHO=INSTALLING !_N:*-KB=KB! >NUL PING -n 3 0.0.0.0 "%%#" /quiet /norestart ENDLOCAL & SET "_="))
  4. No Updates!

    This is unimportant but I just thought I'd post it here because it's odd. …Just as a note after three other WU runs all ending as above I was eventually offered 33 Important and 1 Optional update
  5. My preference is to forget about the fancy console window GUI progress bar and instead use the console window title bar to update the end user. @Echo Off SetLocal EnableExtensions EnableDelayedExpansion Reg Query "HKU\S-1-5-19" 1>Nul 2>&1 || (PowerShell -ExecutionPolicy Bypass^ -Command "SaPs -Verb RunAs -PSPath '%ComSpec%' -Args '/C """"%~f0""""'" Exit/B) If /I "%CD%\" NEq "%~dp0" PushD %~dp0 Set "bar=" For /L %%a In (1,1,48) Do Set "bar=!bar!>" Set "n=0" For %%a In (*.msu) Do Set/A n+=1 Set "i=0" Echo( Processing files: For %%a In (*.msu) Do ( Set/A i+=1, percent=i*100/n, barLen=48*percent/100 For %%b In (!barLen!) Do Title !percent!%% !bar:~,%%b! Echo( !i!- %%a WUSA.EXE "%%a" /norestart /quiet) Title Press any key to exit . . . Timeout -1 1>Nul Hope this gives you a more sensible solution for your script.
  6. No Updates!

    I wasn't offered KB2999226 or KB3050265 as they don't appear on my list nor are they installed. I have got KB3118401 installed although I see no reason why that would affect the WU Process.
  7. No Updates!

    Interesting thought and one which I've never contemplated, the machine currently shows 6 updates for .NET Framework 4.6.1 and 236 updates for Windows including IE11, (installed but unopened). It's just that the Microsoft Official Fix for the 'slowness' problem is supposed to be one of the items in my above list, and the update which superseded it is also there too.
  8. No Updates!

    My guess is that it's related to me refusing to install any of the following updates: (the windows update 'fixes' are supposed to be included among these anti telemetry/win10 upgrade updates). …or any of May's updates yet! It took 2+ hours each time I ran the WU checks too!
  9. Something simple like this may work for you. @Echo Off & SetLocal EnableDelayedExpansion For %%A In (*.msu) Do (Set "_=%%A" If "%%A" NEq "!_:*-KB=!" Ren "%%A" "KB!_:*-KB=!")
  10. Do a REG QUERY of each of the six known registry locations within a FOR LOOP and put the output into VARIABLES. Replace the last four characters of the saved VARIABLES with the new strings REG ADD the six known registry locations with the updated VARIABLES REG DELETE the three known keys
  11. As you haven't provided sufficient information to persuade me otherwise could you explain why, if your intending to change settings for the interactive user, you aren't making changes to HKEY_CURRENT_USER\Software\Classes instead of HKEY_CLASSES_ROOT. Please be aware that this Member has also asked this question elsewhere. Could you please tell me why if you're only wanting to change these settings on the PC's of your Brother, Son, Wife and yourself why you would wish to script something that would take only 1 minute to perform on each of the four machines once.
  12. Just in case there's been some sort of redirection as opposed to symbolic linking it may be worth not hardcoding the drive letter or even the \Users locations. Off the top if my head, (untested), something like this may do that: @For /F "Tokens=2 Delims=," %%a In ('WhoAmI /User /Fo CSV /NH') Do @( For /F "Tokens=1* Delims==" %%b In ( '"WMIc Path Win32_UserProfile Where (SID='%%~a') Get LocalPath /Value"' ) Do @For %%d In (%%c) Do @Set UserProfile=%%d)
  13. Somebody Slap Me!

    Installing and searching for updates is slow and high CPU usage occurs in Windows 7 and Windows Server 2008 R2 That specific update is included in the list in the next link. (The page is the source suggested as the definitive solution in the Topic on the subject in our Forum). Aegis for Windows 7/8.x - Block all known Microsoft spying and Windows 10 upgrade elements
  14. Somebody Slap Me!

    Trouble is that the official fix for it is contained within one of the updates we're asked to ignore as part of our 'say no to Win10' decision.
  15. NEW! Ubuntu on Windows 10

    A little more about Ubuntu on Windows
  16. Not necessary, just bypassing it would suffice should the Execution Policy be a problem. Example: @PowerShell -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -Command ".\New-SizedFile.ps1 %UserProfile%\Dummy.txt 1GB"
  17. If powershell is available you can access it directly from your .bat .cmd file. @Powershell -C ".\New-SizedFile.ps1 %UserProfile%\Dummy.txt 1GB"The above command assumes the .ps1 is along side the .cmd.
  18. Now that the general conversation has finished and because you hadn't specified your OS, I thought I'd mention using a (probably built-in) PowerShell script to create your file. New-SizedFile.ps1 param( [string]$FilePath,[double]$Size )$file = [System.IO.File]::Create($FilePath)$file.SetLength($Size)$file.Close()Example Uses: Create Dummy.txt with size 698 bytes.\New-SizedFile.ps1 C:\Users\Yzöwl\Dummy.txt 698 Create Dummy.txt with size 86 KB.\New-SizedFile.ps1 C:\Users\Yzöwl\Dummy.txt 86KB Create Dummy.txt with size 20 MB.\New-SizedFile.ps1 C:\Users\Yzöwl\Dummy.txt 20MB Create Dummy.txt with size 3 GB.\New-SizedFile.ps1 C:\Users\Yzöwl\Dummy.txt 3GB
  19. Just a quick post to clear up a few things: I have created this as a New Topic, please don't start new unrelated questions within another subject thread. I'm not aware that an empty file has a size, a specific size above zero will have content. EXT2 is a file system format not a file type. You cannot convert it, while it resides in the NTFS or FAT system it remains that.
  20. Running from a batch file you would need this: FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\AppsRoot.txt SETX AppsRoot %%i:\ -mNote the double percent characters
  21. Also note the similarities here... Somebody wouldn't be setting up Topics for spam replies offering links to some wonder product for fixing these issues, would they?
  22. Assigning a Static IP Address

    @nhall@emc.org, Could you please note that I found it necessary to make changes to your opening message, despite that you appear to have repeated the problem in your latest message, (which I have also fixed). Please do not do the same again, thank you.
  23. Are you implying that the old, obsolete, unsupported, OS has the same market value as a new, supported one? Not exactly, however the cost difference between the driver unsupported OS and the OS with supported drivers will be small, and even if they weren't a 2Tb or even 1Tb HDD or alternatively just simply less RAM with all other components remaining the same would have at least meant a fully working system. As I intimated previously it makes no sense to run an ageing/hacked OS on recent hardware and expect it to work without issue using software designed for that hardware
  24. About services?

    If you're going to such lengths pre-install then you've essentially already determined that the OS you're testing is OTT for your requirements, I'd suggest you therefore try an alternative.
  25. My advice is simple, sell your unsupported operating system and spend that money on a supported operating system instead. I see no benefit in running a system whose core OS is so outdated that it requires a never ending battle in order to maintain compatibility with up to date hardware and software technologies.
×