我试图在PowerShell中运行此脚本.我已将以下脚本保存在ps.ps1桌面上.
$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2"
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"}
Run Code Online (Sandbox Code Playgroud)
我已经制作了一个批处理脚本来运行这个PowerShell脚本
@echo off
Powershell.exe set-executionpolicy remotesigned -File C:\Users\SE\Desktop\ps.ps1
pause
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:

我有一个PowerShell脚本将网站添加到Internet Explorer中的可信站点:
set-location "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set-location ZoneMap\Domains
new-item TESTSERVERNAME
set-location TESTSERVERNAME
new-itemproperty . -Name http -Value 2 -Type DWORD
Run Code Online (Sandbox Code Playgroud)
我想从批处理文件中执行这些PowerShell命令.当我必须运行单个命令时似乎很简单,但在这种情况下,我有一系列相关的命令.我想避免为批处理调用PS脚本创建单独的文件 - 所有内容都必须在批处理文件中.
问题是:如何从批处理文件中执行powershell命令(或语句)?
如标题所示,我正在寻找一种通过命令提示符/ powershell /批处理文件在Win10中启用/禁用内置Hotspot的方法。在GUI中,可以使用网络面板中的第三个按钮轻松完成此操作(请参见下图),但我想使其自动化。
我已经找到了数百篇有关如何通过netsh 创建新热点的教程,但是据我所知,这将创建另一个不同的热点。相反,我想使用已经配置的。还是Win10相同并且每次都会创建一个新的热点,但仅在内存之间设置?
提前致谢,
塞巴斯蒂安
编辑:
我玩了一下,发现了以下内容:
netsh wlan show drivers它说hosted network supprt: no。因此,对于“通用”解决方案,我将不得不更新驱动程序。Microsoft Wi-Fi Direct Virtual Adapter #x。一旦我停用HotSpot,适配器就会消失。因此,看来MS对内置热点使用的是与netsh变体完全不同的技术。这又使我想到了一个问题:如何通过脚本自动启用/禁用此热点?
我有这个 PowerShell 代码,是从这个问题的答案中得到的;它显示了运行 PS 代码的 cmd.exe 窗口的位置/尺寸:
$WindowFunction,$RectangleStruct = Add-Type -MemberDefinition @'
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}
'@ -Name "type$([guid]::NewGuid() -replace '-')" -PassThru
$MyWindowHandle = (Get-Process -Id (Get-WmiObject Win32_Process -Filter "ProcessId=$PID").ParentProcessId).MainWindowHandle
$WindowRect = New-Object -TypeName $RectangleStruct.FullName
$null = $WindowFunction::GetWindowRect($MyWindowHandle,[ref]$WindowRect)
Write-Host $WindowRect.Left $WindowRect.Top $WindowRect.Right $WindowRect.Bottom
Run Code Online (Sandbox Code Playgroud)
当我从命令行在 .ps1 脚本中运行此代码时,它可以正常工作:
C:\Users\Antonio\Documents\test> powershell Set-ExecutionPolicy …Run Code Online (Sandbox Code Playgroud)