标签: powershell

如何自动获取计算机的“更新状态”,如设置中所示?

我想自动获取Update Status(即下面屏幕截图中的Update Status句子)。You're up to date

在此输入图像描述

我发现如何Last checked使用以下命令在 PowerShell 中获取时间戳:

$(New-Object -ComObject Microsoft.Update.AutoUpdate).Results.LastSearchSuccessDate;
Run Code Online (Sandbox Code Playgroud)

然而,试图找到Update Status是完全无法实现的。我不确定状态本身是否存储在某处,或者设置应用程序是否根据可用更新的数量确定状态,但我还没有找到复制状态的解决方案。

有谁知道这是否可以实现?我不希望自动强制安装更新,我只需要获取状态。

状态通常是You're up to dateUpdates available,但我相信还有其他状态,例如Update Failed

在此输入图像描述

编辑:以下代码似乎没有达到我的要求:

在此输入图像描述

windows windows-update powershell

6
推荐指数
1
解决办法
8926
查看次数

在 Windows OpenSSH Server 中向 DefaultShell 添加参数(例如 powershell.exe -NoLogo)

我已经安装了 Windows OpenSSH 服务器并且工作正常。我可以将 ssh 的默认 shell 更改为使用HKLM:\SOFTWARE\OpenSSH并添加属性,如此DefaultShell所述。

因此,让我们使用默认示例,因为它在几乎所有具有“正常”C:\Windows路径的 Windows 安装上都按原样工作:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

现在假设我想向它添加一个参数,也许是“-NoLogo”。这只是一个例子。最终,我希望能够启动带有选项的 WSL 发行版。但现在,让我们简单一点:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo" -PropertyType String -Force

这不仅不起作用,而且还会以奇怪的方式破坏登录。使用第一种方法(无参数),我在 ssh-agent 中的公钥被提供并接受。当我添加 时-NoLogo,我最终出现密码提示,但使用我的 Windows 密码失败。

跑步sshd.exe -ddd节目:

User not allowed because shell c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe -nologo does not exist
Run Code Online (Sandbox Code Playgroud)

好的,所以这是行不通的,因为 OpenSSH 会检查以确保确切的DefaultShell字符串是可执行文件。

看到还有其他两个注册表设置,但似乎都不是我正在寻找的。人们可能会从它的名字中想到这里会有一些用处,但它只是传入命令DefaultShellCommandOption时 shell 所需的选项,例如:

ssh hostname ls …
Run Code Online (Sandbox Code Playgroud)

windows ssh powershell openssh sshd

6
推荐指数
1
解决办法
1782
查看次数

启动时使用 WSL IP 更新 Windows“主机”文件

我在 Windows 10 上使用 WSL2。

我的发行版是 Debian。

我想为我的发行版设置静态 IP,但我发现从这个答案中无法为 WSL 完成此操作。

但我发现可能还有其他一些可能性。

是否可以有一个 Powershell 脚本来更新 Windows 10 上的 etc 主机,并使用指向自定义域名的新 WSL IP(如172.18.225.26 dev.local启动时那样)?并且不会在主机文件上留下任何先前的 WSL 配置。

我的主机文件当前如下所示:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in …
Run Code Online (Sandbox Code Playgroud)

powershell windows-10 windows-subsystem-for-linux

6
推荐指数
1
解决办法
7568
查看次数

如何使用 Powershell 运行 Windows 功能开/关的 GUI

是的,问题正如标题所说。这看起来很奇怪,因为我们可以使用“开始”菜单调用它。但我的电脑是客户端电脑,我正处于管理 PowerShell 会话中,并且希望从那里运行它以查看我的电脑具有哪些功能。

powershell administration

6
推荐指数
1
解决办法
1801
查看次数

Windows 11 22H2 更新后使用具有信任级别的 runas 时出现“参数不正确”

我有一个脚本需要以管理员身份运行,但然后在非提升的上下文中运行单个命令。我之前使用的是runas /trustlevel:0x20000 program.exe,但在将 Windows 11 更新到 22H2 后,该命令现在给出以下输出(此处以运行记事本为例):

