我必须通过 PowerShell 检索代理服务器地址和端口,以便我可以使用该Invoke-Webrequest -uri http://some-site.com -Proxy命令。预期的输出应该类似于http://proxy-server.com:port。
我有一个 PowerShell 函数来检索代理服务器地址和端口,所以我们可以在脚本中使用它?
我编写了一个脚本,目的是快速管理WSUS进程,我有一些硬编码的东西,但更愿意使用 PowerShell。特别是 Approve-WsusUpdate 的“目标”组。
目前我正在做这样的事情:
#Select Target Group for Update Approval:
$TargetComputerGroups = "All Computers", "Unassigned Computers", "Clients", "Servers", "Test", "View Templates"
$UserPrompt = @"
Please select a Computer Group from the below options:
1) All Computers (Selects all of the below)
2) Unassigned Computers
3) Clients
4) Servers
5) Test
6) View Templates
Enter selection
"@
###Record user selection to varirable
$TargetComputerGroupTemp = Read-Host -Prompt $UserPrompt
###Convert their choice to the correct 0-index array value.
$TargetComputerIndex = …Run Code Online (Sandbox Code Playgroud) 我需要通过脚本检索系统备份卷上的备份列表。单击“计划备份”部分中“目标使用情况”部分的“查看详细信息”后,可以在 WSB GUI 中找到我想要的信息:
我知道Get-WBBackupSet cmdlet,但这只是 WB 知道它过去所做的备份列表,不一定是备份目标上存在的内容,每次单击“刷新”时似乎都会动态重新读取信息”:
Windows Server Backup 如何收集目标信息?
理由:我想为 WB 执行的备份运行设置监控,以确保存在足够深的备份历史记录。由返回的备份集列表Get-WBBackupSet似乎并不总是与磁盘上的内容一致,因此我宁愿不依赖此信息进行监控检查。
我希望通过 Powershell 查询 AD,以便查看我的林中所有密码设置为永不过期的用户帐户。
我使用快速谷歌搜索在网上找到了一些脚本,但它们似乎都没有按预期工作。然后我在 technet ( https://technet.microsoft.com/en-us/library/finding_users_whose_password_never_expires%28v=ws.10%29.aspx )上发现了以下内容,但是当我运行该行时:
Search-ADAccount -PasswordNeverExpires | FT Name,ObjectClass -A
Run Code Online (Sandbox Code Playgroud)
我只收到很少的结果,而且我知道返回的列表缺少大量我知道设置了此选项的用户。
请有人告诉我这个脚本有什么不正确或者结果集很小的原因是什么?
我正在尝试在一大群机器上远程安装 .NET framework4.6.1。我正在使用 powershell 远程编写此脚本。问题是无论出于何种原因,.exe 似乎都不想被远程调用。我假设这是由于升级的 .exe 启动了 UI 会话。但是,即使传递应该允许远程安装的“/q”参数,它仍然不起作用。我没有收到任何错误,当 RDP 进入有问题的机器时,它似乎没有升级或使用任何 CPU 进行升级。
我的脚本:
Write-Host "Executing 'Upgrade dotnet 4.6' for $server"
Invoke-Command -ComputerName $servers -Credential $credentials -ScriptBlock {
$Url = 'https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe'
$Exe = "net461.exe"
$Dest = "C:\\" + $Exe
$Params = " /q"
$client = new-object System.Net.WebClient
$client.DownloadFile($Url,$Dest)
Invoke-Expression ("cmd.exe /C " + $Dest + $Params)
}
Run Code Online (Sandbox Code Playgroud)
我也试过使用巧克力,但它也不起作用,因为我认为是同样的原因。在本地运行巧克力作品。
我已经在 RM 中创建了一个 Azure VM,并删除了 VM 和组件,除了高级存储帐户 (Blob) 中的 OSDisk。现在我想创建一个新的 VM 并将 OS 磁盘附加到新的 VM。
我尝试将 Set-AzureRmVmOsDisk 用于现有 VM。那行不通。我还尝试创建一个新的 VM 并修改 OSDisk。但有错误:
New-AzureRmVM : Changing property 'osDisk.name' is not allowed.
Run Code Online (Sandbox Code Playgroud)
关于如何创建新 VM 并将旧 VM 中的 OS .vhd 分配为新系统磁盘的任何想法?
编辑:我尝试了以下方法:
$VM = Get-AzureRmVM -Name "VM01" -ResourceGroupName "TestResource1"
Set-AzureRmVMOSDisk -VM $VM -Name "**VM123456**.vhd" -VhdUri "https://vm01disk.blob.core.windows
.net/vhds/**VM123456**.vhd" -CreateOption Attach
Run Code Online (Sandbox Code Playgroud)
输出显示:
"osDisk": {
"osType": null,
"encryptionSettings": null,
"name": "VM123456.vhd",
"vhd": {
"uri": "https://vm01disk.blob.core.windows.net/vhds/**VM123456**.vhd"
},
Run Code Online (Sandbox Code Playgroud)
运行命令后:
Get-AzureRmVM -Name "VM01" -ResourceGroupName "TestResource1"
Run Code Online (Sandbox Code Playgroud)
再次,我可以看到:
"osDisk": {
"osType": …Run Code Online (Sandbox Code Playgroud) Windows 资源管理器(桌面)可以通过右键单击并选择“使用 PowerShell 运行”来运行 PowerShell 脚本。但是,由于脚本完成后窗口关闭,因此所有消息都将丢失。所以人们可以在最后贴上“按任意键”。但是,当从 PowerShell 命令提示符运行时,这会很烦人。
PowerShell 有没有办法确定它是从哪里运行的?具体来说,桌面?
我正在尝试对 AD 进行 PowerShell 搜索,以仅查找在过去 30 天内登录的计算机(而不是服务器或其他计算机)。除了 30 天的限制之外,我已经编写了大部分脚本。任何帮助将不胜感激。
Get-ADComputer -Filter * -Properties * | FT 名称、操作系统、LastLogonDate -Autosize | 外文件 C:\Temp\ComputerLastLogonDate.csv
我尝试导入 *.pfx 证书,但收到有关“密码错误”的错误消息。该错误仅出现在某些系统上。
我已经在几台 Windows 10 计算机和一台 Windows Server 2016 上对此进行了测试。
我还尝试使用 Powershell 导入证书(使用下面的 cmdlet),也导致相同的错误:
$mypwd = ConvertTo-SecureString -String "some-password" -Force –AsPlainText
Import-PfxCertificate –FilePath C:\tmp\Client.pfx cert:\localMachine\my -Password $mypwd
Run Code Online (Sandbox Code Playgroud)
Import-PfxCertificate :您尝试导入的 PFX 文件需要不同的密码或它受保护的 Active Directory 主体的成员身份。
如何检查 AD 中的所有用户是否有空密码? 并过滤它们....
我知道如何检查所有用户,但我无法过滤它们...
这是我所拥有的:
Get-ADUser -Filter * -SearchBase "OU=SomeOU,DC=mydomain,DC=forest,DC=local" | ForEach {
$_.SamAccountName
(new-object directoryservices.directoryentry "", ("domain\" + $_.SamAccountName), "").psbase.name -ne $null
Write-Host ""
}
Run Code Online (Sandbox Code Playgroud)
现在我想知道如何过滤输出...
powershell ×10
windows ×2
.net ×1
azure ×1
hard-drive ×1
proxy ×1
remote ×1
scripting ×1
wsus ×1