The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,483 other followers

Archive for the ‘Windows 10’ Category

Some Windows 10 updates remove registry values; not sure how widely

Posted by jpluimers on 2021/10/12

After watching an autologon system not logging on automatically over the past years, the pattern seems to be that at least major, and some less minor Windows updates remove autlogon parts of the registry.

I’m not sure where the boundary between “major” and “less minor” lies (though I suspect “cumulative updates” and larger), nor if more than these values are affected:

  • key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
    • value name AutoAdminLogon gets removed or becomes value 0
    • value DefaultUserName gets removed
    • value DefaultPassword gets removed

This means that now after each startup, I need to schedule a task that runs a script setting the values I need depending if a password is needed or not.

The script also needs credentials, so I need to figure out how to properly do that.

I still need to decide between PowerShell or batch file script, as I already have the batch file from How to turn on automatic logon in Windows and automatic logon in Windows 2003.

For my future reference, some more links on things that can get deleted:

Hopefully these links will help me writing the scripts:

–jeroen

Posted in Batch-Files, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows, Windows 10, Windows Development | Leave a Comment »

Solved: ‘Answering Yes to “You have an older version of PackageManagement known to cause issues with the PowerShell extension. Would you like to update PackageManagement (You will need to restart the PowerShell extension after)?” hung my Visual Studio Code.…’

Posted by jpluimers on 2021/10/04

From a while back: [Archive.is] Jeroen Wiert Pluimers on Twitter: ‘Answering Yes to “You have an older version of PackageManagement known to cause issues with the PowerShell extension. Would you like to update PackageManagement (You will need to restart the PowerShell extension after)?” hung my Visual Studio Code.… ‘

After clicking “Yes”, the the only thing visible was this notification that had an ever running “progress bar”:

Notifications - Powershell - Source: Powershell (Extension)

Notifications – Powershell – Source: Powershell (Extension)

The first part of the solution was relatively simple: restart Visual Studio code, then the original notification showed, and after clicking “Yes”, the “Panel” (you can toggle it with Ctrl+J) showed the “Terminal” output (yes, I was working on [Wayback/Archive.is] PowerShell script for sending Wake-on-LAN magic packets to given machine hardware MAC address, more about that later):

Read the rest of this entry »

Posted in .NET, Communications Development, Development, Encryption, HTTP, HTTPS/TLS security, Internet protocol suite, Power User, Security, Software Development, TCP, Visual Studio and tools, vscode Visual Studio Code, Windows, Windows 10 | Leave a Comment »

Use the System File Checker tool to repair missing or corrupted system files

Posted by jpluimers on 2021/09/30

[WayBack] Use the System File Checker tool to repair missing or corrupted system files:

Read the rest of this entry »

Posted in Development, Power User, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Development | Leave a Comment »

PowerShell: recovering from corrupt empty *.nupkg files after a disk was accidentally full during update

Posted by jpluimers on 2021/09/09

When you do a choco upgrade all --yes on a system that – during upgrade – becomes low on disk space, you can end up with a lot of empty .nupkg files.

For those package, Chocolatey will not recognise they are installed any more.

The fix is this:

  1. increase disk space so at least 5 gigabytes is free
  2. split the choco upgrade process so it checks before each upgrade that this diskspace is indeed free
  3. list all choco .nupkg files of length zero ordered from oldest to newest
  4. for each package, delete the .nupkg file if it exists, then force install it with the --force parameter before the --yes parameter like in

    choco install --force --yes chocolatey

  5. when all packages have been done, then choco upgrade --all --yes

I wrote a few PowerShell scripts assisting me in cleaning up the mess.

choco-list-installed.bat

:: https://superuser.com/questions/890251/how-to-list-chocolatey-packages-already-installed-and-newer-version-available-fr
choco list --localonly %*

choco-show-installed-package-names.bat

:: `--limit-output`  does not show Chocolatey version header and count footer.
:: `--id-oonly`      omits the version number, so you only get the package name
choco list --local-only --limit-output --id-only

choco-show-installed-package-names-and-versions.bat

:: `--limit-output`  does not show Chocolatey version header and count footer.
choco list --local-only --limit-output %*

choco-reinstall-empty-nupkg-by-names.ps1

  • [WayBack] Powershell – Finding 0-byte Files | Another computer blog
  • [WayBack] windows – Where is the Chocolatey installation path? – Stack Overflow:

    There is an environment variable set on installation, ChocolateyInstall, which is set to C:\Chocolatey by default in versions of Chocolatey less than 0.9.8.27. After that, this defaults to C:\ProgramData\Chocolatey.

    NOTE: By default, the C:\ProgramData folder on Windows is hidden. You will either need to enable hidden files and folders through Folder Options | View or you can navigate directly to the path shown above by copy/pasting directly into the Windows Explorer address bar.

    In version 0.9.9 of Chocolatey, it actively moves from the old folder location to the new one.

  • [WayBack] string – Powershell concatenate an Environment variable with path – Stack Overflow

    A convenient way to obtain the string value rather than the dictionary entry (which is technically what Get-ChildItem is accessing) is to just use the variable syntax: $Env:USERPROFILE rather than Get-ChildItem Env:USERPROFILE.

    $localpath = "$env:USERPROFILE\some\path"

    Also, the Join-Path cmdlet is a good way to combine two parts of a path.

    $localpath = Join-Path $env:USERPROFILE 'some\path'
<#
https://learningpcs.blogspot.com/2009/12/powershell-finding-0-byte-files.html

Zero length .nupkg files sorted by oldest first.

These are packages that choco will not show and likekly need a forced reinstall.

