我一直在试验 LetsEncrypt SSL 证书,并设法在 Windows 上设置和安装证书,以便使用ACMESharp Powershell 库与 IIS 一起使用。执行此操作的过程相当简单,并且证书工作正常。
但是......证书的生命周期相对较短,只有 3 个月,而且由于该过程现在是自我管理的——而不是一些供应商提醒你续订——我担心何时需要续订的通知。
有人可以推荐一种检查过期证书的好方法,然后 - 至少 - 发送某种通知,或者甚至更好地自动更新证书?
我尝试NetworkController使用 Powershell 在 Windows 2016 Server TP4 上的 docker 容器上安装 Windows 功能“ ”。运行“ Add-WindowsFeature NetworkController”后,我收到消息:
“您必须重新启动此服务器才能完成安装过程。”
当我现在使用 Get-WindowsFeature 再次检查(还没有做任何其他事情)时,它的安装状态为“InstallPending”。
现在我不确定“重新启动此服务器”是什么意思 100%,但我想这意味着我应该重新启动主机,因为没有其他东西可以重新启动(并且容器本身只是一个容器,而不是虚拟机)使用 Hyper-V 方法)。
所以我尝试以下方法:
方法 (1)
我使用 停止 docker 容器docker stop iisdemo,然后重新启动主机(我的 Windows 2016 服务器),然后使用docker start iisdemo.
但是当我检查 NetworkController 时,它仍然没有安装。
方法 (2)
在第二次尝试中,我添加了该功能,然后重新启动 docker 容器而不重新启动 Windows 2016 服务器,只需运行
dock restart iisdemo.
现在发生了一些奇怪的事情,当我尝试通过 来检查特征时Get-WindowsFeature *network*,收集数据的过程停止在 57% 并且容器本身存在。
当我再次附加到 docker 镜像时:
> docker start iisdemo
> docker attach iisdemo
> …Run Code Online (Sandbox Code Playgroud) 我继承了一个环境,其中两个不同的进程使用相同的名称,但它们的可执行文件存储在不同的文件路径中。任何时候都可能没有、一个、另一个或两者都在运行。
当我执行某些操作(如修补)时,我希望与修补目录关联的进程被终止,而不是另一个。
使用各种不同的技术,我可以毫不费力地根据进程名称终止进程,例如(不使用 powershell 不太优雅):
echo Checking for procname process...
tasklist /FI "IMAGENAME eq procname .exe" | !windir!\system32\find /I "procname.exe"
set EL=!ERRORLEVEL!
if !EL! EQU 0 (
echo Killing procname process...
TASKKILL /F /FI "IMAGENAME eq procname.exe"
)
Run Code Online (Sandbox Code Playgroud)
或更优雅(使用powershell)
powershell Clear-Host
powershell Stop-Process -name procname
Run Code Online (Sandbox Code Playgroud)
但是,如果两个进程正在运行,这两种方法都会杀死它们。
不是根据进程名称杀死这些进程,而是如何根据其可执行文件的路径杀死进程?
在哪里可以找到最新版本的 Powershell 终端(Windows 10)的完整键盘快捷键列表?
我已经用谷歌搜索了一个小时,我发现的最好的是:
我有一个批处理文件,它通过以下方式在管理模式下运行命令(即在另一个批处理文件中):
//instructions above
powershell.exe -Command "Start-Process file.bat -Verb RunAs"
//instructions below
Run Code Online (Sandbox Code Playgroud)
file.bat 只包含:
iisreset
exit
Run Code Online (Sandbox Code Playgroud)
我希望能够在单个批处理文件中直接运行它。这能做到吗?我希望像这样:
powershell.exe -Command "Start-Process 'iisReset && exit' -Verb RunAs"
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
我经常在powershell中使用mark函数。上下文菜单说快捷方式是Ctrl+ m。
但是,按Ctrl+m似乎不起作用。它只是输入^M. 奇怪的是Ctrl+c确实有效并且不打印任何内容。
在上下文菜单属性中,我启用了 ctrl 快捷键。
我也试过禁用它,无济于事。似乎没有更多我能做的了。如何获得Ctrl+m快捷方式以在 powershell 中工作?(另一种方法是Alt+ Space+ e+m它的工作,但不是真正用户友好)
我必须管理一个由大约 60 台 Windows 计算机组成的学校网络,这些计算机设置为工作组计算机而不是域中的计算机。为了简化配置,我将在所有计算机上启用 PowerShell 远程处理。(我了解 Enable-PSRemoting 以及如何进行设置)为了尽可能限制安全风险,只能从具有特定 IP 地址的管理 PC 远程连接到这些计算机。
所以考虑这个例子:
Computer 1: only accepts remoting connection from admin, not from computer 2
Computer 2: only accepts remoting connection from admin, not from computer 1
Admin computer: can remote on all computers
Run Code Online (Sandbox Code Playgroud)
我不确定如何在计算机上设置 Windows 防火墙以仅允许来自一个 IP 地址的 WinRM 协议流量。整个网络设置为“私有”。
有人可以帮我启用正确的防火墙规则吗?
如何更改默认的 Powershell CLI 行为以忽略存在于我的$Env:Path环境变量中的文件类型的文件扩展名?
如果我只输入python,它就可以正常工作并将我放入 Python 解释器中,因为扩展是环境变量的一部分。
问题是,当我pyth在 PowerShell 中键入和 tab-complete 时,它总是附加.exe. 我只希望它在没有扩展名的情况下完成命令的第一部分。
这可能吗?也许是脚本?
我正在尝试获取当前登录的具有活动会话的用户。
在任务管理器中,列表非常清楚,有两个用户会话,一个处于活动状态。
我想通过 Powershell 查询相同的内容。我尝试了一些可用命令Get-WmiObject Win32_LoggedOnUser | Select Antecedent -Unique,这些命令
列出的用户比我看到的要多得多 [加入域的计算机]
我不时为某人准备一台新 PC,并认为我可以使用 powershell 从菜单开始取消固定程序和广告。它起作用了,但只是部分起作用。我能够取消固定日历和天气等程序,但不知道如何摆脱像 Asphalt 8: Airborne 这样的 Windows 商店游戏广告:
我应该在脚本中包含什么名称来取消固定那个东西(和类似的东西)?
这是我使用的脚本:
function Pin-App { param(
[string]$appname,
[switch]$unpin
)
try{
if ($unpin.IsPresent){
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'Von "Start" lösen|Unpin from Start'} | %{$_.DoIt()}
return "App '$appname' unpinned from Start"
}else{
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'An "Start" anheften|Pin to Start'} | %{$_.DoIt()}
return "App '$appname' pinned to Start"
}
}catch{
Write-Error "Error Pinning/Unpinning App! (App-Name correct?)"
}
}
Pin-App …Run Code Online (Sandbox Code Playgroud) powershell ×10
windows ×5
command-line ×2
windows-10 ×2
batch ×1
batch-file ×1
certificate ×1
cmd.exe ×1
container ×1
docker ×1
firewall ×1
keyboard ×1
letsencrypt ×1
networking ×1
ssl ×1
users ×1
windows-7 ×1