标签: powershell

通过 PowerShell 检索 Internet 代理服务器地址

我必须通过 PowerShell 检索代理服务器地址和端口,以便我可以使用该Invoke-Webrequest -uri http://some-site.com -Proxy命令。预期的输出应该类似于http://proxy-server.com:port。

我有一个 PowerShell 函数来检索代理服务器地址和端口,所以我们可以在脚本中使用它?

scripting powershell proxy

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

通过 PowerShell 自动化 WSUS

我编写了一个脚本,目的是快速管理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)

windows powershell wsus

7
推荐指数
1
解决办法
5856
查看次数

Windows Server Backup:列出目标上的备份

我需要通过脚本检索系统备份卷上的备份列表。单击“计划备份”部分中“目标使用情况”部分的“查看详细信息”后,可以在 WSB GUI 中找到我想要的信息:

备份的详细信息

我知道Get-WBBackupSet cmdlet,但这只是 WB 知道它过去所做的备份列表,不一定是备份目标上存在的内容,每次单击“刷新”时似乎都会动态重新读取信息”:

目的地使用

Windows Server Backup 如何收集目标信息?

理由:我想为 WB 执行的备份运行设置监控,以确保存在足够深的备份历史记录。由返回的备份集列表Get-WBBackupSet似乎并不总是与磁盘上的内容一致,因此我宁愿不依赖此信息进行监控检查。

powershell windows-server-2008-r2 windows-server-backup

7
推荐指数
1
解决办法
3768
查看次数

Powershell - 查找密码永不过期的所有用户

我希望通过 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)

我只收到很少的结果,而且我知道返回的列表缺少大量我知道设置了此选项的用户。

请有人告诉我这个脚本有什么不正确或者结果集很小的原因是什么?

powershell active-directory windows-server-2008-r2

7
推荐指数
2
解决办法
8万
查看次数

通过 powershell 远程安装 .NET 4.6.1

我正在尝试在一大群机器上远程安装 .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)

我也试过使用巧克力,但它也不起作用,因为我认为是同样的原因。在本地运行巧克力作品。

powershell remote .net

7
推荐指数
1
解决办法
9335
查看次数

Azure VM 更改操作系统磁盘

我已经在 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)

powershell hard-drive virtual-machines azure

7
推荐指数
1
解决办法
2万
查看次数

确定是否已从桌面或命令行运行 PowerShell 脚本

Windows 资源管理器(桌面)可以通过右键单击并选择“使用 PowerShell 运行”来运行 PowerShell 脚本。但是,由于脚本完成后窗口关闭,因此所有消息都将丢失。所以人们可以在最后贴上“按任意键”。但是,当从 PowerShell 命令提示符运行时,这会很烦人。

PowerShell 有没有办法确定它是从哪里运行的?具体来说,桌面?

powershell

7
推荐指数
1
解决办法
4303
查看次数

在 Active Directory 中搜索过去 30 天内登录的计算机

我正在尝试对 AD 进行 PowerShell 搜索,以仅查找在过去 30 天内登录的计算机(而不是服务器或其他计算机)。除了 30 天的限制之外,我已经编写了大部分脚本。任何帮助将不胜感激。

Get-ADComputer -Filter * -Properties * | FT 名称、操作系统、LastLogonDate -Autosize | 外文件 C:\Temp\ComputerLastLogonDate.csv

powershell active-directory domain-controller

7
推荐指数
2
解决办法
2万
查看次数

pfx 证书导入期间密码错误 Windows(10, 2016)

我尝试导入 *.pfx 证书,但收到有关“密码错误”的错误消息。该错误仅出现在某些系统上。

我已经在几台 Windows 10 计算机和一台 Windows Server 2016 上对此进行了测试。

  • Windows 10(不起作用):构建 10.0.16299.0
  • Windows 10(不起作用):构建 10.0.14393.0
  • Windows 10(有效):构建 10.0.17134.0
  • 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 主体的成员身份。

windows powershell ssl-certificate

7
推荐指数
1
解决办法
5800
查看次数

如何检查所有 AD 用户的“空白”密码?

如何检查 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 active-directory

7
推荐指数
2
解决办法
3160
查看次数