Choco does remember the version that was installed (so not all the choco config is hosed).

- https://stackoverflow.com/questions/28235388/where-is-the-chocolatey-installation-path/28239451#28239451
- https://stackoverflow.com/questions/41047123/powershell-concatenate-an-environment-variable-with-path/41047343#41047343

/#>
$LibPath = Join-Path $env:ChocolateyInstall 'lib'
$NuPkgExtension = 'nupkg'
$NupkgFilter = "*.$NuPkgExtension"

## Remove the empty .nupkg files for each argument
$args | ForEach-Object {
    $PackageName = $_ 
    Write-Output "Deleting any empty $PackageName.$NuPkgExtension under $LibPath :"

    Get-ChildItem -Path $LibPath -Recurse -Filter $NupkgFilter | Where-Object {
        ($_.Length -eq 0) -and ($_.BaseName -eq $PackageName)
    } | Sort-Object LastWriteTime | ForEach-Object { 
        $PackageFullName = $_.FullName
        Write-Output "Deleting $PackageFullName"
        Remove-Item $PackageFullName
    }
}

## Force install the chocolatey package for each argument
$args | ForEach-Object {
    $PackageName = $_ 
    Write-Output "Installing $PackageName with Chocolatey:"
    choco install --force --yes $PackageName
}

Link lists

Some more links that helped me solve this:

Some links on errors I encountered while recovering from this:

  • Checksum errors like[WayBack] (sysinternals) checksum error · Issue #756 · chocolatey-community/chocolatey-coreteampackages · GitHub are often caused by the chocolatey package downloading the most recent installer despite the package version. Two solutions:
    1. Pass --ignorechecksum to choco --install (see [WayBack] CommandsInstall · chocolatey/choco Wiki · GitHub)
    2. First uninstall using the --force parameter
      [Archive.is] Chocolatey Software | Sysinternals 2019.6.29

      Sysinternals Suite is going to be installed in ‘C:\ProgramData\chocolatey\lib\sysinternals\tools’
      File appears to be downloaded already. Verifying with package checksum to determine if it needs to be redownloaded.
      Error – hashes do not match. Actual value was ‘A510C31C2CC591A16F342E7CBA5DC8409EAF08C9B56729CF132C95C69E196787’.
      Downloading sysinternals
      from ‘https://download.sysinternals.com/files/SysinternalsSuite.zip&#8217;
      Progress: 100% – Completed download of C:\Users\devCrPhoneDebug\AppData\Local\Temp\2\chocolatey\sysinternals\2018.12.27\SysinternalsSuite.zip (23.51 MB).
      Download of SysinternalsSuite.zip (23.51 MB) completed.
      Error – hashes do not match. Actual value was ‘A510C31C2CC591A16F342E7CBA5DC8409EAF08C9B56729CF132C95C69E196787’.
      ERROR: Checksum for ‘C:\Users\devCrPhoneDebug\AppData\Local\Temp\2\chocolatey\sysinternals\2018.12.27\SysinternalsSuite.zip’ did not meet ‘b14466c6bf3be216ea71610a3f455030e791cd5ad1b42a283886194205d176b0’ for checksum type ‘sha256’. Consider passing the actual checksums through with –checksum –checksum64 once you validate the checksums are appropriate. A less secure option is to pass –ignore-checksums if necessary.
      The install of sysinternals was NOT successful.
      Error while running ‘C:\ProgramData\chocolatey\lib\sysinternals\tools\chocolateyInstall.ps1’.
      See log for details.

      Chocolatey installed 0/1 packages. 1 packages failed.
      See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

  • Packages that cannot be found at all:[WayBack] “imagemagick not installed. The package was not found with the source(s) listed” – Google Search
    • This means that Chocolatey cannot find a dependency, but will not tell you which one. It also happens during package testing:[WayBack] imagemagick v7.0.9.7 – Failed – Package Tests Results · GitHub
      • Solve this by fixing all other empty .nupkg files first, which will give you an idea on the potential missing dependencies. Retry by forcing reinstall each dependency.
  • Dependencies that cannot be found, which can be caused by more empty .nupkg files. Example: [WayBack] Unable to resolve dependency · Issue #206 · chocolatey/choco · GitHub
    • Solve this by each time a dependency is not found, include on the choco-reinstall-empty-nupkg-by-names.ps1command, then retry.

–jeroen

Posted in Chocolatey, COBOL, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows, Windows 10 | Leave a Comment »

Digging Through Event Log Hell (finding user logon & logoff) – Ars Technica OpenForum

Posted by jpluimers on 2021/08/31

This helped me big time finding failed logon attempts: [WayBack] Event Log Hell (finding user logon & logoff) – Ars Technica OpenForum

Alternatively, you can use the XPath query mechanism included in the Windows 7 event viewer. In the event viewer, select “Filter Current Log…”, choose the XML tab, tick “Edit query manually”, then copy the following to the textbox:

Code:
<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[EventID=4624] and EventData[Data[@Name='TargetUserName'] = 'USERNAME']]</Select>
  </Query>
</QueryList>

This selects all events from the Security log with EventID 4624 where the EventData contains a Data node with a Name value of TargetUserName that is equal to USERNAME. Remember to replace USERNAME with the name of the user you’re looking for.

If you need to be even more specific, you can use additional XPath querying – have a look at the detail view of an event and select the XML view to see the data that you are querying into.

Thanks user Hamstro!

Notes:

Related:

–jeroen

Posted in Development, Microsoft Surface on Windows 7, Power User, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows Vista, Windows XP, XML/XSD | Leave a Comment »

 
%d bloggers like this: