Quantcast
Channel: Network Audit and Documentation, CENTREL Solutions Blog
Viewing all 432 articles
Browse latest View live

Document Windows Advanced Audit Policy Configuration with C# .NET AuditEnumerateCategories Win32 API

$
0
0
We've recently been working on CIS compliance reporting within the XIA Configuration Server platform.

Part of the compliance for Server 2012 R2 includes the ability to document the configuration of the Windows Advanced Audit Policy (also known as audit subcategories).

This is a bit of a problem due to the fact that Microsoft provide no PowerShell or WMI interface for this and the raw settings are stored in an obfuscated part of the registry.

You can however read the Windows Advanced Audit Policy by using C# .NET with the low level Win32 API.

We've provided the wrapper as an example. The one issue with this API is that it can only be executed for the local machine as is the case with the AuditPol.exe tool...




///<summary>
/// Provides management functions of the advanced audit policy (audit policy subcategory settings).
///</summary>
publicclassAdvancedAuditPolicyWrapper
{

    ///<summary>
    /// Initializes a new instance of the CENTREL.XIA.Management.AdvancedAuditPolicyWrapper class.
    ///</summary>
    publicAdvancedAuditPolicyWrapper()
    {

    }


    ///<summary>
    /// The AuditEnumerateCategories function enumerates the available audit-policy categories.
    ///</summary>
    ///<param name="ppAuditCategoriesArray">A pointer to a single buffer that contains both an array of pointers to GUID structures and the structures themselves. </param>
    ///<param name="pCountReturned">A pointer to the number of elements in the ppAuditCategoriesArray array.</param>
    ///<returns>A System.Boolean value that indicates whether the function completed successfully.</returns>
    ///<remarks>https://msdn.microsoft.com/en-us/library/windows/desktop/aa375636(v=vs.85).aspx</remarks>
    [DllImport("advapi32.dll", SetLastError = true)]
    privatestaticexternbool AuditEnumerateCategories(outIntPtrppAuditCategoriesArray, outuint pCountReturned);


    ///<summary>
    /// The AuditLookupCategoryName function retrieves the display name of the specified audit-policy category.
    ///</summary>
    ///<param name="pAuditCategoryGuid">A pointer to a GUID structure that specifies an audit-policy category.</param>
    ///<param name="ppszCategoryName">The address of a pointer to a null-terminated string that contains the display name of the audit-policy category specified by the pAuditCategoryGuid function.</param>
    ///<returns>A System.Boolean value that indicates whether the function completed successfully.</returns>
    ///<remarks>https://msdn.microsoft.com/en-us/library/windows/desktop/aa375687(v=vs.85).aspx</remarks>
    [DllImport("advapi32.dll", SetLastError = true)]
    privatestaticexternbool AuditLookupCategoryName(refGuid pAuditCategoryGuid, outStringBuilderppszCategoryName);


    ///<summary>
    /// The AuditEnumerateSubCategories function enumerates the available audit-policy subcategories.
    ///</summary>
    ///<param name="pAuditCategoryGuid">The GUID of an audit-policy category for which subcategories are enumerated. If the value of the bRetrieveAllSubCategories parameter is TRUE, this parameter is ignored.</param>
    ///<param name="bRetrieveAllSubCategories">TRUE to enumerate all audit-policy subcategories; FALSE to enumerate only the subcategories of the audit-policy category specified by the pAuditCategoryGuid parameter.</param>
    ///<param name="ppAuditSubCategoriesArray">A pointer to a single buffer that contains both an array of pointers to GUID structures and the structures themselves. The GUID structures specify the audit-policy subcategories available on the computer.</param>
    ///<param name="pCountReturned">A pointer to the number of audit-policy subcategories returned in the ppAuditSubCategoriesArray array.</param>
    ///<returns>A System.Boolean value that indicates whether the function completed successfully.</returns>
    ///<remarks>https://msdn.microsoft.com/en-us/library/windows/desktop/aa375648(v=vs.85).aspx</remarks>
    [DllImport("advapi32.dll", SetLastError = true)]
    privatestaticexternbool AuditEnumerateSubCategories(refGuidpAuditCategoryGuid, boolbRetrieveAllSubCategories, outIntPtr ppAuditSubCategoriesArray, outuintpCountReturned);


    ///<summarThe AuditLookupSubCategoryName function retrieves the display name of the specified audit-policy subcategory. y>
    /// The AuditLookupSubCategoryName function retrieves the display name of the specified audit-policy subcategory.
    ///</summary>
    ///<param name="pAuditSubCategoryGuid">A pointer to a GUID structure that specifies an audit-policy subcategory.</param>
    ///<param name="ppszSubCategoryName">The address of a pointer to a null-terminated string that contains the display name of the audit-policy subcategory specified by the pAuditSubCategoryGuid parameter.</param>
    ///<returns>A System.Boolean value that indicates whether the function completed successfully.</returns>
    ///<remarks>https://msdn.microsoft.com/en-us/library/windows/desktop/aa375693(v=vs.85).aspx</remarks>
    [DllImport("advapi32.dll", SetLastError = true)]
    privatestaticexternbool AuditLookupSubCategoryName(refGuidpAuditSubCategoryGuid, outStringBuilder ppszSubCategoryName);


    ///<summary>
    /// The AuditFree function frees the memory allocated by audit functions for the specified buffer.
    ///</summary>
    ///<param name="buffer">A pointer to the buffer to free.</param>
    ///<remarks>https://msdn.microsoft.com/en-us/library/windows/desktop/aa375654(v=vs.85).aspx</remarks>
    [DllImport("advapi32.dll")]
    privatestaticexternvoid AuditFree(IntPtrbuffer);


    ///<summary>
    /// The AuditQuerySystemPolicy function retrieves system audit policy for one or more audit-policy subcategories.
    ///</summary>
    ///<param name="pSubCategoryGuids">A pointer to an array of GUID values that specify the subcategories for which to query audit policy. </param>
    ///<param name="PolicyCount">The number of elements in each of the pSubCategoryGuids and ppAuditPolicy arrays.</param>
    ///<param name="ppAuditPolicy">A pointer to a single buffer that contains both an array of pointers to AUDIT_POLICY_INFORMATION structures and the structures themselves. </param>
    ///<returns>https://msdn.microsoft.com/en-us/library/windows/desktop/aa375702(v=vs.85).aspx</returns>
    [DllImport("advapi32.dll", SetLastError = true)]
    privatestaticexternbool AuditQuerySystemPolicy(GuidpSubCategoryGuids, uint PolicyCount, outIntPtrppAuditPolicy);


    ///<summary>
    /// Gets the GUIDs of the audit categories.
    ///</summary>
    ///<returns>The GUIDs of the audit categories on the local machine.</returns>
    publicSerializableStringCollectionGetCategoryIdentifiers()
    {
        SerializableStringCollectionidentifiers = newSerializableStringCollection();
        IntPtr buffer;
        uintcategoryCount;
        boolsuccess = AuditEnumerateCategories(out buffer, out categoryCount);
        if(!success) { thrownewWin32Exception(Marshal.GetLastWin32Error()); }
        for (int i = 0, elemOffs = (int)buffer; i < categoryCount; i++)
        {
            Guidguid = (Guid)Marshal.PtrToStructure((IntPtr)elemOffs, typeof(Guid));
            identifiers.Add(Convert.ToString(guid));
            elemOffs += Marshal.SizeOf(typeof(Guid));
        }
        AuditFree(buffer);
        returnidentifiers;
    }


    ///<summary>
    /// Returns the display name of the audit category with the specified GUID.
    ///</summary>
    ///<param name="guid">The GUID of the category for which the display name should be returned.</param>
    ///<returns>The display name of the category - for example "Account Management".</returns>
    publicString GetCategoryDisplayName(String guid)
    {
        returnGetCategoryDisplayName(newGuid(guid));
    }


    ///<summary>
    /// Returns the display name of the audit category with the specified GUID.
    ///</summary>
    ///<param name="guid">The GUID of the category for which the display name should be returned.</param>
    ///<returns>The display name of the category - for example "Account Management".</returns>
    publicString GetCategoryDisplayName(Guid guid)
    {
        StringBuilderbuffer = newStringBuilder();
        boolsuccess = AuditLookupCategoryName(ref guid, out buffer);
        if(!success) { thrownewWin32Exception(Marshal.GetLastWin32Error()); }
        if(buffer == null) { thrownewArgumentException(String.Format(Resources.Common.CategoryDisplayNameNotFoundException, guid)); }
        StringcategoryDisplayName = buffer.ToString();
        buffer = null;
        returncategoryDisplayName;
    }


    ///<summary>
    /// Gets the GUIDs of the audit subcategories of the specified category.
    ///</summary>
    ///<param name="guid">The GUID of the category for which the subcategories should be returned.</param>
    ///<returns>The GUIDs of the audit subcategories for the specified category.</returns>
    publicSerializableStringCollectionGetSubCategoryIdentifiers(StringcategoryGuid)
    {
        returnGetSubCategoryIdentifiers(newGuid(categoryGuid));
    }


    ///<summary>
    /// Gets the GUIDs of the audit subcategories of the specified category.
    ///</summary>
    ///<param name="guid">The GUID of the category for which the subcategories should be returned.</param>
    ///<returns>The GUIDs of the audit subcategories for the specified category.</returns>
    publicSerializableStringCollectionGetSubCategoryIdentifiers(Guid categoryGuid)
    {
        SerializableStringCollectionidentifiers = newSerializableStringCollection();
        IntPtrbuffer;
        uintsubCategoryCount;
        boolsuccess = AuditEnumerateSubCategories(refcategoryGuid, false, outbuffer, out subCategoryCount);
        if(!success) { thrownewWin32Exception(Marshal.GetLastWin32Error()); }
        for (int i = 0, elemOffs = (int)buffer; i < subCategoryCount; i++)
        {
            Guidguid = (Guid)Marshal.PtrToStructure((IntPtr)elemOffs, typeof(Guid));
            identifiers.Add(Convert.ToString(guid));
            elemOffs += Marshal.SizeOf(typeof(Guid));
        }
        AuditFree(buffer);
        returnidentifiers;
    }


    ///<summary>
    /// Returns the display name of the audit subcategory with the specified GUID.
    ///</summary>
    ///<param name="guid">The GUID of the subcategory for which the display name should be returned.</param>
    ///<returns>The display name of the subcategory - for example "Audit Credential Validation".</returns>
    publicString GetSubCategoryDisplayName(String guid)
    {
        returnGetSubCategoryDisplayName(newGuid(guid));
    }


    ///<summary>
    /// Returns the display name of the audit subcategory with the specified GUID.
    ///</summary>
    ///<param name="guid">The GUID of the subcategory for which the display name should be returned.</param>
    ///<returns>The display name of the subcategory - for example "Audit Credential Validation".</returns>
    publicString GetSubCategoryDisplayName(Guid guid)
    {
        StringBuilderbuffer = newStringBuilder();
        boolsuccess = AuditLookupSubCategoryName(ref guid, out buffer);
        if (!success) { thrownewWin32Exception(Marshal.GetLastWin32Error()); }
        StringsubCategoryDisplayName = buffer.ToString();
        buffer = null;
        returnsubCategoryDisplayName;
    }


    ///<summary>
    /// Gets the audit policy configured for the specified subcategory GUID.
    ///</summary>
    ///<param name="subCategoryGuid">The GUID of the subcategory for which the policy should be returned.</param>
    ///<returns>Returns an AUDIT_POLICY_INFORMATION that contains information about the policy.</returns>
    publicAUDIT_POLICY_INFORMATION GetSystemPolicy(String subCategoryGuid)
    {
        returnGetSystemPolicy(newGuid(subCategoryGuid));
    }


    ///<summary>
    /// Gets the audit policy configured for the specified subcategory GUID.
    ///</summary>
    ///<param name="subCategoryGuid">The GUID of the subcategory for which the policy should be returned.</param>
    ///<returns>Returns an AUDIT_POLICY_INFORMATION that contains information about the policy.</returns>
    publicAUDIT_POLICY_INFORMATION GetSystemPolicy(Guid subCategoryGuid)
    {
        SerializableStringCollectionidentifiers = newSerializableStringCollection();
        IntPtrbuffer;
        boolsuccess = AuditQuerySystemPolicy(subCategoryGuid, 1, outbuffer);
        if(!success) { thrownewWin32Exception(Marshal.GetLastWin32Error()); }
        AUDIT_POLICY_INFORMATIONpolicyInformation = (AUDIT_POLICY_INFORMATION)Marshal.PtrToStructure(buffer, typeof(AUDIT_POLICY_INFORMATION));
        AuditFree(buffer);
        returnpolicyInformation;
    }

       

}



///<summary>
/// The AUDIT_POLICY_INFORMATION structure specifies a security event type and when to audit that type.
///</summary>
///<remarks>https://msdn.microsoft.com/en-us/library/windows/desktop/aa965467(v=vs.85).aspx</remarks>
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
publicstructAUDIT_POLICY_INFORMATION
{

    ///<summary>
    /// A GUID structure that specifies an audit subcategory.
    ///</summary>
    publicGuid AuditSubCategoryGuid;

    ///<summary>
    /// A set of bit flags that specify the conditions under which the security event type specified by the AuditSubCategoryGuid and AuditCategoryGuid members are audited.
    ///</summary>
    publicAUDIT_POLICY_INFORMATION_TYPE AuditingInformation;

    ///<summary>
    /// A GUID structure that specifies an audit-policy category.
    ///</summary>
    publicGuid AuditCategoryGuid;

}



///<summary>
/// Represents the auditing type.
///</summary>
[Flags]
publicenumAUDIT_POLICY_INFORMATION_TYPE
{

    ///<summary>
    /// Do not audit the specified event type.
    ///</summary>
    None = 0,

    ///<summary>
    /// Audit successful occurrences of the specified event type.
    ///</summary>
    Success = 1,

    ///<summary>
    /// Audit failed attempts to cause the specified event type.
    ///</summary>
    Failure = 2,


}




Get the Windows Advanced Audit Policy configuration from remote machines with PowerShell

$
0
0
As part of our Server Documentation Tool we have now expanded it's security audit capability.

The system can now gather information about the advanced audit policy of a Windows machine all the way to Windows 10.

The information is gathered from remote machines without an agent being installed using Windows PowerShell remoting.



In a similar fashion to the Group Policy Console or the Auditpol.exe tool the following category or subcategory information can be obtained.

The auditpol.exe tool gives you the definitive configured settings, and it is the same API that XIA Configuration Server uses to determine the active audit settings. In addition to auditpol.exe however we also collect information about whether the setting is configured locally or using Group Policy, and if using Group Policy which policy is effective in applying this setting.

(NOTE: Not all subcategories are available on all operating systems)

Account Logon
Credential Validation
Kerberos Authentication Service
Kerberos Service Ticket Operations
Other Account Logon Events

Account Management
Application Group Management
Computer Account Management
Distribution Group Management
Other Account Management Events
Security Group Management
User Account Management

Detailed Tracking
DPAPI Activity
Process Creation
Process Termination
RPC Events
DS Access
Subcategory
Detailed Directory Service Replication
Directory Service Access
Directory Service Changes
Directory Service Replication

Logon/Logoff
Account Lockout
IPsec Extended Mode
IPsec Main Mode
IPsec Quick Mode
Logoff
Logon
Network Policy Server
Other Logon/Logoff Events
Special Logon
User / Device Claims

Object Access
Application Generated
Central Policy Staging
Certification Services
Detailed File Share
File Share
File System
Filtering Platform Connection
Filtering Platform Packet Drop
Handle Manipulation
Kernel Object
Other Object Access Events
Registry
Removable Storage
SAM

Subcategory
Audit Policy Change
Authentication Policy Change
Authorization Policy Change
Filtering Platform Policy Change
MPSSVC Rule-Level Policy Change
Other Policy Change Events

Privilege Use
Non Sensitive Privilege Use
Other Privilege Use Events
Sensitive Privilege Use

System
IPsec Driver
Other System Events
Security State Change
Security System Extension
System Integrity


When using AuditPol.exe you see the error "Error 0x00000057 occurred: The parameter is incorrect."

$
0
0
auditpol /get /subcategory:"Audit Credential Validation"
Error 0x00000057 occurred:
The parameter is incorrect.

This issue can occur when you enter the command

auditpol /get /subcategory:name

...And you enter the word "Audit" as part of the name - for example "Audit Account Validation" as is shown in the Group Policy Editor.


The word audit is added as a display name in the gpedit.msc

Instead of
auditpol /get /subcategory:"Audit Credential Validation"

Enter
auditpol /get /subcategory:"Credential Validation"

Error installing KB2919355 (Windows8.1-KB2919355-x64) "The update is not applicable to your computer"

