powershell中的wlanapi.dll。禁用背景扫描

powershell中的wlanapi.dll。禁用背景扫描,powershell,wifi,wireless,Powershell,Wifi,Wireless,正在寻找有关脚本的帮助。我试过了,但失败了。我在powershell方面不是很先进。 导入DLL对我来说是新事物。感谢您的帮助 我想使用powershell导入wlanapi.dll,并使用micrsoft本机wifi功能禁用无线背景扫描,并实施流模式 脚本应该在执行时执行此操作。这样我就可以运行它,或者在启动脚本中设置它 我想要使用的函数: wlan\u intf\u操作码\u后台\u扫描\u已启用 wlan_intf_操作码_媒体_流媒体_模式导入是通过模块或DLL所在的PSModule路

正在寻找有关脚本的帮助。我试过了,但失败了。我在powershell方面不是很先进。 导入DLL对我来说是新事物。感谢您的帮助

我想使用powershell导入wlanapi.dll,并使用micrsoft本机wifi功能禁用无线背景扫描,并实施流模式

脚本应该在执行时执行此操作。这样我就可以运行它,或者在启动脚本中设置它

我想要使用的函数: wlan\u intf\u操作码\u后台\u扫描\u已启用
wlan_intf_操作码_媒体_流媒体_模式

导入是通过模块或DLL所在的PSModule路径执行的操作

您必须告诉PowerShell DLL所在的位置,这与您在加载模块(.psm1文件(有或没有清单)时没有安装到定义的PowerShell模块路径之一时所做的相同

您可以使用添加类型

添加类型-路径$UncToCustomDll

。。。此外,您还可以使用反射:

$customDLL='UncToYourDLL' 另请参见Lee Holmes关于此主题的文章:

如果您尝试导入,但它不在已知位置,则会得到此结果

Import-Module SomeNewCustomOr3rdP.dll

Import-Module : The specified module 'SomeNewCustomOr3rdP.dll' was not loaded because no valid module file was found in any module directory.
当然,这个错误非常具体。它不知道在哪里可以找到它,因为该名称与模块名称不匹配

所以,这个

Import-Module 'c:\users\mj\desktop\SomeNewCustomOr3rdP.dll'
或者在PSModulePath中创建一个与DLL同名的文件夹,将DLL复制到该命名文件夹中,并正常使用导入

C:\Users\<username>\Documents\WindowsPowerShell\Modules\SomeNewCustomOr3rdP\SomeNewCustomOr3rdP.dll'
。。。应该像预期的那样工作。总之,Add Type、Import Module和Reflection.Assembly::LoadFile($customDll)都完成了相同的任务,授予您对指定资源的访问权

如果您使用的是3rdP DLL/模块,所有这些都必须手动完成。如果您使用的是MS powershellgallery.com中发布的模块/软件包,则:

# Find all modules with wlan in the name
Find-Module -Name '*wlan*' | 
Format-Table -AutoSize

# find all packages with wlan in the name
Find-Package -Name '*wlan*' | 
Format-Table -AutoSize

# Get the detail on wlanapi specifically
Find-Package -Name 'wlanapi'

# Download and save a module or package
Find-Package -Name 'wlanapi' | 
Save-Package -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
Install-Package -Name 'wlanapi' -Force
Import-Module -Name wlanapi

别担心。我知道很多人点击nuget和其他来源来获取类似的东西,不知道PowerShellGet,他们可以获取大部分,并使使用更轻松。谢谢。也许这就是我所缺少的。该DLL是一个windows DLL,因此我认为不必指定完整路径。上面显示的自定义dll方法是否与使用内置windows dll的方法相同?我在看其他脚本时想到了这个,然后尝试用函数调用它。但是你上面的例子表明我可能需要用不同的方法来处理它$Wlanapi=@'[DllImport(“Wlanapi.dll”,EntryPoint=“wlan_intf_opcode_background_scan_enabled”)]公共静态外部无效wlan_intf_opcode_background_scan_enabled([In]IntPtr pData);'@不知道我错过了什么。顺便说一句,谢谢你的回复。
# Find all modules with wlan in the name
Find-Module -Name '*wlan*' | 
Format-Table -AutoSize

# find all packages with wlan in the name
Find-Package -Name '*wlan*' | 
Format-Table -AutoSize

# Get the detail on wlanapi specifically
Find-Package -Name 'wlanapi'

# Download and save a module or package
Find-Package -Name 'wlanapi' | 
Save-Package -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
Install-Package -Name 'wlanapi' -Force
Import-Module -Name wlanapi