如何在 PowerShell 终端中接受完成文本?按下该Tab键不起作用。
在这种情况下,按下该Tab键会出现以下结果:
在 powershell >= 5.1 下
我得到:
PS C:\> get-service -Status Running
Get-Service: A parameter cannot be found that matches parameter name 'Status'
但该财产确实存在吗?
PS C:\> get-service | Get-Member
PowerShell 安装程序在 Windows 10 上给出 2203 错误代码。我的权限配置正确。还有什么可能导致此错误?
如果您使用 Powershell 模块NetSecurity使用 eg 命令对 GPO Windows 防火墙规则进行任何修改New-NetFirewallRule
,或者Set-NetFirewallRule
更改不会立即应用。我只能通过随后在 MMC GUI 中进行任何更改(这似乎是重新加载它)或重新启动计算机来做到这一点。
也许可以使用 Windows 防火墙 API FwPolicy2或旧版 cmdline 工具,netsh
但如果可能的话,我更愿意使用 NetSecurity 模块来完成?
我有以下代码,我希望我的小程序显示值一,停止服务,然后显示值二。
我已经检查了此处的文档,它确认下一个命令应在执行 IF 语句的真/假之后执行。
https://www.pdq.com/blog/how-to-use-if-statements-in-powershell/
$AccServiceName = 'AccountLoaderService'
$AccService = Get-service $AccServiceName
if ($AccService.Status -eq 'Running')
{
Write-Host '1'
Stop-Service $AccServiceName
}
Start-Sleep -Seconds 20
if ($AccService.Status -eq 'Stopped')
{
Write-Host '2'
}
实际情况是,它显示数字 1,但不显示数字 2。
该服务肯定会在指定的 20 秒内停止,如果我随后立即再次运行该命令,不包含 sleep 语句,它将返回数字 2 的值。
希望这是有意义的,任何帮助都将不胜感激。
由于 guestmailuser 在我们的 Exchange 管理中心 > 联系人中出现了两次,因此我们无法向特定的外部电子邮件地址发送电子邮件。
该用户在 Entra 中不存在(已被 MSFT 支持删除)并且无法在 365 管理中心中搜索。
我尝试使用各种 powershell 命令删除用户,但它抱怨“双写入,Azure AD 调用是为了保持对象在 Azure AD 和 Exchange Online 之间同步)(这是使用 Entra ID Sync 同步到本地 AD 的环境)。我还想指出,我在本地 AD 中也找不到此用户。
正如所提到的,我们与 MSFT 有一张票,但在 2 周的“我们正在升级”之后,我转向了论坛。
任何帮助都将受到赞赏。
我可以使用以下命令下载单个独立的 HTML 文件:
wget https://www.bbc.co.uk/news/articles/c99rgj0xkryo
但 wget 会将文件另存为index.html
而不是Nation falls silent as King leads Remembrance ceremony.html
。如何让 wget 使用页面标题?
在这种情况下,我并不关心离线文件的链接是否被破坏。我只关心下载独立的页面。
我在:
尝试从cmd:$DATA
中的文件中删除 Stream ,但没有任何效果,除了powershell之外,是否不再可能使用纯cmd / batch来删除?
重新创建/重现场景并显示失败的尝试......
:Stream
文件:>"C:\Path\To\LogError.Log::Stream.Report" (echo/[CopyStatus]&echo/Error=3)
:Stream
第二步从文件中读取字符串:more < "C:\Path\To\LogError.Log:Stream.Report"
:: output:
[CopyStatus]
Error=3
:Stream
文件中的内容:dir /r "C:\Path\To\LogError.Log:Stream.Report" | find "$DATA"
:: Output:
25 LogError.Log:Stream.Report:$DATA
:Stream.Report
( )::$DATA
cd.>"C:\Path\To\LogError.Log:Stream.Report"
cd.>"\\?\C:\Path\To\LogError.Log:StreamReport'"
echo.>"C:\Path\To\LogError.Log:Stream.Report"
echo.>"\\?\C:\Path\To\LogError.Log:Stream.Report"
more < nul > "C:\Path\To\LogError.Log:Stream.Report"
more < nul > "\\?\C:\Path\To\LogError.Log:Stream.Report"
fsutil reparsepoint delete "C:\Path\To\LogError.Log:Stream.Report"
fsutil reparsepoint delete "C:\Path\To\LogError.Log:Stream.Report"
wmic datafile where "name='C:\\Path\\To\\LogError.Log'" delete "Stream.Report"
wmic datafile where "name='C:\\Path\\To\\LogError.Log:Stream.Report'" delete "Stream.Report"
:Stream
文件中的内容以验证它们是否已被删除:dir /r "C:\Path\To\LogError.Log:Stream.Report" | find "$DATA"
:: output
25 LogError.Log:Stream.Report:$DATA
more < "C:\Path\To\LogError.Log:Stream.Report"
:: Output:
[CopyStatus]
Error=3
$DATA
仍然留在文件中。我正在尝试做什么,但我被卡住了。
我成功删除了内容:Stream:
,但没有$DATA
从文件中排除流;它仍然存在:
>dir /r LogError.Log
Directory of C:\Path\To
10/22/2024 05:24 AM 17,083 LogError.Log
25 LogError.Log:Stream.Report:$DATA
1 File(s) 17,083 bytes
0 Dir(s) 128,989,868,032 bytes free
没有任何困难,它直接与powershell一起工作
Remove-Item -Path "C:\Path\To\LogError.Log:Stream.Report"
Get-Content -Path "C:\Path\To\LogError.Log:Stream.Report"
有没有办法:$DATA
使用纯powershell和批处理来删除?我正在寻找一种允许我在两种环境中处理此问题的解决方案,但我发现每个工具都面临限制。如何在两个平台上实现相同的功能?
cmd.exe /c '(echo/[CopyStatus]&echo/Error=3)>"C:\Path\To\LogError.Log:Stream.Report"'
:: Not work:
[System.IO.File]::WriteAllText("C:\Path\To\LogError.Log:Stream.Report", "[CopyStatus]")
[System.IO.File]::WriteAllText("C:\Path\To\LogError.Log:Stream.Report", "[Error=3]" )
"[CopyStatus]" | Out-File -FilePath "C:\Path\To\LogError.Log:Stream.Report" -Encoding utf8
"[Error=3]" | Out-File -FilePath "C:\Path\To\LogError.Log:Stream.Report" -Encoding utf8
但是在cmd中,我无法删除,在powershell中,我无法写入。感觉我被困在中间:PowerShell 可以执行两个操作(读取和删除),而 cmd 也可以执行两个操作(写入和读取)。
为什么我不能在powershell中执行所有三个操作,也不能在cmd中执行所有三个操作? 有办法实现吗?
问题: | 到: |
---|---|
1.删除: File.Log:$DATA | 命令/命令 |
2. 写入: File.Log: Stream:$DATA | powershell |
我的任务是替换大约 10000 个文件(包括子文件夹)中的文件名中的某些字符。
所以在我的例子中我想将字符 # 更改为哈希。
我的文件位置是“C:\Users\JHB Laptop\Documents”,主文件名为测试“C:\Users\JHB Laptop\Documents\test”。
子文件夹为“C:\Users\JHB Laptop\Documents\test\New folder1\New folder2\New folder3\New folder4\New folder5”
我改编了用户 331812 Malcolm 的这段代码
{cd "C:\Users\MyName\Documents\MyDirectory"
# by default, -replace is case-insensitive (equivalent to -ireplace)
# for case-sensitive, use -creplace
Dir | Rename-Item –NewName { $_.name –replace "_"," " }}
以下是我的修正:
cd "C:\Users\JHB Laptop\Documents\test"
# by default, -replace is case-insensitive (equivalent to -ireplace)
# for case-sensitive, use -creplace
Dir | Rename-Item –NewName { $_.name –replace "#","(hash)" }
这部分工作正常,但当然会停止在字符串中的最后一个文件夹
这就是我的知识范围。我看到 -recurse 在子文件夹中发挥作用,但我无法弄清楚它在项目中的位置。
在研究我需要的命令以获得答案所需的正确输出时,我花了几个小时试图弄清楚这一点,但无法确定为什么它没有按照应有的方式生成输出(在 PowerShell 5 和 7 中都会发生)。
返回的第一行格式不正确,但返回的输出的后续所有行均格式正确:
ForEach
||||Get-Disk
Get-Partition
Get-PSDrive
Write-Host
PS $ # Match drive serial numbers to their drive letter mountpoints:
$drive = (Get-PSDrive).Name -match '^[c-z]$'
""; Foreach ($letter in $drive) {
Write-Host $letter': ' -nonewline
Get-Partition -DriveLetter $letter | Get-Disk
}
C:
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
3 Samsung SSD 850 EVO mSATA 1TB S*************V Healthy Online 931.51 GB GPT
D: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
H: 1 Samsung SSD 870 EVO 4TB S*************R Healthy Online 3.64 TB GPT
M: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
P: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
V: 3 Samsung SSD 850 EVO mSATA 1TB S*************V Healthy Online 931.51 GB GPT
当直接复制终端输出时,问题变得更加令人困惑:
C:
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------3 Samsung SSD 850 EVO mSATA 1TB S*************V Healthy Online 931.51 GB GPT
D: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
H: 1 Samsung SSD 870 EVO 4TB S*************R Healthy Online 3.64 TB GPT
M: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
P: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
V: 3 Samsung SSD 850 EVO mSATA 1TB S*************V Healthy Online 931.51 GB GPT
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
C: 3 Samsung SSD 850 EVO mSATA 1TB S*************V Healthy Online 931.51 GB GPT
D: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
H: 1 Samsung SSD 870 EVO 4TB S*************R Healthy Online 3.64 TB GPT
M: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
P: 0 Samsung SSD 870 EVO 4TB S*************H Healthy Online 3.64 TB GPT
V: 3 Samsung SSD 850 EVO mSATA 1TB S*************V Healthy Online 931.51 GB GPT