$
0
0
When you try and install SQL Server 2016 you may see the error stating that you need to install KB2919355.


However when you try and install the update you receive the error
"The update is not applicable to your computer"

This issue can be installed if the following update is also not installed:

March 2014 servicing stack update for Windows 8.1 and Windows Server 2012 R2
https://support.microsoft.com/en-gb/kb/2919442


Looking for a SQL documentation tool? Why not check out XIA Configuration Server?


Document the "Local Administrator Password Solution" (LAPS) settings

$
0
0
The Local Administrator Password Solution (LAPS) provides the ability to automatically update local administrator account passwords for domain joined computers.

This can help increase security by

  • Settings local administrator passwords to different values on each computer and member server, whereas typically administrators set the same local admin password on each machine
  • Passwords can be changed more frequently
  • Local admin passwords can be obtained directly from Active Directory

If you want more information about LAPS this video is pretty informative

We've updated the XIA Configuration Server to automatically gather these settings for each of your domain joined machines.



The settings collected include

  • Installed
  • Enabled
  • DLL File Location
  • DLL Version
  • Administrator Account Name
  • Password Age (Days)
  • Password Length
  • Password Expiration Protection Enabled
  • Password Complexity Type


Cannot change Event Log size: The maximum log size specified is not valid. It is too large or too small.

$
0
0
When you try and change the Event Log size you may see the following error

The maximum log size specified is not valid. It is too large or too small.

Screenshot of the event log settings


The maximum log size specified is not valid. It is too large or too small.

This error can be seen when the event log sizes have been set using Group Policy.










auditpol list all

NBTSTAT: Failed to Purge the NBT Remote Cache Table

$
0
0
When you run the nbtstat.exe command you may see the error
"Failed to Purge the NBT Remote Cache Table"


This can occur when the user running the command doesn't have permissions to execute the command.

If you are using UAC ensure that you right click the command prompt and select "Run as Administrator"






Get the computer's security identifier (SID) remotely

$
0
0
We've been asked several times about getting the security identifier (SID) from remote machines on the network.

This is somewhat complex for people using scripting as the information is (annoyingly) not available using WMI unless you read the Win32_LocalAccounts class and string parse some of the SIDs from the user accounts.

