Saya ingin memulai kembali komputer jarak jauh milik domain. Saya memiliki akun administrator tetapi saya tidak tahu cara menggunakannya dari PowerShell.
Saya tahu bahwa ada Restart-Computer
cmdlet dan bahwa saya dapat lulus kredensial tetapi jika domain saya misalnya mydomain
, nama pengguna myuser
saya dan kata sandi saya adalah mypassword
apa sintaks yang tepat untuk menggunakannya?
Saya perlu menjadwalkan reboot sehingga saya tidak perlu mengetikkan kata sandi.
powershell
powershell-remoting
semua menatapku
sumber
sumber
Jawaban:
Masalahnya
Get-Credential
adalah selalu akan dimintai kata sandi. Namun ada beberapa cara untuk mengatasi hal ini, tetapi melibatkan penyimpanan kata sandi sebagai string aman pada sistem file.Artikel berikut menjelaskan cara kerjanya:
Singkatnya, Anda membuat file untuk menyimpan kata sandi Anda (sebagai string terenkripsi). Baris berikut akan meminta kata sandi lalu menyimpannya
c:\mysecurestring.txt
sebagai string terenkripsi. Anda hanya perlu melakukan ini sekali:Di mana pun Anda melihat
-Credential
argumen pada perintah PowerShell maka itu berarti Anda bisa melewati aPSCredential
. Jadi dalam kasus Anda:Anda mungkin memerlukan
-Authentication
nilai sakelar yang berbeda karena saya tidak tahu lingkungan Anda.sumber
ConvertTo-SecureString "password" -AsPlainText -Force
.$password = ConvertTo-SecureString "password" -AsPlainText -Force
Ada cara lain, tapi ...
JANGAN MELAKUKAN INI JIKA ANDA TIDAK INGIN PASSWORD ANDA DI FILE SCRIPT (Ini bukan ide yang baik untuk menyimpan kata sandi dalam skrip, tetapi beberapa dari kita hanya ingin tahu caranya.)
Oke, itu peringatannya, ini kodenya:
$cred
akan memiliki kredensial dari John Doe dengan kata sandi "ABCDEF".Alternatif berarti menyiapkan kata sandi untuk digunakan:
sumber
Mengenai menyimpan kredensial, saya menggunakan dua fungsi (yang biasanya dalam modul yang diambil dari profil saya):
Dan yang satu ini:
Anda menggunakannya seperti ini:
Jika file kredensial tidak ada, Anda akan diminta pertama kali, pada saat itu file kredensial akan disimpan dalam string terenkripsi di dalam file XML. Kali kedua Anda menjalankan baris itu, xmlfile ada di sana dan akan dibuka secara otomatis.
sumber
Saya harus menjalankan fungsi SCOM 2012 dari server jauh yang memerlukan kredensial berbeda. Saya menghindari kata sandi teks-jelas dengan melewatkan output dari fungsi dekripsi kata sandi sebagai input untuk ConvertTo-SecureString. Untuk kejelasan, ini tidak diperlihatkan di sini.
Saya sangat suka mengetik pernyataan saya. Deklarasi tipe untuk $ strPass bekerja dengan benar.
sumber
Berikut adalah dua cara Anda bisa melakukan ini, jika Anda menjadwalkan reboot.
Pertama, Anda dapat membuat tugas di satu mesin menggunakan kredensial yang memiliki hak yang diperlukan untuk menghubungkan dan mem-boot ulang komputer lain. Ini membuat penjadwal bertanggung jawab untuk menyimpan kredensial dengan aman. Perintah reboot (saya pria Powershell, tapi ini lebih bersih.) Adalah:
SHUTDOWN /r /f /m \\ComputerName
Baris perintah untuk membuat tugas terjadwal pada mesin lokal, untuk melakukan reboot dari jarak jauh, adalah:
SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f /m \\ComputerName" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU "domain\username" /RP "password"
Saya lebih suka cara kedua, di mana Anda menggunakan kredensial Anda saat ini untuk membuat tugas terjadwal yang berjalan dengan akun sistem pada mesin jarak jauh.
SCHTASKS /Create /TN "Reboot Server" /TR "shutdown.exe /r /f" /SC ONCE /ST 00:00 /SD "12/24/2012" /RU SYSTEM /S ComputerName
Ini juga berfungsi melalui GUI, cukup masukkan SISTEM sebagai nama pengguna, biarkan bidang kata sandi kosong.
sumber
Berhati-hatilah dengan menyimpan kata sandi dengan cara ini ... tidak seaman ...
sumber
Saya melihat satu contoh yang menggunakan Impor / Ekspor-CLIXML.
Ini adalah perintah favorit saya untuk masalah yang Anda coba selesaikan. Dan cara paling sederhana untuk menggunakannya adalah.
Jadi jika file tersebut tidak ada secara lokal itu akan meminta kredensial dan menyimpannya. Ini akan mengambil
[pscredential]
objek tanpa masalah dan akan menyembunyikan kredensial sebagai string aman.Akhirnya cukup gunakan kredensial seperti yang biasa Anda lakukan.
Catatan tentang Securty :
Aman menyimpan kredensial di disk
Sunting: Baca ulang pertanyaan aslinya. Hal di atas akan berfungsi selama Anda menginisialisasi
[pscredential]
ke hard disk. Itu adalah jika Anda menjatuhkan itu dalam skrip Anda dan menjalankan skrip setelah itu akan membuat file itu dan kemudian menjalankan skrip tanpa pengawasan akan menjadi sederhana.sumber
Larutan
Untuk Mesin Bangun
Dalam kode sebelumnya, ganti nama pengguna dan nilai kata sandi dengan variabel lingkungan rahasia ("disembunyikan dari log") dari mesin-bangunan Anda
Hasil pengujian oleh
dan kamu akan lihat
sumber
mengapa kamu tidak mencoba sesuatu yang sangat sederhana?
gunakan psexec dengan perintah 'shutdown / r / f / t 0' dan daftar PC dari CMD.
sumber