我的办公室有一台连接到戴尔显示器的 Windows 10 笔记本电脑。我有远程桌面连接和 ssh 访问权限。
目前,主要显示器是笔记本电脑屏幕。有没有办法将主显示器更改为戴尔显示器?
或者将显示设置更改为镜像。
DisplaySwitch.exe不执行任何操作。也没有错误消息。
PS> Get-WmiObject -Namespace "root\WMI" -Class "WMIMonitorID"
__GENUS : 2
__CLASS : WmiMonitorID
__SUPERCLASS : MSMonitorClass
__DYNASTY : MSMonitorClass
__RELPATH : WmiMonitorID.InstanceName="DISPLAY\\BOE06F9\\4&15a49d7&0&UID265988_0"
__PROPERTY_COUNT : 9
__DERIVATION : {MSMonitorClass}
__SERVER : DESKTOP-VFR2B3O
__NAMESPACE : root\WMI
__PATH : \\DESKTOP-VFR2B3O\root\WMI:WmiMonitorID.InstanceName="DISPLAY\\BOE06F9\\4&15a49d7&0&UID265988_0"
Active : True
# this is the laptop screen, I want to use display 2
InstanceName : DISPLAY\BOE06F9\4&15a49d7&0&UID265988_0
ManufacturerName : {66, 79, 69, 0...}
ProductCodeID : {48, 54, 70, 57...}
SerialNumberID : {48, 0, …Run Code Online (Sandbox Code Playgroud) 我有一个只能在当前用户下获得许可的软件,并且我需要在我不知道谁将登录的实验室计算机上使用它。我有一个在用户的任务计划程序中运行的脚本每次都可以许可软件的登录,但我不希望每次用户登录时都启动它(该脚本需要一个弹出窗口,所以它是在你面前并且不是一个很好的用户体验,特别是对于那些不这样做的人甚至不打算使用该软件)。我需要任务计划程序,因为它允许我使用 运行 PowerShell 脚本-ExecutionPolicy Bypass,而不提示用户输入管理员凭据。
我想要的是一个可以手动触发任务的快捷方式,这样用户就可以决定是否要许可该软件。不幸的是,它并没有发挥作用。
我用 target: 创建了一个快捷方式C:\Windows\System32\schtasks.exe /run /tn DBCLicenser,其中DBCLicenser是我的任务名称。当我尝试运行快捷方式时,没有任何反应。在命令提示符中运行它,我看到错误:ERROR: Access is denied
在提升的命令提示符中运行快捷方式成功,但我们的用户不是管理员,因此这不是一个选项。
这里要明确的是,当任务触发器设置为用户登录时,任务会成功运行。我已确保在任务设置中选中“以最高权限运行”和“允许任务按需运行”。
用户似乎没有触发任务的权限。我尝试过手动添加权限C:\Windows\System32\Tasks\%%mytask%%,但此修复似乎在 Windows 10 中不再有效。
windows powershell administrator scheduled-tasks command-line
Powershell 停止使用其持久历史记录 (Windows 11)。当我启动新的 Powershell 实例时,以前会话中的命令不会显示。一旦我第一次在新会话中使用命令,就可以通过 F8/箭头等来调用它们。
到目前为止我检查/发现的内容:
检查历史文件,C:\Users\[username]\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt我注意到命令不再保存在那里。
一旦我输入命令(Get-PSReadLineOption).HistorySavePath(它返回我在上一个要点中提到的路径),一切都会再次正常工作。已经保存在那里的命令可以通过 F8 等再次访问,并且新命令也会再次保存到历史文件中。
powershell -noexit Set-PSReadlineOption -HistorySavePath "C:\Users\admin\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"通过脚本启动 powershell 也可以。
我还没有确切地知道为什么 Powershell 默认情况下不再使用历史文件。据我记得它以前可以工作,但我不确定为什么它停止工作。但从历史文件的内容来看,已经是很久之前的事了。
知道如何让它再次工作,而不需要在每次启动时应用解决方法(例如手动输入“历史记录保存命令”或使用“参数来启动它”)吗?
补充1:
这些命令给出以下输出(注意:使用其中任何一个后,历史记录再次正常工作,命令被保存到历史记录中,并且除了已使用的第一个命令并“重新激活”历史记录之外,可以调用完整内容)
PS C:\> (Get-PSReadlineOption).HistorySaveStyle
SaveIncrementally
PS C:\> (Get-PSReadlineOption).HistoryNoDuplicates
True
PS C:\> (Get-PSReadlineOption).MaximumHistoryCount
4096
Run Code Online (Sandbox Code Playgroud)
补充2:
$PROFILE给我以下输出(该命令不会影响历史记录的行为)。注意:列出的文件不存在于指定的目录中:
PS C:\> $PROFILE | Get-Member -Type NoteProperty
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
AllUsersAllHosts NoteProperty string AllUsersAllHosts=C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost NoteProperty string AllUsersCurrentHost=C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts NoteProperty string CurrentUserAllHosts=C:\Users\username\Documents\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost NoteProperty string CurrentUserCurrentHost=C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Run Code Online (Sandbox Code Playgroud)
添加 3 …
当使用用户权限打开控制台时,我可以'wsl -l' etc从命令提示符和 powershell 运行 wsl 命令,没有任何问题。
但是,当我从管理员运行的控制台尝试运行 wsl 命令时,该命令不提供输出并立即停止。(此行为与运行的目录无关)
运行where wsl显示它指向C:\Windows\System32\wsl.exe管理和非管理控制台。
这是 Windows 版本 21H2,内部版本 19044.1766
我需要能够以管理员身份运行 wsl 命令才能执行wsl --update.
powershell cmd.exe windows-10 windows-subsystem-for-linux wsl2
以下是 Windows 中的设置类别:
每当我格式化计算机时,我都会在这里更改很多设置,并且该过程非常乏味且重复,我想将其自动化。
我想知道的是一种以编程方式更改这些设置的方法(通过 c++、powershell、cmd 批处理等)。
我想要一个设置列表以及以编程方式更改它们的相应方法,以便我可以制作一个脚本来执行类似于以下伪代码的操作:
Change-Setting --Setting NightLight --Value On -- Strength 60
Change-Setting --Setting Scale --Value 100
Change-Setting --Setting RefreshRate --Value 144.01
...
Run Code Online (Sandbox Code Playgroud)
我已经搜索过这个,似乎没有很多关于这个主题的信息(这是令人惊讶的,因为它似乎可能是很多人会尝试自动化的东西)。我调查过这篇文章,据说使用 ProcMon 查找注册表更改,然后在激活特定设置(可能不止一个)时检测对注册表进行了哪些更改,然后使用它来更改值我。之后,需要重新启动计算机。
这个过程需要很长时间,甚至很长一段时间是不值得的。当然有更简单的方法来实现我想要的目标吗?
我使用的是 Windows 11。
我无法找到一种方法来通过系统/自动化方法禁用 Microsoft Outlook 搜索选项“在顶部显示最相关的搜索结果”,以便我可以将其部署给所有用户。
该设置通过以下方式在 GUI 中找到:
“文件”->“选项”->“搜索”->“在顶部显示最相关的搜索结果”。
到目前为止我已经尝试过:
组策略
用于配置 Microsoft 365 / Office 等的最新 ADMX 似乎没有配置此选项的选项:
登记处
在通过 GUI 设置选项时,通过“进程监视器”检查应用程序对注册表的修改后,我修改了以下键,但0没有影响。
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Search\SearchTopResults
根据下面克里斯蒂的回答,将此密钥添加到以下位置对 Outlook 也没有影响:
Computer\HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\office\16.0\outlook\Search\SearchTopResults
办公配置工具
办公室配置工具似乎也没有显示在“应用程序首选项”下禁用此选项的任何可能性:
https://config.office.com/deploymentsettings
PS - 正在测试的环境连接到活动目录,并通过现有的“组策略”部署应用策略。
如果有人能够对如何做到这一点提供任何见解,我们将不胜感激。
microsoft-outlook windows-registry powershell microsoft-office group-policy
在对 PC 上的连接问题进行故障排除时,我注意到Get-NetIPInterface在 PowerShell 上发出命令时每个网络接口都有重复。
请注意每个接口都有一个副本。就连 都是ifIndex一样的。
但我可以得出结论,这些不仅仅是同一接口的“影子”,因为其中一个已启用vEthernet (Ethernet 2)DHCP ,另一个已禁用。
PS C:\Windows\system32> Get-NetIPInterface
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
37 vEthernet (WSL) IPv6 1500 5000 Enabled Connected ActiveStore
21 Ethernet 2 IPv6 1500 6 Enabled Connected ActiveStore
31 vEthernet (Ethernet 2) IPv6 1500 15 Enabled Connected ActiveStore
1 Loopback Pseudo-Interface 1 IPv6 4294967295 75 Disabled Connected ActiveStore
37 vEthernet (WSL) …Run Code Online (Sandbox Code Playgroud) 我通过输入命令的路径来尝试命令,当我点击 时TAB,发生了这种情况:
C:\> C:\Program Files\KeePassXC\keepass<TAB>
# became this:
C:\> & 'C:\Program Files\KeePassXC\keepassxc-cli.exe'
Run Code Online (Sandbox Code Playgroud)
它只是评估一个字符串吗?至少,我认为是这样,因为路径需要用引号括起来,因为其中有空格,并且不会&出现以下错误:
C:\> 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help
At line:1 char:50
+ 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help
+ ~~~~
Unexpected token 'help' in expression or statement.
At line:1 char:1
+ 'C:\Program Files\KeePassXC\keepassxc-cli.exe' --help
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The '--' operator works only on variables or on properties.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
Run Code Online (Sandbox Code Playgroud)
您能链接到文档吗?谢谢你!
我使用的是 Windows 11。似乎预装了 Windows Terminal。但是,当终端选项卡式界面启动时,我在终端中收到 PowerShell 7 提示。(如果我输入 exit 希望 PowerShell 只是在另一个 shell 上运行,那么整个事情都会退出)
问题
有没有办法只使用普通 shell 启动 Windows 终端?
powershell ×10
command-line ×3
windows ×3
windows-10 ×3
windows-11 ×3
c++ ×1
cmd.exe ×1
dhcp ×1
display ×1
group-policy ×1
networking ×1
windows-subsystem-for-linux ×1
wsl2 ×1