PS > runas /trustlevel:0x20000 notepad
RUNAS ERROR: Unable to run - notepad
87: The parameter is incorrect.
Run Code Online (Sandbox Code Playgroud)

我已经仔细检查了 trustlevel 参数值,它似乎是正确的:

PS > runas /showtrustlevels
The following trust levels are available on your system:
0x20000 (Basic User)
Run Code Online (Sandbox Code Playgroud)

我尝试的任何应用程序都会发生这种情况,而不仅仅是记事本或我的脚本中的应用程序。我还在 Powershell 7、Windows Powershell (5) 和命令行中尝试过,但没有区别。Runas 本身并没有完全损坏,正如我可以做到的runas /profile /env /user:<username> notepad,它会启动(输入我的密码后)。我也做了sfc /scannow以防万一的事情,但这没有什么区别。

我目前正在尝试弄清楚是否有什么我可以在这里做的,或者该功能是否刚刚在 22H2 被弃用。

powershell administrator runas windows-11 windows-11-v22h2

6
推荐指数
1
解决办法
2125
查看次数

如何以编程方式在 Windows 11 中启用浅色模式/深色模式?

我正在尝试使用任务计划程序在 Windows 个性化设置中安排浅色模式/深色模式,以便 Windows 主题颜色会根据一天中的时间而变化,这对眼睛也更好。

这两个键是唯一负责它的:

# Set Windows Personalization, color settings, to enable Light mode for System
$RegistryPath = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize'  
$Name         = 'SystemUsesLightTheme'  
$Value        = '1' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | Out-Null } 
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force

# Set Windows Personalization, color settings, to enable Light mode for Apps
$RegistryPath = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize'  
$Name         = 'AppsUseLightTheme'  
$Value        = '1' 
If (-NOT (Test-Path $RegistryPath)) {   New-Item -Path $RegistryPath -Force | …
Run Code Online (Sandbox Code Playgroud)

windows-registry powershell themes windows-11

6
推荐指数
1
解决办法
3491
查看次数

为什么 Windows 11 PowerShell 或终端缺少 Linux 命令行工具?

我使用的是Windows 11。在终端中,常用的Linux命令不可用。因此,诸如chmodvim之类的命令会返回如下命令行错误:

vim : The term 'vim' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ vim ~/.bashrc
+ ~~~
    + CategoryInfo          : ObjectNotFound: (vim:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我时隔十年才使用 Windows,请多多包涵!

terminal powershell command-line windows-11

6
推荐指数
2
解决办法
9865
查看次数

适用于 Windows 的高级命令行编辑?

我是在 Linux 和 BSD 系统上“出生和成长”的开发人员,并且我已经习惯于拥有用于控制台的高级工具(例如,像 bash 这样的 posix shell)。我的职业生涯发生了转折,这意味着我大部分时间都在 Windows 环境中工作,相比之下,控制台功能确实很差。传统的 Windows 控制台环境完全是一个笑话,即使是大多数第三方尝试改进的东西也好不到哪里去。PowerShell 是朝着正确方向迈出的一大步,但控制台应用程序本身仍然远远落后于 Unix 20 年来的水平。

有谁知道支持像 posix shell 这样的高级命令行编辑的 PowerShell 控制台应用程序? 我对 emacs 模式编辑特别感兴趣,而且我还希望能够将我的窗口大小调整为任意大小,这与 Windows 附带的本机控制台应用程序不同。

windows powershell console

5
推荐指数
2
解决办法
3131
查看次数

PowerShell:无法修改环境变量

我通过“系统属性 -> 高级 -> 环境变量”设置了一个环境变量。我修改了变量的值。在 cmd 中,我看到了新值。在PowerShell 中,该值仍然是旧值。尝试使用 [Environment]::SetEnvironmentVariable 设置它没有任何效果。

powershell environment-variables

5
推荐指数
1
解决办法
1463
查看次数

用于列出 IE 加载项的命令行或 powershell 命令

是否有 cmd 行或 powershell 命令可以列出 IE8 中安装的所有附加组件?

browser powershell internet-explorer-8 browser-addons

5
推荐指数
1
解决办法
5093
查看次数