This isn't ideal especially on a domain controller where the queries can be somewhat slow for this class.

We've therefore decided to add both the machine security identifier and the domain security identifier (the SID assigned to the computer by it's domain) to our server audit and documentation tool, and have used the low level Win32 APIs to obtain this information rather than using the less reliable string parsing method.





For more information why not download the free trial?


IIS Authentication Issue 403 - Forbidden: Access is denied.

$
0
0
I'm posting this in case it's useful and you're also having a mental block on a problem

If you see the following error in IIS you may assume that this is an authentication problem

IIS Authentication Issue 403 - Forbidden: Access is denied.


And then start making changes to Basic Authentication, Anonymous access etc

This issue can be caused by your SSL configuration
2016-10-03 10:03:02 10.0.0.4 GET /someurl - 80 - 95.138.200.166 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+rv:49.0)+Gecko/20100101+Firefox/49.0 - 403 4 5 98

The key is to check the HTTP subcode, a subcode of 4 relates to SSL, in this case IIS is configured to require SSL, going to the web site using HTTPS:// will resolve the issue.


Spotify taking space on C: drive, change the Spotify cache folder location

$
0
0
If you find that you're running low on space on your C: drive and use Spotify you may find that it is taking a lot of space for offline data

To resolve this

  • Open Spotify
  • Goto Edit > Preferences
  • Click Show Advanced Settings
  • Goto Cache and click "Change Location"
  • You'll need to restart Spotify, it will move the data for you



If this doesn't work you can check the settings in
C:\Users\username\AppData\Roaming\Spotify\prefs







Problems with Stack Overflow and intellectual property

$
0
0
We often find that in the course of our work we come across answers to problems and will generally blog about them or post them as answers on sites like Microsoft.com or Stack Overflow.

We generally attribute the code that we paste to our product and put a backlink to our site, some forums like Microsoft don't seem to mind as long as your posting relevant content and valid answers and I thought StackOverflow didn't mind either so happily worked for free for them pasting our source code into answers given a product mention.

Other forums won't allow this and your post won't appear which is fair enough.

That was until I started getting quite arrogant emails from StackOverflow.


I'm not sure what the multiple accounts are unless I've logged in with Google+ or Facebook (?) and it their site hasn't linked the accounts together correctly.

I wasn't particularly happy with this attitude which harks back to the old sysops of the 80s that treated users (lusers) in an aloof fashion.

I checked my posts to make sure I hadn't mislead people about our product and found I'd put generally pretty decent source code and found that without informing me StackOverflow had removed my backlinks and edited my content.

I pointed this out to them that they don't have the right to edit my content when it's signed with my name, to which I had another arrogant email reply.

I decided to take my source code and content back and tried to delete it and was blocked. I replaced my content with a message saying why I was removing it and they blocked my account and informed me that they now owned my content and I was not allowed to remove it.

Jesus. This is not good.

Imagine you post something that has IP belonging to your company you've lost control of it, and probably your job along with it.

"If you don't like our content policies, you are more than welcome to cease your participation here and stop contributing. ... But you cannot have all of your past content that's already been contributed removed from the site."


StackOverflow has a huge team dedicated to taking your efforts and profiting from it. I have to say it's a clever model.















Unable to connect to iPhone personal hotspot using WiFi - "Cannot connect to network" and blue hotspot bar flickers on phone

$
0
0
When you try to connect to the iPhone personal hotspot using WiFi you get an error "Cannot connect to network" and blue hotspot bar flickers on phone.



There are no errors shown on the phone and on the laptop you are not prompted to enter the password.

The hotspot works with a USB cable

To solve this issue try the following:
  • On the iPhone goto Settings > General > About > Name


  • Change the name to something simple without any apostrophes or other special characters
  • Goto Settings > Wi-Fi and disable Wi-Fi
  • Goto Settings > Personal Hotspot > and disable personal hotspot
  • Goto Settings > Personal Hotspot > and enable personal hotspot and enable Wi-Fi when prompted.

