using System.Management.Automation; PowerShell ps = PowerShell.Create(); //ps.AddCommand("Get-Process"); // if uncommented, works. ps.AddCommand("Enable-NetFirewallRule").AddParameter("DisplayName","firewall_rule_1"); ps.Invoke();
(This is the continuation of the my previous question, since it seems I can't follow up Muhammad's previous answer.
(See previous question "System.Management.Automation : Not Found : 'Enable-NetFirewallRule'" ) c-sharpcorner.com/forums/systemmanagementautomation-not-found-sharp39enablenetfirewallrulesharp39 )
Thank you very much to Muhammad, I appreciate it.
I have followed your recommendations but it seems that the "Import-Module NetSecurity" command doesn't work, even in admin mode. I guess I should see the "Microsoft.Windows.Firewall.Commands.dll" file in my app directory : "C:\c#\fw\bin\Debug\net8.0\" .... but I see nothing... Also, the file "fw.deps.json" (in that same directory) doesn't give any reference to the NetSecurity module.
I worked hard on this problem and the only improvement/advance I made is to copy the "NetSecurity" module Directory.. From : c:\Windows\system32\WindowsPowerShell\v1.0\Modules\NetSecurity To : C:\Users\myName\Documents\PowerShell\Modules
the result : "'Enable-NetFirewallRule' command was found BUT AuthorizationManager check failed..", see below :
> dotnet run
-------------------------------------------------------------- > dotnet run Unhandled exception. System.Management.Automation.CommandNotFoundException: The 'Enable-NetFirewallRule' command was found in the module 'NetSecurity', but the module could not be loaded due to the following error: [The following error occurred while loading the extended type data file: , C:\Users\myName\Documents\PowerShell\Modules\NetSecurity\NetSecurity.types.ps1xml: The file was skipped because of the following validation exception: AuthorizationManager check failed.. ] For more information, run 'Import-Module NetSecurity'. ---> System.Management.Automation.CmdletInvocationException: The following error occurred while loading the extended type data file: , C:\Users\myName\Documents\PowerShell\Modules\NetSecurity\NetSecurity.types.ps1xml: The file was skipped because of the following validation exception: AuthorizationManager check failed.. ---> System.Management.Automation.RuntimeException: The following error occurred while loading the extended type data file: , C:\Users\myName\Documents\PowerShell\Modules\NetSecurity\NetSecurity.types.ps1xml: The file was skipped because of the following validation exception: AuthorizationManager check failed.. at System.Management.Automation.Runspaces.InitialSessionState.ThrowTypeOrFormatErrors(String resourceString, String errorMsg, String errorId) at System.Management.Automation.Runspaces.InitialSessionState.UpdateTypes(ExecutionContext context, Boolean updateOnly) at System.Management.Automation.Runspaces.InitialSessionState.Bind_UpdateTypes(ExecutionContext context, Boolean updateOnly) at System.Management.Automation.Runspaces.InitialSessionState.<>c__DisplayClass129_0.<Bind>b__0() at System.Management.Automation.Runspaces.InitialSessionState.Bind(ExecutionContext context, Boolean updateOnly, PSModuleInfo module, Boolean noClobber, Boolean local, Boolean setLocation) at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModuleManifest(String moduleManifestPath, ExternalScriptInfo manifestScriptInfo, Hashtable data, Hashtable localizedData, ManifestProcessingFlags manifestProcessingFlags, Version minimumVersion, Version maximumVersion, Version requiredVersion, Nullable`1 requiredModuleGuid, ImportModuleOptions& options, Boolean& containedErrors) --- End of inner exception stack trace --- ...
I then tried to launch this powershell 7.4.1 in admin mode :
> c:\users\myName\.dotnet\tools\.store\powershell\7.4.1\powershell\7.4.1\tools\net8.0\any\win\pwsh.exe
then cd to C:\c#\fw\bin\Debug\net8.0\
then launch the ".\fw.exe" (still admin mode) ===> same "AuthorizationManager check failed" error as above.
-------------------------------------------------------------- FYI, in my Visual Code terminal, I entered the following commands :
> $env:PSModulePath C:\Users\myName\Documents\PowerShell\Modules; C:\Program Files\PowerShell\Modules; c:\users\myName\.dotnet\tools\.store\powershell\7.4.1\powershell\7.4.1\tools\net8.0\any\win\Modules; C:\Program Files\WindowsPowerShell\Modules; c:\Windows\system32\WindowsPowerShell\v1.0\Modules; !!! the "NetSecurity" module is ONLY located in the LAST path ("c:\Windows\system32\WindowsPowerShell\v1.0\Modules\NetSecurity" ) For some reason, if I don't copy this "NetSecurity" module directory to "C:\Users\myName\Documents\PowerShell\Modules", then the 'Enable-NetFirewallRule' command isn't found! (as if the "NetSecurity" module directory wouldn't be in the last $PSModulePath !) However the "Get-Module -ListAvailable" command sees it ! (see below) -------------------------------------------------------------- > Get-ExecutionPolicy Bypass -------------------------------------------------------------- the Powershell version used by VSCode : c:\users\myName\.dotnet\tools\.store\powershell\7.4.1\powershell\7.4.1\tools\net8.0\any\win\pwsh.exe > $PSVersionTable Name Value ---- ----- PSVersion 7.4.1 PSEdition Core GitCommitId 7.4.1 OS Microsoft Windows 10.0.22631 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0 -------------------------------------------------------------- the Powershell version used by my Windows 11 (click left on windows logo (taskbar), click right on "Windows PowerShell (Admin)" c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe > $PSVersionTable Name Value ---- ----- PSVersion 5.1.22621.2506 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.22621.2506 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 -------------------------------------------------------------- > Get-Module -ListAvailable Directory: C:\Users\myName\Documents\PowerShell\Modules ModuleType Version PreRelease Name PSEdition ExportedCommands ---------- ------- ---------- ---- --------- ---------------- Manifest 2.0.0.0 NetSecurity (!!! THE COPY I MADE) Core,Desk {Get-DAPolicyChange, New-NetIPsecAuthProposal, New-NetIPse… Directory: C:\users\myName\.dotnet\tools\.store\powershell\7.4.1\powershell\7.4.1\tools\net8.0\any\win\Modules ModuleType Version PreRelease Name PSEdition ExportedCommands ---------- ------- ---------- ---- --------- ---------------- Manifest 7.0.0.0 CimCmdlets Core {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance,… Manifest 1.2.5 Microsoft.PowerShell.Archive Desk {Compress-Archive, Expand-Archive} Manifest 7.0.0.0 Microsoft.PowerShell.Diagnostics Core {Get-WinEvent, New-WinEvent, Get-Counter} Manifest 7.0.0.0 Microsoft.PowerShell.Host Core {Start-Transcript, Stop-Transcript} Manifest 7.0.0.0 Microsoft.PowerShell.Management Core {Add-Content, Clear-Content, Get-Clipboard, Set-Clipboard…} Binary 1.0.1 Microsoft.PowerShell.PSResourceGet Core,Desk {Find-PSResource, Get-InstalledPSResource, Get-PSResourceR… Manifest 7.0.0.0 Microsoft.PowerShell.Security Core {Get-Acl, Set-Acl, Get-PfxCertificate, Get-Credential…} Manifest 7.0.0.0 Microsoft.PowerShell.Utility Core {Export-Alias, Get-Alias, Import-Alias, New-Alias…} Manifest 7.0.0.0 Microsoft.WSMan.Management Core {Disable-WSManCredSSP, Enable-WSManCredSSP, Get-WSManCredS… Script 1.4.8.1 PackageManagement Desk {Find-Package, Get-Package, Get-PackageProvider, Get-Packa… Script 2.2.5 PowerShellGet Desk {Find-Command, Find-DSCResource, Find-Module, Find-RoleCap… Script 7.0.0.0 PSDiagnostics Core {Disable-PSTrace, Disable-PSWSManCombinedTrace, Disable-WS… Script 2.3.4 PSReadLine Desk {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remov… Binary 2.0.3 ThreadJob Desk Start-ThreadJob Directory: C:\Program Files\WindowsPowerShell\Modules ModuleType Version PreRelease Name PSEdition ExportedCommands ---------- ------- ---------- ---- --------- ---------------- Script 1.0.1 Microsoft.PowerShell.Operation.Val… Desk {Get-OperationValidation, Invoke-OperationValidation} Binary 1.0.0.1 PackageManagement Desk {Find-Package, Get-Package, Get-PackageProvider, Get-Packa… Script 3.4.0 Pester Desk {Describe, Context, It, Should…} Script 1.0.0.1 PowerShellGet Desk {Install-Module, Find-Module, Save-Module, Update-Module…} Script 2.0.0 PSReadLine Desk {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remov… Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules ModuleType Version PreRelease Name PSEdition ExportedCommands ---------- ------- ---------- ---- --------- ---------------- Manifest 1.0.0.0 AppBackgroundTask Core,Desk {Disable-AppBackgroundTaskDiagnosticLog, Enable-AppBackgro… Script 1.0.0.0 AssignedAccess Core,Desk {Clear-AssignedAccess, Get-AssignedAccess, Set-AssignedAcc… Manifest 1.0.0.0 BitLocker Core,Desk {Unlock-BitLocker, Suspend-BitLocker, Resume-BitLocker, Re… Script 2.0.0.0 BitsTransfer Core,Desk {Add-BitsFile, Complete-BitsTransfer, Get-BitsTransfer, Re… Manifest 1.0.0.0 BranchCache Core,Desk {Add-BCDataCacheExtension, Clear-BCCache, Disable-BC, Disa… Manifest 1.0 ConfigDefenderPerformance Core,Desk {New-MpPerformanceRecording, Get-MpPerformanceReport} Manifest 1.0 DefenderPerformance Core,Desk {New-MpPerformanceRecording, Get-MpPerformanceReport} Manifest 1.0.3.0 DeliveryOptimization Core,Desk {Get-DeliveryOptimizationLog, Get-DeliveryOptimizationLogA… Manifest 1.0.0.0 DirectAccessClientComponents Core,Desk {Disable-DAManualEntryPointSelection, Enable-DAManualEntry… Script 3.0 Dism Core,Desk {Add-AppProvisionedSharedPackageContainer, Add-AppxProvisi… Manifest 1.0.0.0 DnsClient Core,Desk {Resolve-DnsName, Clear-DnsClientCache, Get-DnsClient, Get… Manifest 1.0.0.0 EventTracingManagement Core,Desk {Start-EtwTraceSession, New-EtwTraceSession, Get-EtwTraceS… Script 2022.3.14… Get-NetView Core,Desk Get-NetView Manifest 2.1.0.0 International Core,Desk {Copy-UserInternationalSettingsToSystem, Get-WinDefaultInp… Manifest 1.0.0.0 Kds Core,Desk {Add-KdsRootKey, Get-KdsRootKey, Test-KdsRootKey, Set-KdsC… Manifest 1.0 LanguagePackManagement Core,Desk {Install-Language, Uninstall-Language, Get-InstalledLangua… Script 1.0.0.0 LAPS Core,Desk {Find-LapsADExtendedRights, Get-LapsADPassword, Invoke-Lap… Manifest 1.0.0.0 Microsoft.PowerShell.LocalAccounts Core,Desk {Add-LocalGroupMember, Disable-LocalUser, Enable-LocalUser… Manifest 1.0.0 Microsoft.Windows.Bcd.Cmdlets Core,Desk {Copy-BcdEntry, Disable-BcdElementBootDebug, Disable-BcdEl… Manifest 1.0 MMAgent Core,Desk {Disable-MMAgent, Enable-MMAgent, Set-MMAgent, Get-MMAgent… Manifest 2.0.0.0 NetAdapter Core,Desk {Disable-NetAdapter, Disable-NetAdapterBinding, Disable-Ne… Manifest 2.0.0.0 NetConnection Core,Desk {Get-NetConnectionProfile, Set-NetConnectionProfile} Manifest 1.0.0.0 NetEventPacketCapture Core,Desk {New-NetEventSession, Remove-NetEventSession, Get-NetEvent… Manifest 2.0.0.0 NetLbfo Core,Desk {Add-NetLbfoTeamMember, Add-NetLbfoTeamNic, Get-NetLbfoTea… Manifest 1.0.0.0 NetNat Core,Desk {Get-NetNat, Get-NetNatExternalAddress, Get-NetNatStaticMa… Manifest 2.0.0.0 NetQos Core,Desk {Get-NetQosPolicy, Set-NetQosPolicy, Remove-NetQosPolicy, … Manifest 2.0.0.0 NetSecurity Core,Desk {Get-DAPolicyChange, New-NetIPsecAuthProposal, New-NetIPse… Manifest 1.0.0.0 NetSwitchTeam Core,Desk {New-NetSwitchTeam, Remove-NetSwitchTeam, Get-NetSwitchTea… Manifest 1.0.0.0 NetTCPIP Core,Desk {Get-NetIPAddress, Get-NetIPInterface, Get-NetIPv4Protocol… Manifest 1.0.0.0 NetworkConnectivityStatus Core,Desk {Get-DAConnectionStatus, Get-NCSIPolicyConfiguration, Rese… Manifest 1.0.0.0 NetworkSwitchManager Core,Desk {Disable-NetworkSwitchEthernetPort, Enable-NetworkSwitchEt… Manifest 1.0.0.0 NetworkTransition Core,Desk {Add-NetIPHttpsCertBinding, Disable-NetDnsTransitionConfig… Manifest 1.0.0.0 PcsvDevice Core,Desk {Get-PcsvDevice, Start-PcsvDevice, Stop-PcsvDevice, Restar… Manifest 1.0.0.0 PKI Core,Desk {Add-CertificateEnrollmentPolicyServer, Export-Certificate… Manifest 1.0.0.0 PnpDevice Core,Desk {Get-PnpDevice, Get-PnpDeviceProperty, Enable-PnpDevice, D… Manifest 1.1 PrintManagement Core,Desk {Add-Printer, Add-PrinterDriver, Add-PrinterPort, Get-Prin… Binary 1.0.12 ProcessMitigations Core,Desk {Get-ProcessMitigation, Set-ProcessMitigation, ConvertTo-P… Script 3.0 Provisioning Core,Desk {Install-ProvisioningPackage, Export-ProvisioningPackage, … Manifest 1.0.0.0 ScheduledTasks Core,Desk {Get-ScheduledTask, Set-ScheduledTask, Register-ScheduledT… Manifest 2.0.0.0 SecureBoot Core,Desk {Confirm-SecureBootUEFI, Set-SecureBootUEFI, Get-SecureBoo… Manifest 2.0.0.0 SmbShare Core,Desk {Get-SmbShare, Remove-SmbShare, Set-SmbShare, Block-SmbSha… Manifest 2.0.0.0 SmbWitness Core,Desk {Get-SmbWitnessClient, Move-SmbWitnessClient, gsmbw, msmbw… Manifest 1.0.0.1 StartLayout Core,Desk {Export-StartLayout, Import-StartLayout, Export-StartLayou… Manifest 2.0.0.0 Storage Core,Desk {Add-InitiatorIdToMaskingSet, Add-PartitionAccessPath, Add… Manifest 2.0.0.0 TLS Core,Desk {New-TlsSessionTicketKey, Enable-TlsSessionTicketKey, Disa… Manifest 1.0.0.0 TroubleshootingPack Core,Desk {Get-TroubleshootingPack, Invoke-TroubleshootingPack} Manifest 2.0.0.0 TrustedPlatformModule Core,Desk {Get-Tpm, Initialize-Tpm, Clear-Tpm, Unblock-Tpm…} Binary 2.1.639.0 UEV Core,Desk Manifest 2.0.0.0 VpnClient Core,Desk {Add-VpnConnection, Set-VpnConnection, Remove-VpnConnectio… Manifest 1.0.0.0 Wdac Core,Desk {Get-OdbcDriver, Set-OdbcDriver, Get-OdbcDsn, Add-OdbcDsn…} Manifest 2.0.0.0 Whea Core,Desk {Get-WheaMemoryPolicy, Set-WheaMemoryPolicy} Manifest 1.0.0.0 WindowsDeveloperLicense Core,Desk {Get-WindowsDeveloperLicense, Unregister-WindowsDeveloperL… Script 1.0 WindowsErrorReporting Core,Desk {Enable-WindowsErrorReporting, Disable-WindowsErrorReporti… Manifest 1.0.0.0 WindowsSearch Core,Desk {Get-WindowsSearchSetting, Set-WindowsSearchSetting} Manifest 1.0.0.0 WindowsUpdate Core,Desk Get-WindowsUpdateLog