You should now be able to connect.


Upgrading Windows Server 2016 evaluation edition

$
0
0
If you're running the Windows Server 2016 evaluation edition you may wish to proceed to upgrade the installation to a paid-for version.

However when you try to do this you may see an error when you enter the key



This Windows image cannot upgrade to the edition of Windows that was specified. The upgrade cannot proceed.

The best way to upgrade is to use the DISM command as follows

DISM /online /Get-TargetEditions

And then use the edition in the following command

DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXXXX /AcceptEula



Can't connect to ESXi server using SSH / SCP (connection timed out)

$
0
0
If you find that you can't connect to ESXi server using SSH / SCP and get a connection timed out error but SSH is enabled on the host


You should check the firewall


It appears that SSH Server is enabled, however if you click the Firewall button you see that only certain IP addresses are allowed












DCPromo shows "Windows Server Technical Preview" as the domain and forest functional levels

$
0
0
We've been doing some testing on the recently released Windows Server 2016

And came accross a worrying problem that DCPromo shows "Windows Server Technical Preview" as the domain and forest functional levels when you promote a Windows Server 2016 machine to be a domain controller

After a quick look on the Microsoft knowledge base it appears that this is a user interface problem in that no-one checked the strings before the final release of the production version of Windows Server 2016.

Not ideal really but not a problem, more information can be found here
https://support.microsoft.com/en-gb/kb/3202325

Windows 10 Start Menu doesn't open

$
0
0
I've recently had a problem where after running low on space on the C: drive tried to redirect the c:\users\username\AppData folder.

This seemed to work fine except that the Start Menu then stopped opening.

There are a few solutions online that recommend Get-AppXPackage however this just resulted in a screen full of IO errors.

There is however help available - the Microsoft Start Menu troobleshooter actually worked for me by repairing the Start Menu database
https://support.microsoft.com/en-gb/help/12385/windows-10-troubleshoot-problems-opening-start-menu-cortana

Transfer FileZilla settings from old computer to a new computer

$
0
0
If you need to move all of your FileZilla settings from an old computer to a new one (or between user accounts) login as the existing FileZilla user and goto

%appdata%\FileZilla

This will expand to a path such as
C:\Users\username\AppData\Roaming\FileZilla


You can then copy the files and then login as the new user account or new computer and overwrite the files on the new user/computer and restart FileZilla.






Windows Server 2016 - Windows Update User Interface in Control Panel Bug always states "Available updates will be downloaded and installed automatically, except over metered connections"

$
0
0
We've been doing some testing of our Windows machine scan agent to document a Windows Server 2016's configuration and have been lead to some confusion with Windows Update.

In Windows Server 2016 the nice Windows Update settings user interface has been replaced by the dreadful "tablet" style interface and has lost the ability to configure the Windows Update mode.

For anyone using test systems you may intentionally wish to not update your system to ensure your software works on all patch levels.


So we looked at using sconfig to configure Windows update to manual.



However there is apparently a bug in the Windows Update user interface where it will always say
“Available updates will be downloaded and installed automatically, except over metered connections…”

This is a  bit of a worry but is a known bug in Windows Server 2016 that's apparently being addressed by Microsoft at the moment.











PowerShell "Install-Module" fails to install modules "Unable to find module providers (PowerShellGet)"

$
0
0
When using the new PowerShell 5.0 Install-Module command you may find that you have problems such as

PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories.

Install-PackageProvider : Unable to find repository with SourceLocation ''. Please use Get-PSRepository to see all available repositories. 

This can occur when FIPS encryption is enabled on the machine, this setting can be checked by checking the local group policy settings.

System cryptography: Use FIPS 140 compliant cryptographic algorithms, including encryption, hashing and signing algorithms





Viewing all 432 articles
Browse latest View live